aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/activities/BaseActivity.kt
diff options
context:
space:
mode:
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.kt23
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
13import org.pacien.tincapp.R 13import org.pacien.tincapp.R
14import org.pacien.tincapp.context.App 14import org.pacien.tincapp.context.App
15import org.pacien.tincapp.context.AppInfo 15import org.pacien.tincapp.context.AppInfo
16import org.pacien.tincapp.context.AppPaths
17import 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)