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=a134c892f856a2f0384cc0866b76928e478d9286;hp=6a6f26db55a95a7d37aa05e98637d0a6f278a23a;hb=HEAD;hpb=6121d8af7453bf2613f69484e8b4f6d65d72f7f7 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 6a6f26db..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,40 +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); + Thread.setDefaultUncaughtExceptionHandler((t, e) -> { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); - pw.format("OS version: %s; API level %d\n\n", Build.VERSION.RELEASE, - Build.VERSION.SDK_INT); - e.printStackTrace(pw); + 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()); + Log.e(null, sw.toString()); - CrashReportDialogFragment df = new CrashReportDialogFragment(); - df.setCrashReportText(sw.toString()); - df.show(getSupportFragmentManager(), "crash_report"); - } + 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"); } }