1
0
Fork 0
mirror of https://github.com/gsantner/dandelion synced 2024-06-25 21:14:52 +02:00

Cleaned code, added debug log to DebugFragment of AboutActivity

This commit is contained in:
vanitasvitae 2016-09-09 19:27:07 +02:00
parent 2a4706654f
commit 02f56f25fb
12 changed files with 163 additions and 16 deletions

View file

@ -42,6 +42,11 @@ import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.data.AppSettings;
import com.github.dfa.diaspora_android.ui.HtmlTextView;
import com.github.dfa.diaspora_android.util.Helpers;
import com.github.dfa.diaspora_android.util.Log;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -184,8 +189,8 @@ public class AboutActivity extends AppCompatActivity {
/**
* Fragment that shows debug information like app version, pod version...
*/
public static class DebugFragment extends Fragment {
public static class DebugFragment extends Fragment implements Observer {
private TextView logBox;
public DebugFragment() {
}
@ -198,6 +203,10 @@ public class AboutActivity extends AppCompatActivity {
TextView osVersion = (TextView) rootView.findViewById(R.id.fragment_debug__android_version);
TextView deviceName = (TextView) rootView.findViewById(R.id.fragment_debug__device_name);
TextView podDomain = (TextView) rootView.findViewById(R.id.fragment_debug__pod_domain);
logBox = (TextView) rootView.findViewById(R.id.fragment_debug__log_box);
Log.addLogObserver(this);
update(Log.getInstance(), null);
if (isAdded()) {
try {
@ -218,6 +227,24 @@ public class AboutActivity extends AppCompatActivity {
}
return rootView;
}
@Override
public void onDestroyView() {
Log.removeLogObserver(this);
super.onDestroyView();
}
@Override
public void update(Observable observable, Object o) {
if(logBox != null) {
ArrayList<String> logs = Log.getLogBuffer();
String log = "";
for(String s : logs) {
log = log + s+"\n";
}
logBox.setText(log);
}
}
}
/**

View file

@ -51,7 +51,6 @@ import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.ActionMenuView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@ -82,6 +81,7 @@ import com.github.dfa.diaspora_android.ui.ContextMenuWebView;
import com.github.dfa.diaspora_android.ui.CustomWebViewClient;
import com.github.dfa.diaspora_android.util.DiasporaUrlHelper;
import com.github.dfa.diaspora_android.util.Helpers;
import com.github.dfa.diaspora_android.util.Log;
import com.github.dfa.diaspora_android.util.WebHelper;
import org.json.JSONException;
@ -202,7 +202,7 @@ public class MainActivity extends AppCompatActivity
boolean newWebView = (webView == null);
if(newWebView) {
Log.d(App.TAG, "Webview was null. Create new one.");
View webviewHolder = getLayoutInflater().inflate(R.layout.webview, null);
View webviewHolder = getLayoutInflater().inflate(R.layout.webview, this.contentLayout);
webView = (ContextMenuWebView) webviewHolder.findViewById(R.id.webView);
((LinearLayout)webView.getParent()).removeView(webView);
setupWebView(savedInstanceState);
@ -353,6 +353,7 @@ public class MainActivity extends AppCompatActivity
}
//For Android 4.1/4.2 only. DONT REMOVE
@SuppressWarnings("unused")
protected void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture)
{
Log.d(App.TAG, "openFileChooser(ValCallback<Uri>, String, String");
@ -805,7 +806,7 @@ public class MainActivity extends AppCompatActivity
if (WebHelper.isOnline(MainActivity.this)) {
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
View layout = getLayoutInflater().inflate(R.layout.dialog_search__people_tags, null);
View layout = getLayoutInflater().inflate(R.layout.dialog_search__people_tags, contentLayout);
final EditText input = (EditText) layout.findViewById(R.id.dialog_search__input);
final DialogInterface.OnClickListener clickListener = new DialogInterface.OnClickListener() {
@Override

View file

@ -26,20 +26,15 @@ import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import butterknife.OnEditorAction;
/**
* @author vanitas
*/

View file

@ -19,7 +19,7 @@
package com.github.dfa.diaspora_android.data;
import android.os.Handler;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.listener.WebUserProfileChangedListener;

View file

@ -23,7 +23,7 @@ import android.content.Intent;
import android.os.AsyncTask;
import android.os.IBinder;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import com.github.dfa.diaspora_android.App;

View file

@ -22,7 +22,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.annotation.Nullable;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import android.widget.ImageView;
import com.github.dfa.diaspora_android.App;

View file

@ -20,7 +20,7 @@ package com.github.dfa.diaspora_android.task;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import android.webkit.CookieManager;
import com.github.dfa.diaspora_android.App;

View file

@ -20,7 +20,7 @@ package com.github.dfa.diaspora_android.task;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import android.webkit.CookieManager;
import com.github.dfa.diaspora_android.App;

View file

@ -24,7 +24,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import com.github.dfa.diaspora_android.util.Log;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;

View file

@ -0,0 +1,99 @@
package com.github.dfa.diaspora_android.util;
import com.github.dfa.diaspora_android.App;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Observable;
import java.util.Observer;
/**
* Class that saves logs eg. for later debugging.
* TODO: Differentiate log types (error/debug/info...)
* Created by vanitas on 09.09.16.
*/
public class Log extends Observable{
public static Log instance;
private SimpleDateFormat dateFormat;
private ArrayList<String> logBuffer;
private ArrayList<Observer> observers;
private Log() {
logBuffer = new ArrayList<>();
dateFormat = new SimpleDateFormat("HH:mm:ss");
observers = new ArrayList<>();
}
public static Log getInstance() {
if(instance == null) instance = new Log();
return instance;
}
private static String time() {
return getInstance().dateFormat.format(new Date())+": ";
}
public static void d(String tag, String msg) {
Log l = getInstance();
android.util.Log.d(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static void e(String tag, String msg) {
Log l = getInstance();
android.util.Log.e(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static void i(String tag, String msg) {
Log l = getInstance();
android.util.Log.i(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static void v(String tag, String msg) {
Log l = getInstance();
android.util.Log.v(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static void w(String tag, String msg) {
Log l = getInstance();
android.util.Log.w(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static void wtf(String tag, String msg) {
Log l = getInstance();
android.util.Log.wtf(tag, msg);
l.logBuffer.add(time()+msg);
l.notifyLogBufferChanged();
}
public static ArrayList<String> getLogBuffer() {
return getInstance().logBuffer;
}
private void notifyLogBufferChanged() {
if(observers == null) return;
for(Observer o : observers) {
if(o != null) {
o.update(this, null);
}
}
}
public static void addLogObserver(Observer observer) {
getInstance().observers.add(observer);
}
public static void removeLogObserver(Observer o) {
getInstance().observers.remove(o);
}
}

View file

@ -17,6 +17,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/activity_vertical_margin" />
<!-- APP SECTION -->
<TextView
android:id="@+id/fragment_debug__section_app"
android:layout_width="match_parent"
@ -34,6 +35,7 @@
android:layout_height="wrap_content"
android:id="@+id/fragment_debug__app_version"/>
<!-- DEVICE SECTION -->
<TextView
android:id="@+id/fragment_debug__section_device"
android:layout_width="match_parent"
@ -52,6 +54,7 @@
android:layout_height="wrap_content"
android:id="@+id/fragment_debug__device_name"/>
<!-- POD SECTION -->
<TextView
android:id="@+id/fragment_debug__section_pod"
android:layout_width="match_parent"
@ -64,5 +67,26 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/fragment_debug__pod_domain"/>
<!-- LOG SECTION -->
<TextView
android:id="@+id/fragment_debug__section_log"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_debug__section_log"
android:paddingTop="@dimen/activity_vertical_margin"
style="@android:style/TextAppearance.DeviceDefault.Large"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fragment_debug__log_box" />
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>

View file

@ -13,6 +13,7 @@
<string name="fragment_debug__section_app">Application</string>
<string name="fragment_debug__section_device">Device</string>
<string name="fragment_debug__section_pod">Diaspora Pod</string>
<string name="fragment_debug__section_log">Debug Log</string>
<string name="fragment_debug__app_version">App Version: %1$s</string>
<string name="fragment_debug__package_name">Package Name: %1$s</string>
<string name="fragment_debug__android_version">Android Version: %1$s</string>