diff options
author | Kenny Root <kenny@the-b.org> | 2009-06-10 16:19:53 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-06-10 16:19:53 +0000 |
commit | 5730cd751eba90d5bb33babb41425586dbcc30b1 (patch) | |
tree | 3acbe15f10487958e96c97b2931428f944e805d6 /src/com/nullwire/trace/ExceptionHandler.java | |
parent | d62e6eebae78c8d59c46517fd5cea9be6942f5ba (diff) | |
download | connectbot-5730cd751eba90d5bb33babb41425586dbcc30b1.tar.gz connectbot-5730cd751eba90d5bb33babb41425586dbcc30b1.tar.bz2 connectbot-5730cd751eba90d5bb33babb41425586dbcc30b1.zip |
Improve the stack trace handler; only ask user to submit while in the host list
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@278 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/com/nullwire/trace/ExceptionHandler.java')
-rw-r--r-- | src/com/nullwire/trace/ExceptionHandler.java | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/src/com/nullwire/trace/ExceptionHandler.java b/src/com/nullwire/trace/ExceptionHandler.java index b73ea86..ff29724 100644 --- a/src/com/nullwire/trace/ExceptionHandler.java +++ b/src/com/nullwire/trace/ExceptionHandler.java @@ -18,28 +18,32 @@ import org.connectbot.R; import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Handler; +import android.os.Message; import android.util.Log; public class ExceptionHandler { - public static String TAG = "com.nullwire.trace.ExceptionsHandler"; private static String[] stackTraceFileList = null; - private static AlertDialog submitDialog; - /** * @param context */ - public static void checkForTraces(Context context) { - if (searchForStackTraces(context).length > 0) { - Log.d(TAG, "number of stack traces: " + searchForStackTraces(context).length); - askUserToSubmitExceptions(context); - } + public static void checkForTraces(final Context context) { + new Thread(new Runnable() { + public void run() { + String[] stackTraces = searchForStackTraces(context); + if (stackTraces != null && stackTraces.length > 0) { + Log.d(TAG, "number of stack traces: " + stackTraces.length); + submissionHandler.sendMessage( + submissionHandler.obtainMessage(-1, context)); + } + } + }).start(); } /** @@ -88,6 +92,9 @@ public class ExceptionHandler { if (stackTraceFileList != null && stackTraceFileList.length > 0) return stackTraceFileList; + if (context == null) + return null; + if (G.FILES_PATH == null) getPackageInfo(context); @@ -103,24 +110,27 @@ public class ExceptionHandler { return (stackTraceFileList = dir.list(filter)); } - public static void askUserToSubmitExceptions(Context context) { - if (submitDialog == null) { - DialogInterface.OnClickListener clickListener = new ExceptionClickListener(context); - submitDialog = new AlertDialog.Builder(context) + private static Handler submissionHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + Context context = (Context) msg.obj; + ExceptionClickListener clickListener = new ExceptionClickListener(context); + new AlertDialog.Builder(context) .setMessage(R.string.exceptions_submit_message) - .setPositiveButton(android.R.string.ok, clickListener) + .setPositiveButton(android.R.string.yes, clickListener) .setNegativeButton(android.R.string.no, clickListener) - .create(); + .create().show(); } - - submitDialog.show(); - } + }; /** * Look into the files folder to see if there are any "*.stacktrace" files. * If any are present, submit them to the trace server. */ public static void submitStackTraces(Context context) { + if (context == null) + return; + try { Log.d(TAG, "Looking for exceptions in: " + G.FILES_PATH); String[] list = searchForStackTraces(context); @@ -172,6 +182,9 @@ public class ExceptionHandler { } public synchronized static void removeStackTraces(Context context) { + if (context == null) + return; + try { String[] list = searchForStackTraces(context); @@ -183,7 +196,7 @@ public class ExceptionHandler { file.delete(); } - list = null; + stackTraceFileList = null; } catch (Exception e) { e.printStackTrace(); } |