Skip to content

Commit 1ebf68e

Browse files
committed
feat: acra, collect crash trace by email.
1 parent 83eb0e9 commit 1ebf68e

File tree

14 files changed

+42
-336
lines changed

14 files changed

+42
-336
lines changed

app/smartphone/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ baselineProfile {
9999
}
100100

101101
dependencies {
102+
implementation(project(":i18n"))
102103
implementation(project(":core"))
103104
implementation(project(":core:foundation"))
104105
implementation(project(":core:extension"))
@@ -171,4 +172,6 @@ dependencies {
171172
implementation(libs.net.mm2d.mmupnp.mmupnp)
172173
implementation(libs.haze)
173174
implementation(libs.haze.materials)
175+
implementation(libs.acra.notification)
176+
implementation(libs.acra.mail)
174177
}

app/smartphone/src/main/java/com/m3u/smartphone/M3UApplication.kt

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,57 @@
11
package com.m3u.smartphone
22

33
import android.app.Application
4+
import android.content.Context
45
import androidx.hilt.work.HiltWorkerFactory
56
import androidx.work.Configuration
67
import com.m3u.core.architecture.logger.Logger
78
import com.m3u.core.extension.Utils
8-
import com.m3u.smartphone.ui.business.crash.CrashHandler
9+
import com.m3u.i18n.R.string
910
import dagger.hilt.android.HiltAndroidApp
11+
import kotlinx.coroutines.MainScope
12+
import kotlinx.coroutines.delay
13+
import kotlinx.coroutines.launch
14+
import org.acra.config.mailSender
15+
import org.acra.config.notification
16+
import org.acra.data.StringFormat
17+
import org.acra.ktx.initAcra
1018
import javax.inject.Inject
19+
import kotlin.time.Duration.Companion.seconds
1120

1221
@HiltAndroidApp
1322
class M3UApplication : Application(), Configuration.Provider {
1423
@Inject
1524
lateinit var workerFactory: HiltWorkerFactory
1625

17-
@Inject
18-
lateinit var handler: CrashHandler
19-
2026
@Inject
2127
@Logger.MessageImpl
2228
lateinit var messager: Logger
2329

24-
// private val coroutineScope = CoroutineScope(SupervisorJob())
25-
2630
override fun onCreate() {
2731
super.onCreate()
2832
Utils.init(this)
29-
Thread.setDefaultUncaughtExceptionHandler(handler)
30-
// ResponseBodies.WebPage
31-
// .onEach {
32-
// }
33-
// .launchIn(coroutineScope)
33+
}
34+
35+
override fun attachBaseContext(base: Context?) {
36+
super.attachBaseContext(base)
37+
initAcra {
38+
buildConfigClass = BuildConfig::class.java
39+
reportFormat = StringFormat.JSON
40+
notification {
41+
title = getString(string.crash_notification_title)
42+
text = getString(string.crash_notification_text)
43+
channelName = getString(string.crash_notification_channel_name)
44+
}
45+
mailSender {
46+
mailTo = "[email protected]"
47+
reportAsFile = true
48+
reportFileName = "Crash.txt"
49+
}
50+
}
51+
MainScope().launch {
52+
delay(3.seconds)
53+
throw RuntimeException("Test crash to check ACRA integration")
54+
}
3455
}
3556

3657
override val workManagerConfiguration: Configuration by lazy {

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/CrashActivity.kt

Lines changed: 0 additions & 30 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/CrashApp.kt

Lines changed: 0 additions & 38 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/CrashHandler.kt

Lines changed: 0 additions & 35 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/components/FileItem.kt

Lines changed: 0 additions & 50 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/navigation/Destination.kt

Lines changed: 0 additions & 6 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/screen/detail/DetailScreen.kt

Lines changed: 0 additions & 78 deletions
This file was deleted.

app/smartphone/src/main/java/com/m3u/smartphone/ui/business/crash/screen/detail/DetailViewModel.kt

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)