From a8e12cd9fa68676d6384341e5b2dc4b5d800828a Mon Sep 17 00:00:00 2001 From: Dmitry Borodin Date: Fri, 12 Jan 2024 17:42:17 +0100 Subject: [PATCH] feat: migration togs to Timber so we won't post logs in release app --- android/build.gradle | 1 + .../java/io/parity/signer/PolkadotVaultApp.kt | 10 ++++++++-- .../main/java/io/parity/signer/domain/Helpers.kt | 4 ++-- .../io/parity/signer/domain/MainFlowViewModel.kt | 4 ++-- .../java/io/parity/signer/domain/Navigation.kt | 4 ++-- .../io/parity/signer/domain/NavigationLogger.kt | 4 ++-- .../main/java/io/parity/signer/domain/Utils.kt | 4 ++-- .../signer/domain/storage/SeedRepository.kt | 16 ++++++++-------- .../parity/signer/domain/storage/SeedStorage.kt | 6 +++--- .../DerivationCreateViewModel.kt | 6 +++--- .../signer/screens/initial/UnlockScreen.kt | 2 +- .../screenlock/SetScreenLockScreen.kt | 4 ++-- .../keysetdetails/KeySetDetailsViewModel.kt | 4 ++-- .../keysets/create/NewKeysetNameScreen.kt | 2 +- .../keysetname/KeysetRecoverNameScreen.kt | 2 +- .../parity/signer/screens/scan/ScanViewModel.kt | 16 ++++++++-------- .../signer/screens/scan/camera/CameraView.kt | 4 ++-- .../screens/scan/camera/CameraViewModel.kt | 10 +++++----- .../screens/settings/logs/LogsViewModel.kt | 10 +++++----- .../settings/logs/comment/AddLogCommentScreen.kt | 4 ++-- .../settings/logs/logdetails/LogDetails.kt | 4 ++-- .../logs/logdetails/LogsDetailsViewModel.kt | 4 ++-- .../screens/settings/logs/logslist/LogsMenu.kt | 2 +- .../settings/logs/logslist/LogsScreenFull.kt | 4 ++-- .../networks/signspecs/SignSpecsViewModel.kt | 4 ++-- .../ui/rootnavigation/MainScreensAppFlow.kt | 4 ++-- 26 files changed, 73 insertions(+), 66 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 354087198b..ded585b042 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -116,6 +116,7 @@ dependencies { implementation "com.appmattus.crypto:cryptohash:0.10.1" //black2b hash for dot icon implementation "io.coil-kt:coil-compose:$coilVersion" implementation "io.coil-kt:coil-svg:$coilVersion" + implementation 'com.jakewharton.timber:timber:5.0.1' testImplementation 'junit:junit:4.13.2' testImplementation "org.mockito:mockito-core:5.8.0" testImplementation "androidx.test:core:1.5.0" diff --git a/android/src/main/java/io/parity/signer/PolkadotVaultApp.kt b/android/src/main/java/io/parity/signer/PolkadotVaultApp.kt index 806543c504..0c68982bcb 100644 --- a/android/src/main/java/io/parity/signer/PolkadotVaultApp.kt +++ b/android/src/main/java/io/parity/signer/PolkadotVaultApp.kt @@ -1,13 +1,15 @@ package io.parity.signer import android.app.Application -import android.util.Log import io.parity.signer.dependencygraph.ServiceLocator import io.parity.signer.domain.submitErrorState import io.parity.signer.uniffi.ErrorDisplayed import io.parity.signer.uniffi.initLogging +import timber.log.Timber +import timber.log.Timber.* import java.lang.Thread.UncaughtExceptionHandler + class PolkadotVaultApp : Application() { override fun onCreate() { super.onCreate() @@ -16,6 +18,10 @@ class PolkadotVaultApp : Application() { initLogging("SIGNER_RUST_LOG") + if (BuildConfig.DEBUG) { + Timber.plant(DebugTree()) + } + val defaultHandler = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler( RootExceptionHandler(defaultHandler) @@ -34,7 +40,7 @@ class RootExceptionHandler( override fun uncaughtException(t: Thread, e: Throwable) { val rustStr = findErrorDisplayedStr(e) if (rustStr != null) { - Log.e(TAG, "Rust caused ErrorDisplay message was: ${rustStr.s}") + Timber.e(TAG, "Rust caused ErrorDisplay message was: ${rustStr.s}") submitErrorState("rust error not handled, fix it!") } else { defaultHandler?.uncaughtException(t, e) ?: throw e diff --git a/android/src/main/java/io/parity/signer/domain/Helpers.kt b/android/src/main/java/io/parity/signer/domain/Helpers.kt index 601555be68..87d5688abb 100644 --- a/android/src/main/java/io/parity/signer/domain/Helpers.kt +++ b/android/src/main/java/io/parity/signer/domain/Helpers.kt @@ -1,12 +1,12 @@ package io.parity.signer.domain -import android.util.Log +import timber.log.Timber import io.parity.signer.BuildConfig import io.parity.signer.uniffi.ErrorDisplayed import java.lang.RuntimeException fun submitErrorState(message: String) { - Log.e("error state", message) + Timber.e("error state", message) if (BuildConfig.DEBUG) { throw RuntimeException(message) } diff --git a/android/src/main/java/io/parity/signer/domain/MainFlowViewModel.kt b/android/src/main/java/io/parity/signer/domain/MainFlowViewModel.kt index 2b5ca7b4cc..ab7e18eac3 100644 --- a/android/src/main/java/io/parity/signer/domain/MainFlowViewModel.kt +++ b/android/src/main/java/io/parity/signer/domain/MainFlowViewModel.kt @@ -2,7 +2,7 @@ package io.parity.signer.domain import android.annotation.SuppressLint import android.content.* -import android.util.Log +import timber.log.Timber import androidx.fragment.app.FragmentActivity import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -34,7 +34,7 @@ class MainFlowViewModel() : ViewModel() { AuthResult.AuthError, AuthResult.AuthFailed, AuthResult.AuthUnavailable -> { - Log.e("Signer", "Auth failed, not unlocked") + Timber.e("Signer", "Auth failed, not unlocked") } } } diff --git a/android/src/main/java/io/parity/signer/domain/Navigation.kt b/android/src/main/java/io/parity/signer/domain/Navigation.kt index dd417b8c37..a3fab98df7 100644 --- a/android/src/main/java/io/parity/signer/domain/Navigation.kt +++ b/android/src/main/java/io/parity/signer/domain/Navigation.kt @@ -1,7 +1,7 @@ package io.parity.signer.domain import android.content.Context -import android.util.Log +import timber.log.Timber import android.widget.Toast import io.parity.signer.R import io.parity.signer.dependencygraph.ServiceLocator @@ -44,7 +44,7 @@ class FakeNavigator : Navigator { try { backendAction(action, details, seedPhrase) } catch (e: ErrorDisplayed) { - Log.e("fake navigation error", e.message ?: e.toString()) + Timber.e("fake navigation error", e.message ?: e.toString()) } //do nothing with result } diff --git a/android/src/main/java/io/parity/signer/domain/NavigationLogger.kt b/android/src/main/java/io/parity/signer/domain/NavigationLogger.kt index 6d7fecc170..4250bcf82e 100644 --- a/android/src/main/java/io/parity/signer/domain/NavigationLogger.kt +++ b/android/src/main/java/io/parity/signer/domain/NavigationLogger.kt @@ -1,7 +1,7 @@ package io.parity.signer.domain import android.os.Bundle -import android.util.Log +import timber.log.Timber import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.NavHostController @@ -19,7 +19,7 @@ private class NavLogger(val tag: String) : destination: NavDestination, arguments: Bundle? ) { - Log.d(tag, "destination is " + destination.route) + Timber.d(tag, "destination is " + destination.route) } } diff --git a/android/src/main/java/io/parity/signer/domain/Utils.kt b/android/src/main/java/io/parity/signer/domain/Utils.kt index 2f37edaf07..91407da4e2 100644 --- a/android/src/main/java/io/parity/signer/domain/Utils.kt +++ b/android/src/main/java/io/parity/signer/domain/Utils.kt @@ -2,7 +2,7 @@ package io.parity.signer.domain import android.content.Context import android.graphics.BitmapFactory -import android.util.Log +import timber.log.Timber import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asImageBitmap import kotlinx.coroutines.CoroutineScope @@ -65,7 +65,7 @@ fun List.intoImageBitmap(): ImageBitmap { return try { BitmapFactory.decodeByteArray(picture, 0, picture.size).asImageBitmap() } catch (e: java.lang.Exception) { - Log.d("image decoding error", e.toString()) + Timber.d("image decoding error", e.toString()) ImageBitmap(1, 1) } } diff --git a/android/src/main/java/io/parity/signer/domain/storage/SeedRepository.kt b/android/src/main/java/io/parity/signer/domain/storage/SeedRepository.kt index e4389d031c..bb2a049d16 100644 --- a/android/src/main/java/io/parity/signer/domain/storage/SeedRepository.kt +++ b/android/src/main/java/io/parity/signer/domain/storage/SeedRepository.kt @@ -1,7 +1,7 @@ package io.parity.signer.domain.storage import android.security.keystore.UserNotAuthenticatedException -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.fragment.app.FragmentActivity import io.parity.signer.domain.AuthResult @@ -67,7 +67,7 @@ class SeedRepository( } } } catch (e: java.lang.Exception) { - Log.d("get seed failure", e.toString()) + Timber.d("get seed failure", e.toString()) Toast.makeText(activity, "get seed failure: $e", Toast.LENGTH_LONG).show() RepoResult.Failure(RuntimeException("Unexpected Exception", e)) } @@ -111,7 +111,7 @@ class SeedRepository( } } } catch (e: java.lang.Exception) { - Log.d("get seed failure", e.toString()) + Timber.d("get seed failure", e.toString()) Toast.makeText(activity, "get seed failure: $e", Toast.LENGTH_LONG).show() RepoResult.Failure(RuntimeException("Unexpected Exception", e)) } @@ -141,12 +141,12 @@ class SeedRepository( AuthResult.AuthError, AuthResult.AuthFailed, AuthResult.AuthUnavailable -> { - Log.e(TAG, "auth error - $authResult") + Timber.e(TAG, "auth error - $authResult") false } } } catch (e: java.lang.Exception) { - Log.e(TAG, e.toString()) + Timber.e(TAG, e.toString()) return false } } @@ -181,7 +181,7 @@ class SeedRepository( is UniffiResult.Success -> OperationResult.Ok(Unit) } } catch (e: java.lang.Exception) { - Log.d("remove seed error", e.toString()) + Timber.d("remove seed error", e.toString()) OperationResult.Err(e) } } @@ -189,7 +189,7 @@ class SeedRepository( AuthResult.AuthError, AuthResult.AuthFailed, AuthResult.AuthUnavailable -> { - Log.d("remove seed auth error ", authResult.toString()) + Timber.d("remove seed auth error ", authResult.toString()) OperationResult.Err(Exception("remove seed auth error $authResult")) } } @@ -223,7 +223,7 @@ class SeedRepository( AuthResult.AuthError, AuthResult.AuthFailed, AuthResult.AuthUnavailable -> { - Log.e(TAG, "auth error - $authResult") + Timber.e(TAG, "auth error - $authResult") false } } diff --git a/android/src/main/java/io/parity/signer/domain/storage/SeedStorage.kt b/android/src/main/java/io/parity/signer/domain/storage/SeedStorage.kt index 9aa2157ac0..7924c9c7c4 100644 --- a/android/src/main/java/io/parity/signer/domain/storage/SeedStorage.kt +++ b/android/src/main/java/io/parity/signer/domain/storage/SeedStorage.kt @@ -5,7 +5,7 @@ import android.content.SharedPreferences import android.content.pm.PackageManager import android.os.Build import android.security.keystore.UserNotAuthenticatedException -import android.util.Log +import timber.log.Timber import androidx.security.crypto.EncryptedSharedPreferences import androidx.security.crypto.MasterKey import io.parity.signer.domain.FeatureFlags @@ -51,7 +51,7 @@ class SeedStorage { false } - Log.d("strongbox available:", hasStrongbox.toString()) + Timber.d("strongbox available:", hasStrongbox.toString()) // Init crypto for seeds: // https://developer.android.com/training/articles/keystore @@ -74,7 +74,7 @@ class SeedStorage { .build() } - Log.e("ENCRY", "$appContext $KEYSTORE_NAME $masterKey") + Timber.e("ENCRY", "$appContext $KEYSTORE_NAME $masterKey") //we need to be authenticated for this sharedPreferences = if (FeatureFlags.isEnabled(FeatureOption.SKIP_UNLOCK_FOR_DEVELOPMENT)) { diff --git a/android/src/main/java/io/parity/signer/screens/createderivation/DerivationCreateViewModel.kt b/android/src/main/java/io/parity/signer/screens/createderivation/DerivationCreateViewModel.kt index fc83edaa01..fd810c037a 100644 --- a/android/src/main/java/io/parity/signer/screens/createderivation/DerivationCreateViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/createderivation/DerivationCreateViewModel.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.createderivation import android.content.Context -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.lifecycle.ViewModel import io.parity.signer.R @@ -157,10 +157,10 @@ class DerivationCreateViewModel : ViewModel() { } } } else { - Log.e(TAG, "Seed phrase received but it's empty") + Timber.e(TAG, "Seed phrase received but it's empty") } } catch (e: java.lang.Exception) { - Log.e(TAG, e.toString()) + Timber.e(TAG, e.toString()) } } diff --git a/android/src/main/java/io/parity/signer/screens/initial/UnlockScreen.kt b/android/src/main/java/io/parity/signer/screens/initial/UnlockScreen.kt index f82b313f5c..9dfac6fb61 100644 --- a/android/src/main/java/io/parity/signer/screens/initial/UnlockScreen.kt +++ b/android/src/main/java/io/parity/signer/screens/initial/UnlockScreen.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.initial import android.content.res.Configuration -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.material.MaterialTheme diff --git a/android/src/main/java/io/parity/signer/screens/initial/eachstartchecks/screenlock/SetScreenLockScreen.kt b/android/src/main/java/io/parity/signer/screens/initial/eachstartchecks/screenlock/SetScreenLockScreen.kt index 5e585b0d22..72e276a346 100644 --- a/android/src/main/java/io/parity/signer/screens/initial/eachstartchecks/screenlock/SetScreenLockScreen.kt +++ b/android/src/main/java/io/parity/signer/screens/initial/eachstartchecks/screenlock/SetScreenLockScreen.kt @@ -3,7 +3,7 @@ package io.parity.signer.screens.initial.eachstartchecks.screenlock import android.content.Intent import android.content.res.Configuration import android.provider.Settings -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.material.MaterialTheme @@ -83,7 +83,7 @@ fun SetScreenLockScreen() { null ) } else { - Log.e("screen lock", "Settings activity not found") + Timber.e("screen lock", "Settings activity not found") } } } diff --git a/android/src/main/java/io/parity/signer/screens/keysetdetails/KeySetDetailsViewModel.kt b/android/src/main/java/io/parity/signer/screens/keysetdetails/KeySetDetailsViewModel.kt index 06e7bd1df5..7767c7008c 100644 --- a/android/src/main/java/io/parity/signer/screens/keysetdetails/KeySetDetailsViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/keysetdetails/KeySetDetailsViewModel.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.keysetdetails -import android.util.Log +import timber.log.Timber import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import io.parity.signer.dependencygraph.ServiceLocator @@ -104,7 +104,7 @@ class KeySetDetailsViewModel : ViewModel() { return when (result) { null, is OperationResult.Err -> { - Log.d( + Timber.d( "Keyset", "wrong seed name requested or wrong last known seed getting another one" ) diff --git a/android/src/main/java/io/parity/signer/screens/keysets/create/NewKeysetNameScreen.kt b/android/src/main/java/io/parity/signer/screens/keysets/create/NewKeysetNameScreen.kt index 4d421be335..596c77bfc6 100644 --- a/android/src/main/java/io/parity/signer/screens/keysets/create/NewKeysetNameScreen.kt +++ b/android/src/main/java/io/parity/signer/screens/keysets/create/NewKeysetNameScreen.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.keysets.create import android.content.res.Configuration -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize diff --git a/android/src/main/java/io/parity/signer/screens/keysets/restore/keysetname/KeysetRecoverNameScreen.kt b/android/src/main/java/io/parity/signer/screens/keysets/restore/keysetname/KeysetRecoverNameScreen.kt index 05d1b76ec7..c102aa3d9b 100644 --- a/android/src/main/java/io/parity/signer/screens/keysets/restore/keysetname/KeysetRecoverNameScreen.kt +++ b/android/src/main/java/io/parity/signer/screens/keysets/restore/keysetname/KeysetRecoverNameScreen.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.keysets.restore.keysetname import android.content.res.Configuration -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize diff --git a/android/src/main/java/io/parity/signer/screens/scan/ScanViewModel.kt b/android/src/main/java/io/parity/signer/screens/scan/ScanViewModel.kt index 546ba661a1..80f34bad4a 100644 --- a/android/src/main/java/io/parity/signer/screens/scan/ScanViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/scan/ScanViewModel.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.scan import android.content.Context -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -76,7 +76,7 @@ class ScanViewModel : ViewModel() { suspend fun performTransactionPayload(payload: String, context: Context) { val fakeNavigator = FakeNavigator() if (transactionIsInProgress.value) { - Log.e(TAG, "started transaction while it was in progress, ignoring") + Timber.e(TAG, "started transaction while it was in progress, ignoring") return } transactionIsInProgress.value = true @@ -92,7 +92,7 @@ class ScanViewModel : ViewModel() { val screenData = navigateResponse.result.screenData val transactions: List = (screenData as? ScreenData.Transaction)?.f ?: run { - Log.e( + Timber.e( TAG, "Error in getting transaction from qr payload, " + "screenData is $screenData, navigation resp is $navigateResponse" ) @@ -224,7 +224,7 @@ class ScanViewModel : ViewModel() { ) { when (val phrases = seedRepository.getAllSeeds()) { is RepoResult.Failure -> { - Log.e( + Timber.e( TAG, "cannot get seeds to show import dynamic derivations ${phrases.error}" ) @@ -255,7 +255,7 @@ class ScanViewModel : ViewModel() { ) { when (val phrases = seedRepository.getAllSeeds()) { is RepoResult.Failure -> { - Log.e( + Timber.e( TAG, "cannot get seeds to show import dynamic derivations ${phrases.error}" ) @@ -435,7 +435,7 @@ class ScanViewModel : ViewModel() { ): ActionResult? { return when (val phrases = seedRepository.getSeedPhrases(seedNames)) { is RepoResult.Failure -> { - Log.w(TAG, "signature transactions failure ${phrases.error}") + Timber.w(TAG, "signature transactions failure ${phrases.error}") null } @@ -453,7 +453,7 @@ class ScanViewModel : ViewModel() { scanFlowInteractor.handlePasswordEntered(password) val actionResult = (navigateResponse as? OperationResult.Ok)?.result ?: run { - Log.e( + Timber.e( TAG, "Error in entering password for a key, " + "navigation resp is $navigateResponse" ) @@ -478,7 +478,7 @@ class ScanViewModel : ViewModel() { } //ignore the rest modals else -> { - Log.e( + Timber.e( TAG, "Password is entered for transaction, but neither new password or signature is passed! Should not happen" + "actionResult is $actionResult" ) diff --git a/android/src/main/java/io/parity/signer/screens/scan/camera/CameraView.kt b/android/src/main/java/io/parity/signer/screens/scan/camera/CameraView.kt index 17366141fe..84c9e2f0c8 100644 --- a/android/src/main/java/io/parity/signer/screens/scan/camera/CameraView.kt +++ b/android/src/main/java/io/parity/signer/screens/scan/camera/CameraView.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.scan.camera -import android.util.Log +import timber.log.Timber import android.util.Rational import android.util.Size import android.view.ViewGroup @@ -120,7 +120,7 @@ internal fun CameraViewInternal(viewModel: CameraViewModel) { }.build() camera.cameraControl.startFocusAndMetering(autoFocusAction) } catch (e: CameraInfoUnavailableException) { - Log.d("ERROR", "cannot access camera", e) + Timber.d("ERROR", "cannot access camera", e) } } }, executor) diff --git a/android/src/main/java/io/parity/signer/screens/scan/camera/CameraViewModel.kt b/android/src/main/java/io/parity/signer/screens/scan/camera/CameraViewModel.kt index 49da5c2453..fcaee92acd 100644 --- a/android/src/main/java/io/parity/signer/screens/scan/camera/CameraViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/scan/camera/CameraViewModel.kt @@ -2,7 +2,7 @@ package io.parity.signer.screens.scan.camera import android.annotation.SuppressLint import android.os.Trace -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.camera.core.ImageProxy import androidx.lifecycle.ViewModel @@ -86,7 +86,7 @@ class CameraViewModel() : ViewModel() { _total.value = proposeTotal } } catch (e: java.lang.Exception) { - Log.e("scanVM", "QR sequence length estimation $e") + Timber.e("scanVM", "QR sequence length estimation $e") } } else { currentMultiQrTransaction += payloadString @@ -95,14 +95,14 @@ class CameraViewModel() : ViewModel() { } else { _captured.value = currentMultiQrTransaction.size } - Log.d("scanVM", "captured " + captured.value.toString()) + Timber.d("scanVM", "captured " + captured.value.toString()) } } } Trace.endSection() } .addOnFailureListener { - Log.e("scanVM", "Scan failed " + it.message.toString()) + Timber.e("scanVM", "Scan failed " + it.message.toString()) } .addOnCompleteListener { Trace.endSection() @@ -150,7 +150,7 @@ class CameraViewModel() : ViewModel() { } } catch (e: Exception) { - Log.e("scanVM", "Single frame decode failed $e") + Timber.e("scanVM", "Single frame decode failed $e") } } diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/LogsViewModel.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/LogsViewModel.kt index 9a2ab8a488..05c879f9cc 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/LogsViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/LogsViewModel.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.settings.logs import android.content.Context -import android.util.Log +import timber.log.Timber import androidx.fragment.app.FragmentActivity import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -37,7 +37,7 @@ class LogsViewModel() : ViewModel() { withContext(Dispatchers.IO) { uniffiInteractor.getLogs() }) { is UniffiResult.Error -> { val error = result.error.getDebugDetailedDescriptionString() - Log.e(TAG, "Unexpected error getLogs, $error") + Timber.e(TAG, "Unexpected error getLogs, $error") _logsState.value = CompletableResult.Err(error) } is UniffiResult.Success -> { @@ -51,7 +51,7 @@ class LogsViewModel() : ViewModel() { withContext(Dispatchers.IO) { uniffiInteractor.addCommentToLogs(logNote) }) { is UniffiResult.Error -> { val error = result.error.getDebugDetailedDescriptionString() - Log.e(TAG, "Unexpected error addNote, $error") + Timber.e(TAG, "Unexpected error addNote, $error") OperationResult.Err(error) } is UniffiResult.Success -> { @@ -71,7 +71,7 @@ class LogsViewModel() : ViewModel() { AuthResult.AuthError, AuthResult.AuthFailed, AuthResult.AuthUnavailable -> { - Log.d("Vault", "Can't remove logs without authentication") + Timber.d("Vault", "Can't remove logs without authentication") } } } @@ -81,7 +81,7 @@ class LogsViewModel() : ViewModel() { withContext(Dispatchers.IO) { uniffiInteractor.clearLogHistory() }) { is UniffiResult.Error -> { val error = result.error.getDebugDetailedDescriptionString() - Log.e(TAG, "Unexpected error clear logs, $error") + Timber.e(TAG, "Unexpected error clear logs, $error") OperationResult.Err(error) } is UniffiResult.Success -> { diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/comment/AddLogCommentScreen.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/comment/AddLogCommentScreen.kt index e007a136c8..d2a105903b 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/comment/AddLogCommentScreen.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/comment/AddLogCommentScreen.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.settings.logs.comment import android.content.res.Configuration -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions @@ -45,7 +45,7 @@ internal fun AddLogCommentScreen(onBack: Callback) { viewModel.viewModelScope.launch { when (val postResult = viewModel.addLogNote(note)) { is OperationResult.Err -> { - Log.e(TAG, "log note not added, error ${postResult.error}") + Timber.e(TAG, "log note not added, error ${postResult.error}") Toast.makeText( context, context.getString( diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogDetails.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogDetails.kt index 57bfe5f165..fa3fb2e5c8 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogDetails.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogDetails.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.settings.logs.logdetails -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -41,7 +41,7 @@ fun LogDetailsScreen(navController: NavController, logDetailsId: UInt) { ) { when (logsCurrentValue) { is CompletableResult.Err -> { - Log.e(TAG, "error in getting log details ${logsCurrentValue.error}") + Timber.e(TAG, "error in getting log details ${logsCurrentValue.error}") Toast.makeText(context, logsCurrentValue.error, Toast.LENGTH_LONG) .show() viewModel.resetValues() diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogsDetailsViewModel.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogsDetailsViewModel.kt index 367bb2233c..2ad47e61e5 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogsDetailsViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/logdetails/LogsDetailsViewModel.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.settings.logs.logdetails -import android.util.Log +import timber.log.Timber import androidx.lifecycle.ViewModel import io.parity.signer.domain.backend.CompletableResult import io.parity.signer.domain.backend.UniffiResult @@ -29,7 +29,7 @@ class LogsDetailsViewModel(): ViewModel() { }) { is UniffiResult.Error -> { val error = result.error.getDebugDetailedDescriptionString() - Log.e(TAG, "Unexpected error getLogs, $error") + Timber.e(TAG, "Unexpected error getLogs, $error") _logsState.value = CompletableResult.Err(error) } is UniffiResult.Success -> { diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsMenu.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsMenu.kt index 362c3d6f34..550f77f718 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsMenu.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsMenu.kt @@ -1,7 +1,7 @@ package io.parity.signer.screens.settings.logs.logslist import android.content.res.Configuration -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth diff --git a/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsScreenFull.kt b/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsScreenFull.kt index 3445cad56a..1ac214f14a 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsScreenFull.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/logs/logslist/LogsScreenFull.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.settings.logs.logslist -import android.util.Log +import timber.log.Timber import android.widget.Toast import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Spacer @@ -39,7 +39,7 @@ fun LogsScreenFull( Box(Modifier.statusBarsPadding()) { when (logsCurrentValue) { is CompletableResult.Err -> { - Log.e(TAG, "error in getting logs ${logsCurrentValue.error}") + Timber.e(TAG, "error in getting logs ${logsCurrentValue.error}") Toast.makeText(context, logsCurrentValue.error, Toast.LENGTH_LONG) .show() viewModel.resetValues() diff --git a/android/src/main/java/io/parity/signer/screens/settings/networks/signspecs/SignSpecsViewModel.kt b/android/src/main/java/io/parity/signer/screens/settings/networks/signspecs/SignSpecsViewModel.kt index 06b2e8795c..ea9d9c8e2f 100644 --- a/android/src/main/java/io/parity/signer/screens/settings/networks/signspecs/SignSpecsViewModel.kt +++ b/android/src/main/java/io/parity/signer/screens/settings/networks/signspecs/SignSpecsViewModel.kt @@ -1,6 +1,6 @@ package io.parity.signer.screens.settings.networks.signspecs -import android.util.Log +import timber.log.Timber import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import io.parity.signer.R @@ -50,7 +50,7 @@ class SignSpecsViewModel : ViewModel() { when (val seedResult = seedRepo.getSeedPhraseForceAuth(keyModel.seedName)) { is RepoResult.Failure -> { - Log.d( + Timber.d( "sufficient crypto", "failed to get seed to sign sufficient crypto" ) diff --git a/android/src/main/java/io/parity/signer/ui/rootnavigation/MainScreensAppFlow.kt b/android/src/main/java/io/parity/signer/ui/rootnavigation/MainScreensAppFlow.kt index 049b35494b..caf862dc03 100644 --- a/android/src/main/java/io/parity/signer/ui/rootnavigation/MainScreensAppFlow.kt +++ b/android/src/main/java/io/parity/signer/ui/rootnavigation/MainScreensAppFlow.kt @@ -1,7 +1,7 @@ package io.parity.signer.ui.rootnavigation import android.os.Build -import android.util.Log +import timber.log.Timber import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.captionBarPadding import androidx.compose.foundation.layout.navigationBarsPadding @@ -50,7 +50,7 @@ fun NavGraphBuilder.mainSignerAppFlow(globalNavController: NavHostController) { } else -> {} } -Log.e("TAGG", Build.VERSION.SECURITY_PATCH) +Timber.e("TAGG", Build.VERSION.SECURITY_PATCH) } else { UnlockAppAuthScreen(onUnlockClicked = mainFlowViewModel::onUnlockClicked) }