diff --git a/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt b/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt index 88d25db3..3a110d98 100644 --- a/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt +++ b/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt @@ -6,10 +6,34 @@ import eu.darken.capod.BuildConfig // Can't be const because that prevents them from being mocked in tests @Suppress("MayBeConstant") object BuildConfigWrap { - val FLAVOR: String = BuildConfig.FLAVOR - val BUILD_TYPE: String = BuildConfig.BUILD_TYPE val DEBUG: Boolean = BuildConfig.DEBUG + val BUILD_TYPE: BuildType = when (val typ = BuildConfig.BUILD_TYPE) { + "debug" -> BuildType.DEV + "beta" -> BuildType.BETA + "release" -> BuildType.RELEASE + else -> throw IllegalArgumentException("Unknown buildtype: $typ") + } + + enum class BuildType { + DEV, + BETA, + RELEASE, + ; + } + + val FLAVOR: Flavor = when (val flav = BuildConfig.FLAVOR) { + "gplay" -> Flavor.GPLAY + "foss" -> Flavor.FOSS + else -> throw IllegalStateException("Unknown flavor: $flav") + } + + enum class Flavor { + GPLAY, + FOSS, + ; + } + val APPLICATION_ID = BuildConfig.APPLICATION_ID val VERSION_CODE: Long = BuildConfig.VERSION_CODE.toLong() diff --git a/app/src/main/java/eu/darken/capod/common/debug/autoreport/AutoReporting.kt b/app/src/main/java/eu/darken/capod/common/debug/autoreport/AutoReporting.kt index 736e8f82..4238b1e8 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/autoreport/AutoReporting.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/autoreport/AutoReporting.kt @@ -28,12 +28,12 @@ class AutoReporting @Inject constructor( ) { fun setup() { - val isEnabled = debugSettings.isAutoReportEnabled.value + val isEnabled = debugSettings.isAutoReportingEnabled.value log(TAG) { "setup(): isEnabled=$isEnabled" } try { val bugsnagConfig = Configuration.load(context).apply { - if (debugSettings.isAutoReportEnabled.value) { + if (debugSettings.isAutoReportingEnabled.value) { Logging.install(bugsnagLogger.get()) setUser(installId.id, null, null) autoTrackSessions = true diff --git a/app/src/main/java/eu/darken/capod/common/debug/autoreport/DebugSettings.kt b/app/src/main/java/eu/darken/capod/common/debug/autoreport/DebugSettings.kt index 3fe7f906..9e6735d3 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/autoreport/DebugSettings.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/autoreport/DebugSettings.kt @@ -4,6 +4,7 @@ import android.content.Context import android.content.SharedPreferences import androidx.preference.PreferenceDataStore import dagger.hilt.android.qualifiers.ApplicationContext +import eu.darken.capod.common.BuildConfigWrap import eu.darken.capod.common.preferences.PreferenceStoreMapper import eu.darken.capod.common.preferences.Settings import eu.darken.capod.common.preferences.createFlowPreference @@ -17,8 +18,11 @@ class DebugSettings @Inject constructor( override val preferences: SharedPreferences = context.getSharedPreferences("settings_debug", Context.MODE_PRIVATE) - val isAutoReportEnabled = preferences.createFlowPreference("debug.bugreport.automatic.enabled", true) - + val isAutoReportingEnabled = preferences.createFlowPreference( + key = "debug.bugreport.automatic.enabled", + // Reporting is opt-out for gplay, and opt-in for github builds + defaultValue = BuildConfigWrap.FLAVOR == BuildConfigWrap.Flavor.GPLAY + ) val isDebugModeEnabled = preferences.createFlowPreference("debug.mode.enabled", false) val showFakeData = preferences.createFlowPreference("debug.fakedata.enabled", false) diff --git a/app/src/main/java/eu/darken/capod/common/debug/autoreport/bugsnag/BugsnagErrorHandler.kt b/app/src/main/java/eu/darken/capod/common/debug/autoreport/bugsnag/BugsnagErrorHandler.kt index c99d261a..5222ca26 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/autoreport/bugsnag/BugsnagErrorHandler.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/autoreport/bugsnag/BugsnagErrorHandler.kt @@ -32,7 +32,7 @@ class BugsnagErrorHandler @Inject constructor( context.tryFormattedSignature()?.let { event.addMetadata(tab, "signatures", it) } } - return debugSettings.isAutoReportEnabled.value && !BuildConfigWrap.DEBUG + return debugSettings.isAutoReportingEnabled.value && !BuildConfigWrap.DEBUG } companion object { diff --git a/app/src/main/java/eu/darken/capod/main/core/GeneralSettings.kt b/app/src/main/java/eu/darken/capod/main/core/GeneralSettings.kt index 43a78d8d..b3d0b99a 100644 --- a/app/src/main/java/eu/darken/capod/main/core/GeneralSettings.kt +++ b/app/src/main/java/eu/darken/capod/main/core/GeneralSettings.kt @@ -67,6 +67,6 @@ class GeneralSettings @Inject constructor( showAll, minimumSignalQuality, mainDeviceAddress, - debugSettings.isAutoReportEnabled, + debugSettings.isAutoReportingEnabled, ) } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt b/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt index 0ef26103..f6ecd4fb 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt @@ -15,9 +15,9 @@ import javax.inject.Inject @HiltViewModel class SupportFragmentVM @Inject constructor( private val handle: SavedStateHandle, + private val dispatcherProvider: DispatcherProvider, private val emailTool: EmailTool, private val installId: InstallId, - private val dispatcherProvider: DispatcherProvider, ) : ViewModel3(dispatcherProvider) { val emailEvent = SingleLiveEvent() diff --git a/app/src/main/res/xml/preferences_general.xml b/app/src/main/res/xml/preferences_general.xml index 5c85b3a4..20162add 100644 --- a/app/src/main/res/xml/preferences_general.xml +++ b/app/src/main/res/xml/preferences_general.xml @@ -50,13 +50,6 @@ - - - + + \ No newline at end of file