X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FCrashReportingActivity.java;h=183a5e9184d84ad0ec847a507e013d17f75ff791;hp=7a16730beb3030d5504afd311157660f60f50a94;hb=HEAD;hpb=efa1f56494e485c7f8d4f97cd64df4b01f7b5e07 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java index 7a16730b..a134c892 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -17,36 +17,50 @@ package net.ktnx.mobileledger.ui.activity; +import android.content.pm.PackageInfo; +import android.os.Build; import android.os.Bundle; import android.util.Log; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + import net.ktnx.mobileledger.ui.CrashReportDialogFragment; import java.io.PrintWriter; import java.io.StringWriter; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; +import static net.ktnx.mobileledger.utils.Logger.debug; public abstract class CrashReportingActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { - @Override - public void uncaughtException(Thread t, Throwable e) { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - e.printStackTrace(pw); + Thread.setDefaultUncaughtExceptionHandler((t, e) -> { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); - Log.e(null, sw.toString()); - - CrashReportDialogFragment df = new CrashReportDialogFragment(); - df.setCrashReportText(sw.toString()); - df.show(getSupportFragmentManager(), "crash_report"); + try { + PackageInfo pi = getApplicationContext().getPackageManager() + .getPackageInfo(getPackageName(), 0); + pw.format("MoLe version: %s\n", pi.versionName); + } + catch (Exception oh) { + pw.print("Error getting package version:\n"); + oh.printStackTrace(pw); + pw.print("\n"); } + pw.format("OS version: %s; API level %d\n\n", Build.VERSION.RELEASE, + Build.VERSION.SDK_INT); + e.printStackTrace(pw); + + Log.e(null, sw.toString()); + + CrashReportDialogFragment df = new CrashReportDialogFragment(); + df.setCrashReportText(sw.toString()); + df.show(getSupportFragmentManager(), "crash_report"); }); - Log.d("crash", "Uncaught exception handler set"); + debug("crash", "Uncaught exception handler set"); } }