diff options
author | Scott Jackson <daneren2005@gmail.com> | 2013-01-08 19:42:38 -0800 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2013-01-08 19:42:38 -0800 |
commit | 8a9b2032c2ca706f37a557406428989018177e50 (patch) | |
tree | 855493198708072b856a1a0f6762bb9629cb25f0 /subsonic-android/src | |
parent | c154f934673efed17a1e33ca179025df81fc9663 (diff) | |
download | dsub-8a9b2032c2ca706f37a557406428989018177e50.tar.gz dsub-8a9b2032c2ca706f37a557406428989018177e50.tar.bz2 dsub-8a9b2032c2ca706f37a557406428989018177e50.zip |
Added an internal logging mechanism for 4.2+
Diffstat (limited to 'subsonic-android/src')
-rw-r--r-- | subsonic-android/src/github/daneren2005/dsub/activity/MainActivity.java | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/subsonic-android/src/github/daneren2005/dsub/activity/MainActivity.java b/subsonic-android/src/github/daneren2005/dsub/activity/MainActivity.java index 0be15eca..755667aa 100644 --- a/subsonic-android/src/github/daneren2005/dsub/activity/MainActivity.java +++ b/subsonic-android/src/github/daneren2005/dsub/activity/MainActivity.java @@ -36,6 +36,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.net.Uri; import android.os.Bundle; import android.os.StatFs; import android.preference.PreferenceManager; @@ -47,7 +48,13 @@ import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; import android.widget.PopupWindow; +import github.daneren2005.dsub.util.*; import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; public class MainActivity extends SubsonicTabActivity { @@ -163,6 +170,9 @@ public class MainActivity extends SubsonicTabActivity { case R.id.menu_help: startActivity(new Intent(this, HelpActivity.class)); return true; + case R.id.menu_log: + getLogs(); + return true; case R.id.menu_about: showAboutDialog(); return true; @@ -292,5 +302,50 @@ public class MainActivity extends SubsonicTabActivity { private void toggleOffline() { Util.setOffline(this, !Util.isOffline(this)); restart(); - } + } + + private void getLogs() { + new ModalBackgroundTask<File>(this, false) { + @Override + protected File doInBackground() throws Throwable { + updateProgress("Gathering Logs"); + File logcat = new File(FileUtil.getSubsonicDirectory(), "logcat.txt"); + Process logcatProc = null; + + try { + List<String> progs = new ArrayList<String>(); + progs.add("logcat"); + progs.add("-v"); + progs.add("time"); + progs.add("-d"); + progs.add("-f"); + progs.add(logcat.getPath()); + progs.add("*:I"); + + logcatProc = Runtime.getRuntime().exec(progs.toArray(new String[0])); + logcatProc.waitFor(); + } catch(Exception e) { + Util.toast(MainActivity.this, "Failed to gather logs"); + } finally { + if(logcatProc != null) { + logcatProc.destroy(); + } + } + + return logcat; + } + + @Override + protected void done(File logcat) { + Intent email = new Intent(android.content.Intent.ACTION_SEND); + email.setType("text/plain"); + email.putExtra(Intent.EXTRA_EMAIL, new String[] {"daneren2005@gmail.com"}); + email.putExtra(Intent.EXTRA_SUBJECT, "DSub Error Logs"); + email.putExtra(Intent.EXTRA_TEXT, "Describe the problem here"); + Uri attachment = Uri.fromFile(logcat); + email.putExtra(Intent.EXTRA_STREAM, attachment); + startActivity(email); + } + }.execute(); + } }
\ No newline at end of file |