diff options
author | Kenny Root <kenny@the-b.org> | 2011-10-12 20:03:12 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2011-10-12 20:03:12 -0700 |
commit | 61ba1c09afb9b59a9940a0a30c6fd0093c9b71a0 (patch) | |
tree | 20f5aa2860e77faa93c124927a5bb959054e8794 /src/com/nullwire/trace/ExceptionHandler.java | |
parent | 8a00dfc08cf3d47670156e789d9434389ad69f74 (diff) | |
download | connectbot-61ba1c09afb9b59a9940a0a30c6fd0093c9b71a0.tar.gz connectbot-61ba1c09afb9b59a9940a0a30c6fd0093c9b71a0.tar.bz2 connectbot-61ba1c09afb9b59a9940a0a30c6fd0093c9b71a0.zip |
Remove nullwire service
Android Market will report traces for things installed via Market.
Nullwire's stuff isn't really worth it.
Also, the TerminalManager isn't really a "background" service since the
calls into it still runs on the UI looper.
Diffstat (limited to 'src/com/nullwire/trace/ExceptionHandler.java')
-rw-r--r-- | src/com/nullwire/trace/ExceptionHandler.java | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/src/com/nullwire/trace/ExceptionHandler.java b/src/com/nullwire/trace/ExceptionHandler.java deleted file mode 100644 index 0fabe68..0000000 --- a/src/com/nullwire/trace/ExceptionHandler.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.nullwire.trace; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FilenameFilter; -import java.util.ArrayList; -import java.util.List; - -import org.apache.http.NameValuePair; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.protocol.HTTP; -import org.connectbot.R; - -import android.app.AlertDialog; -import android.content.Context; -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; - - /** - * @param context - */ - public static void checkForTraces(final Context context) { - new Thread(new Runnable() { - public void run() { - String[] stackTraces = searchForStackTraces(); - if (stackTraces != null && stackTraces.length > 0) { - Log.d(TAG, "number of stack traces: " + stackTraces.length); - submissionHandler.sendMessage(submissionHandler - .obtainMessage(-1, context)); - } - } - }).start(); - } - - - /** - * Register handler for unhandled exceptions. - * - * @param context - */ - public static boolean register(Context context) { - Log.i(TAG, "Registering default exceptions handler"); - // Get information about the Package - PackageManager pm = context.getPackageManager(); - try { - PackageInfo pi; - // Version - pi = pm.getPackageInfo(context.getPackageName(), 0); - // Package name - G.APP_PACKAGE = pi.packageName; - // Version information - G.APP_VERSION = pi.versionName; - G.APP_DESCRIPTION = context.getString(R.string.msg_version); - // Files dir for storing the stack traces - G.FILES_PATH = context.getFilesDir().getAbsolutePath(); - // Device model - G.PHONE_MODEL = android.os.Build.MODEL; - // Android version - G.ANDROID_VERSION = android.os.Build.VERSION.RELEASE; - } catch (NameNotFoundException e) { - e.printStackTrace(); - } - - Log.d(TAG, "APP_VERSION: " + G.APP_VERSION); - Log.d(TAG, "APP_PACKAGE: " + G.APP_PACKAGE); - Log.d(TAG, "FILES_PATH: " + G.FILES_PATH); - Log.d(TAG, "URL: " + G.URL); - - boolean stackTracesFound = false; - - // We'll return true if any stack traces were found - String[] list = searchForStackTraces(); - if (list != null && list.length > 0) { - stackTracesFound = true; - } - - new Thread() { - @Override - public void run() { - UncaughtExceptionHandler currentHandler = Thread.getDefaultUncaughtExceptionHandler(); - - if (currentHandler != null) { - Log.d(TAG, "current handler class="+currentHandler.getClass().getName()); - } - // don't register again if already registered - if (!(currentHandler instanceof DefaultExceptionHandler)) { - // Register default exceptions handler - Thread.setDefaultUncaughtExceptionHandler( - new DefaultExceptionHandler(currentHandler)); - } - } - }.start(); - - return stackTracesFound; - } - - /** - * Search for stack trace files. - * @return - */ - private static String[] searchForStackTraces() { - if (stackTraceFileList != null) { - return stackTraceFileList; - } - File dir = new File(G.FILES_PATH + "/"); - // Try to create the files folder if it doesn't exist - dir.mkdir(); - // Filter for ".stacktrace" files - FilenameFilter filter = new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.endsWith(".stacktrace"); - } - }; - return (stackTraceFileList = dir.list(filter)); - } - - private static Handler submissionHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - Context context = (Context) msg.obj; - ExceptionClickListener clickListener = new ExceptionClickListener(); - new AlertDialog.Builder(context) - .setMessage(R.string.exceptions_submit_message) - .setPositiveButton(android.R.string.yes, clickListener) - .setNegativeButton(android.R.string.no, clickListener) - .create().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() { - try { - Log.d(TAG, "Looking for exceptions in: " + G.FILES_PATH); - String[] list = searchForStackTraces(); - if (list != null && list.length > 0) { - Log.d(TAG, "Found " + list.length + " stacktrace(s)"); - StringBuilder contents = new StringBuilder(); - for (int i = 0; i < list.length; i++) { - String filePath = G.FILES_PATH + "/" + list[i]; - // Extract the version from the filename: - // "packagename-version-...." - String version = list[i].split("-")[0]; - Log.d(TAG, "Stacktrace in file '" + filePath - + "' belongs to version " + version); - // Read contents of stacktrace - contents.setLength(0); - BufferedReader input; - try { - input = new BufferedReader(new FileReader(filePath)); - } catch (FileNotFoundException fnf) { - continue; - } - String line = null; - while ((line = input.readLine()) != null) { - contents.append(line); - contents.append(System.getProperty("line.separator")); - } - input.close(); - String stacktrace; - stacktrace = contents.toString(); - Log.d(TAG, "Transmitting stack trace: " + stacktrace); - // Transmit stack trace with POST request - DefaultHttpClient httpClient = new DefaultHttpClient(); - HttpPost httpPost = new HttpPost(G.URL); - List<NameValuePair> nvps = new ArrayList<NameValuePair>(); - nvps.add(new BasicNameValuePair("package_name", G.APP_PACKAGE)); - nvps.add(new BasicNameValuePair("package_version", version)); - nvps.add(new BasicNameValuePair("stacktrace", stacktrace)); - httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); - // We don't care about the response, so we just hope it went - // well and on with it - httpClient.execute(httpPost); - } - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - removeStackTraces(); - } - } - - public synchronized static void removeStackTraces() { - try { - String[] list = searchForStackTraces(); - - if (list == null) - return; - - for (int i = 0; i < list.length; i++) { - File file = new File(G.FILES_PATH + "/" + list[i]); - file.delete(); - } - - stackTraceFileList = null; - } catch (Exception e) { - e.printStackTrace(); - } - } -} |