Defer ACRA reporting until device is idle/not low battery/on unmetered network
This commit is contained in:
parent
b5e3f429fc
commit
ec478cbb1b
3 changed files with 17 additions and 3 deletions
|
@ -246,7 +246,7 @@ dependencies {
|
||||||
implementation(libs.logcat)
|
implementation(libs.logcat)
|
||||||
|
|
||||||
// Crash reports/analytics
|
// Crash reports/analytics
|
||||||
implementation(libs.acra.http)
|
implementation(libs.bundles.acra)
|
||||||
"standardImplementation"(libs.firebase.analytics)
|
"standardImplementation"(libs.firebase.analytics)
|
||||||
|
|
||||||
// Shizuku
|
// Shizuku
|
||||||
|
|
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
|
import android.app.job.JobInfo
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
@ -51,10 +52,12 @@ import logcat.AndroidLogcatLogger
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
import logcat.LogcatLogger
|
import logcat.LogcatLogger
|
||||||
import org.acra.config.httpSender
|
import org.acra.config.httpSender
|
||||||
|
import org.acra.config.scheduler
|
||||||
import org.acra.ktx.initAcra
|
import org.acra.ktx.initAcra
|
||||||
import org.acra.sender.HttpSender
|
import org.acra.sender.HttpSender
|
||||||
import org.conscrypt.Conscrypt
|
import org.conscrypt.Conscrypt
|
||||||
import tachiyomi.core.i18n.stringResource
|
import tachiyomi.core.i18n.stringResource
|
||||||
|
import tachiyomi.core.preference.Preference
|
||||||
import tachiyomi.core.util.system.logcat
|
import tachiyomi.core.util.system.logcat
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.widget.WidgetManager
|
import tachiyomi.presentation.widget.WidgetManager
|
||||||
|
@ -199,12 +202,20 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
|
||||||
if (isPreviewBuildType || isReleaseBuildType) {
|
if (isPreviewBuildType || isReleaseBuildType) {
|
||||||
initAcra {
|
initAcra {
|
||||||
buildConfigClass = BuildConfig::class.java
|
buildConfigClass = BuildConfig::class.java
|
||||||
excludeMatchingSharedPreferencesKeys = listOf(".*username.*", ".*password.*", ".*token.*")
|
excludeMatchingSharedPreferencesKeys = listOf(
|
||||||
|
Preference.privateKey(".*"), ".*username.*", ".*password.*", ".*token.*",
|
||||||
|
)
|
||||||
|
|
||||||
httpSender {
|
httpSender {
|
||||||
uri = BuildConfig.ACRA_URI
|
uri = BuildConfig.ACRA_URI
|
||||||
httpMethod = HttpSender.Method.PUT
|
httpMethod = HttpSender.Method.PUT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scheduler {
|
||||||
|
requiresBatteryNotLow = true
|
||||||
|
requiresDeviceIdle = true
|
||||||
|
requiresNetworkType = JobInfo.NETWORK_TYPE_UNMETERED
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[versions]
|
[versions]
|
||||||
aboutlib_version = "10.10.0"
|
aboutlib_version = "10.10.0"
|
||||||
|
acra = "5.11.3"
|
||||||
leakcanary = "2.12"
|
leakcanary = "2.12"
|
||||||
moko = "0.23.0"
|
moko = "0.23.0"
|
||||||
okhttp_version = "5.0.0-alpha.12"
|
okhttp_version = "5.0.0-alpha.12"
|
||||||
|
@ -67,7 +68,8 @@ moko-gradle = { module = "dev.icerock.moko:resources-generator", version.ref = "
|
||||||
|
|
||||||
logcat = "com.squareup.logcat:logcat:0.1"
|
logcat = "com.squareup.logcat:logcat:0.1"
|
||||||
|
|
||||||
acra-http = "ch.acra:acra-http:5.11.3"
|
acra-http = { module = "ch.acra:acra-http", version.ref = "acra" }
|
||||||
|
acra-scheduler = { module = "ch.acra:acra-advanced-scheduler", version.ref = "acra" }
|
||||||
firebase-analytics = "com.google.firebase:firebase-analytics-ktx:21.5.0"
|
firebase-analytics = "com.google.firebase:firebase-analytics-ktx:21.5.0"
|
||||||
|
|
||||||
aboutLibraries-gradle = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlib_version" }
|
aboutLibraries-gradle = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlib_version" }
|
||||||
|
@ -97,6 +99,7 @@ voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", vers
|
||||||
ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.0.3"
|
ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.0.3"
|
||||||
|
|
||||||
[bundles]
|
[bundles]
|
||||||
|
acra = ["acra-http", "acra-scheduler"]
|
||||||
okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"]
|
okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"]
|
||||||
js-engine = ["quickjs-android"]
|
js-engine = ["quickjs-android"]
|
||||||
sqlite = ["sqlite-framework", "sqlite-ktx", "sqlite-android"]
|
sqlite = ["sqlite-framework", "sqlite-ktx", "sqlite-android"]
|
||||||
|
|
Reference in a new issue