feat: remove Beagle's logger integration

Fixes Sentry issue PASSWORD-STORE-GOOGLE-PLAY-14
This commit is contained in:
Harsh Shandilya 2022-11-16 03:57:32 +05:30
parent 480374d974
commit b83cd841e8
No known key found for this signature in database
4 changed files with 3 additions and 45 deletions

View file

@ -104,12 +104,9 @@ dependencies {
if (snapshot.snapshot) {
implementation(libs.thirdparty.whatthestack)
implementation(libs.thirdparty.beagle.ui.drawer)
implementation(libs.thirdparty.beagle.log)
} else {
debugImplementation(libs.thirdparty.beagle.ui.drawer)
debugImplementation(libs.thirdparty.beagle.log)
releaseImplementation(libs.thirdparty.beagle.noop)
releaseImplementation(libs.thirdparty.beagle.log.noop)
debugImplementation(libs.thirdparty.whatthestack)
}

View file

@ -18,21 +18,17 @@ import app.passwordstore.util.extensions.getString
import app.passwordstore.util.features.Feature
import app.passwordstore.util.features.Features
import app.passwordstore.util.git.sshj.setUpBouncyCastleForSshj
import app.passwordstore.util.log.ForwardingLogcatLogger
import app.passwordstore.util.proxy.ProxyUtils
import app.passwordstore.util.settings.GitSettings
import app.passwordstore.util.settings.PreferenceKeys
import app.passwordstore.util.settings.runMigrations
import com.google.android.material.color.DynamicColors
import com.pandulapeter.beagle.Beagle
import com.pandulapeter.beagle.common.configuration.Behavior
import com.pandulapeter.beagle.log.BeagleLogger
import com.pandulapeter.beagle.modules.AppInfoButtonModule
import com.pandulapeter.beagle.modules.DeviceInfoModule
import com.pandulapeter.beagle.modules.DividerModule
import com.pandulapeter.beagle.modules.HeaderModule
import com.pandulapeter.beagle.modules.LifecycleLogListModule
import com.pandulapeter.beagle.modules.LogListModule
import com.pandulapeter.beagle.modules.PaddingModule
import com.pandulapeter.beagle.modules.ScreenCaptureToolboxModule
import dagger.hilt.android.HiltAndroidApp
@ -40,6 +36,7 @@ import io.sentry.Sentry
import io.sentry.protocol.User
import java.util.concurrent.Executors
import javax.inject.Inject
import logcat.AndroidLogcatLogger
import logcat.LogPriority.DEBUG
import logcat.LogPriority.VERBOSE
import logcat.LogcatLogger
@ -62,16 +59,7 @@ class Application : android.app.Application(), SharedPreferences.OnSharedPrefere
BuildConfig.ENABLE_DEBUG_FEATURES ||
prefs.getBoolean(PreferenceKeys.ENABLE_DEBUG_LOGGING, false)
) {
Beagle.initialize(
application = this,
behavior =
Behavior(
logBehavior =
Behavior.LogBehavior(
loggers = listOf(BeagleLogger),
)
)
)
Beagle.initialize(application = this)
Beagle.set(
HeaderModule(
title = getString(R.string.app_name),
@ -83,12 +71,11 @@ class Application : android.app.Application(), SharedPreferences.OnSharedPrefere
PaddingModule(),
ScreenCaptureToolboxModule(),
DividerModule(),
LogListModule(),
LifecycleLogListModule(),
DividerModule(),
DeviceInfoModule(),
)
LogcatLogger.install(ForwardingLogcatLogger(DEBUG))
LogcatLogger.install(AndroidLogcatLogger(DEBUG))
setVmPolicy()
}
prefs.registerOnSharedPreferenceChangeListener(this)

View file

@ -1,24 +0,0 @@
package app.passwordstore.util.log
import com.pandulapeter.beagle.log.BeagleLogger
import logcat.AndroidLogcatLogger
import logcat.LogPriority
import logcat.LogPriority.DEBUG
import logcat.LogcatLogger
/**
* Wrapper around [AndroidLogcatLogger] that ensures all logged messages are also forwarded to
* [BeagleLogger].
*/
class ForwardingLogcatLogger(minPriority: LogPriority = DEBUG) : LogcatLogger {
private val androidLogger = AndroidLogcatLogger(minPriority)
override fun isLoggable(priority: LogPriority): Boolean {
return androidLogger.isLoggable(priority)
}
override fun log(priority: LogPriority, tag: String, message: String) {
androidLogger.log(priority, tag, message)
BeagleLogger.log(message = "[$tag]: $message", label = "Logcat", isPersisted = true)
}
}

View file

@ -76,8 +76,6 @@ testing-robolectric = "org.robolectric:robolectric:4.9"
testing-sharedPrefsMock = "com.github.android-password-store:shared-preferences-fake:2.0.0"
testing-testparameterinjector = "com.google.testparameterinjector:test-parameter-injector:1.10"
testing-turbine = "app.cash.turbine:turbine:0.12.1"
thirdparty-beagle-log = { module = "io.github.pandulapeter.beagle:log", version.ref = "beagle" }
thirdparty-beagle-log-noop = { module = "io.github.pandulapeter.beagle:log-noop", version.ref = "beagle" }
thirdparty-beagle-noop = { module = "io.github.pandulapeter.beagle:noop", version.ref = "beagle" }
thirdparty-beagle-ui-drawer = { module = "io.github.pandulapeter.beagle:ui-drawer", version.ref = "beagle" }
thirdparty-bouncycastle-bcpkix = { module = "org.bouncycastle:bcpkix-jdk15to18", version.ref = "bouncycastle" }