X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/efc9808d9ab46612d7bcc0d76b3c151bfb92861a..a4ba6170ea7696e085b07adfef73eeb8b77cb8e2:/src/eu/alefzero/owncloud/CrashHandler.java?ds=sidebyside diff --git a/src/eu/alefzero/owncloud/CrashHandler.java b/src/eu/alefzero/owncloud/CrashHandler.java deleted file mode 100644 index 69298e82..00000000 --- a/src/eu/alefzero/owncloud/CrashHandler.java +++ /dev/null @@ -1,109 +0,0 @@ -package eu.alefzero.owncloud; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileWriter; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.io.Writer; -import java.lang.Thread.UncaughtExceptionHandler; -import java.util.LinkedList; -import java.util.List; - -import eu.alefzero.owncloud.authenticator.AccountAuthenticator; - -import android.accounts.Account; -import android.accounts.AccountManager; -import android.content.Context; -import android.net.ConnectivityManager; -import android.os.Environment; -import android.util.Log; - -public class CrashHandler implements UncaughtExceptionHandler { - - private Context mContext; - private static final String TAG = "CrashHandler"; - private static final String crash_filename_template = "crash"; - private static List TAGS; - private UncaughtExceptionHandler defaultUEH; - - static { - TAGS = new LinkedList(); - TAGS.add("AccountAuthenticator"); - TAGS.add("AccountAuthenticator"); - TAGS.add("ConnectionCheckerRunnable"); - TAGS.add("EasySSLSocketFactory"); - TAGS.add("FileDataStorageManager"); - TAGS.add("PhotoTakenBroadcastReceiver"); - TAGS.add("InstantUploadService"); - TAGS.add("FileDownloader"); - TAGS.add("FileUploader"); - TAGS.add("LocationUpdateService"); - TAGS.add("FileSyncAdapter"); - TAGS.add("AuthActivity"); - TAGS.add("OwnCloudPreferences"); - TAGS.add("FileDetailFragment"); - TAGS.add("FileListFragment"); - TAGS.add("ownCloudUploader"); - TAGS.add("WebdavClient"); - } - - public CrashHandler(Context context) { - mContext = context; - defaultUEH = Thread.getDefaultUncaughtExceptionHandler(); - } - - @Override - public void uncaughtException(Thread thread, Throwable ex) { - final Writer writer = new StringWriter(); - final PrintWriter printwriter = new PrintWriter(writer); - ex.printStackTrace(printwriter); - final String startrace = writer.toString(); - printwriter.close(); - File ocdir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "owncloud"); - ocdir.mkdirs(); - - String crash_filename = crash_filename_template + System.currentTimeMillis() + ".txt"; - File crashfile = new File(ocdir, crash_filename); - try { - ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); - String header = String.format("Model: %s, SDK: %d, Current net: %s\n\n", - android.os.Build.MODEL, - android.os.Build.VERSION.SDK_INT, - cm.getActiveNetworkInfo() != null ? cm.getActiveNetworkInfo().getTypeName() : "NONE"); - Account account = AccountUtils.getCurrentOwnCloudAccount(mContext); - AccountManager am = AccountManager.get(mContext); - String header2 = String.format("Account: %s, OCUrl: %s, OCVersion: %s\n\n", - account.name, - am.getUserData(account, AccountAuthenticator.KEY_OC_BASE_URL), - am.getUserData(account, AccountAuthenticator.KEY_OC_VERSION)); - - crashfile.createNewFile(); - FileWriter fw = new FileWriter(crashfile); - fw.write(header); - fw.write(header2); - fw.write(startrace); - fw.write("\n\n"); - - String logcat = "logcat -d *:S "; - - for (String s : TAGS) - logcat += s + ":V "; - - Process process = Runtime.getRuntime().exec(logcat); - BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); - String logline; - while ((logline = br.readLine()) != null) - fw.write(logline+"\n"); - - br.close(); - fw.close(); - - } catch (Exception e1) { - Log.e(TAG, "Crash handler failed to run logcat, WTF!"); - defaultUEH.uncaughtException(thread, ex); - return; - } - } -}