From a5762d98a07ce30e8b3e1ac364e15e1c65029b75 Mon Sep 17 00:00:00 2001 From: pacien Date: Sat, 31 Mar 2018 16:56:35 +0200 Subject: Prompt for bug report --- .../main/java/org/pacien/tincapp/context/App.kt | 32 +++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'app/src/main/java/org/pacien/tincapp/context/App.kt') diff --git a/app/src/main/java/org/pacien/tincapp/context/App.kt b/app/src/main/java/org/pacien/tincapp/context/App.kt index 53049f3..7ec1a47 100644 --- a/app/src/main/java/org/pacien/tincapp/context/App.kt +++ b/app/src/main/java/org/pacien/tincapp/context/App.kt @@ -9,31 +9,26 @@ import android.support.annotation.StringRes import android.support.v7.app.AlertDialog import android.view.WindowManager import org.pacien.tincapp.R -import org.slf4j.Logger import org.slf4j.LoggerFactory +import java.io.File /** * @author pacien */ -class App : Application(), Thread.UncaughtExceptionHandler { - private var logger: Logger? = null - private var systemCrashHandler: Thread.UncaughtExceptionHandler? = null - +class App : Application() { override fun onCreate() { super.onCreate() appContext = applicationContext handler = Handler() - AppLogger.configure() - logger = LoggerFactory.getLogger(this.javaClass) - - systemCrashHandler = Thread.getDefaultUncaughtExceptionHandler() - Thread.setDefaultUncaughtExceptionHandler(this) + setupCrashHandler() } - override fun uncaughtException(thread: Thread, throwable: Throwable) { - logger?.error("Fatal application error.", throwable) - systemCrashHandler?.uncaughtException(thread, throwable) + private fun setupCrashHandler() { + val logger = LoggerFactory.getLogger(this.javaClass) + val systemCrashHandler = Thread.getDefaultUncaughtExceptionHandler() + val crashRecorder = CrashRecorder(logger, systemCrashHandler) + Thread.setDefaultUncaughtExceptionHandler(crashRecorder) } companion object { @@ -56,5 +51,16 @@ class App : Application(), Thread.UncaughtExceptionHandler { val chooser = Intent.createChooser(intent, getResources().getString(R.string.action_open_web_page)) appContext?.startActivity(chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) } + + fun sendMail(recipient: String, subject: String, body: String? = null, attachment: File? = null) { + val intent = Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:")) + .putExtra(Intent.EXTRA_EMAIL, arrayOf(recipient)) + .putExtra(Intent.EXTRA_SUBJECT, subject) + .apply { if (body != null) putExtra(Intent.EXTRA_TEXT, body) } + .apply { if (attachment != null) putExtra(Intent.EXTRA_STREAM, Uri.fromFile(attachment)) } + + val chooser = Intent.createChooser(intent, getResources().getString(R.string.action_send_email)) + appContext?.startActivity(chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + } } } -- cgit v1.2.3