diff options
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt')
-rw-r--r-- | app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt b/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt index ff5b930..e90ada2 100644 --- a/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt +++ b/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt | |||
@@ -13,6 +13,8 @@ import org.pacien.tincapp.BuildConfig | |||
13 | import org.pacien.tincapp.R | 13 | import org.pacien.tincapp.R |
14 | import org.pacien.tincapp.context.App | 14 | import org.pacien.tincapp.context.App |
15 | import org.pacien.tincapp.context.AppInfo | 15 | import org.pacien.tincapp.context.AppInfo |
16 | import org.pacien.tincapp.context.AppPaths | ||
17 | import org.pacien.tincapp.context.CrashRecorder | ||
16 | 18 | ||
17 | /** | 19 | /** |
18 | * @author pacien | 20 | * @author pacien |
@@ -22,6 +24,7 @@ abstract class BaseActivity : AppCompatActivity() { | |||
22 | super.onCreate(savedInstanceState) | 24 | super.onCreate(savedInstanceState) |
23 | setContentView(R.layout.base) | 25 | setContentView(R.layout.base) |
24 | setSupportActionBar(toolbar) | 26 | setSupportActionBar(toolbar) |
27 | handleRecentCrash() | ||
25 | } | 28 | } |
26 | 29 | ||
27 | override fun onCreateOptionsMenu(m: Menu): Boolean { | 30 | override fun onCreateOptionsMenu(m: Menu): Boolean { |
@@ -45,6 +48,26 @@ abstract class BaseActivity : AppCompatActivity() { | |||
45 | if (!isFinishing && !isDestroyed) super.runOnUiThread(action) | 48 | if (!isFinishing && !isDestroyed) super.runOnUiThread(action) |
46 | } | 49 | } |
47 | 50 | ||
51 | private fun handleRecentCrash() { | ||
52 | if (!CrashRecorder.hasPreviouslyCrashed()) return | ||
53 | CrashRecorder.dismissPreviousCrash() | ||
54 | |||
55 | AlertDialog.Builder(this) | ||
56 | .setTitle(R.string.title_app_crash) | ||
57 | .setMessage(listOf( | ||
58 | resources.getString(R.string.message_app_crash), | ||
59 | resources.getString(R.string.message_crash_logged, AppPaths.appLogFile().absolutePath) | ||
60 | ).joinToString("\n\n")) | ||
61 | .setNeutralButton(R.string.action_send_report, { _, _ -> | ||
62 | App.sendMail( | ||
63 | resources.getString(R.string.app_dev_email), | ||
64 | listOf(R.string.app_name, R.string.title_app_crash).joinToString(" / ", transform = resources::getString), | ||
65 | AppPaths.appLogFile().let { if (it.exists()) it.readText() else "" }) | ||
66 | }) | ||
67 | .setPositiveButton(R.string.action_close, { _, _ -> Unit }) | ||
68 | .show() | ||
69 | } | ||
70 | |||
48 | protected fun notify(@StringRes msg: Int) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show() | 71 | protected fun notify(@StringRes msg: Int) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show() |
49 | protected fun notify(msg: String) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show() | 72 | protected fun notify(msg: String) = Snackbar.make(activity_base, msg, Snackbar.LENGTH_LONG).show() |
50 | protected fun showProgressDialog(@StringRes msg: Int): ProgressDialog = ProgressDialog.show(this, null, getString(msg), true, false) | 73 | protected fun showProgressDialog(@StringRes msg: Int): ProgressDialog = ProgressDialog.show(this, null, getString(msg), true, false) |