From 05565900db863b99f0433b8c4ab5d7e748e1690a Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Tue, 25 Jun 2024 12:00:09 +0700 Subject: [PATCH] Add log to ScreenTransition to track screen transition by key used multiple times issue --- .../java/eu/kanade/presentation/util/Navigator.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/util/Navigator.kt b/app/src/main/java/eu/kanade/presentation/util/Navigator.kt index c243807df..2d6bb4643 100644 --- a/app/src/main/java/eu/kanade/presentation/util/Navigator.kt +++ b/app/src/main/java/eu/kanade/presentation/util/Navigator.kt @@ -22,6 +22,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import kotlinx.coroutines.plus +import logcat.LogPriority +import logcat.logcat import soup.compose.material.motion.animation.materialSharedAxisX import soup.compose.material.motion.animation.rememberSlideDistance @@ -41,8 +43,9 @@ interface Tab : cafe.adriel.voyager.navigator.tab.Tab { } abstract class Screen : Screen { - - override val key: ScreenKey = uniqueScreenKey + // known bug: https://github.com/mihonapp/mihon/issues/712 + // This is where it create a key Screen#uuid:transition which causes exception Key ... was used multiple times + override val key: ScreenKey = "${this::class.simpleName}#$uniqueScreenKey" } /** @@ -86,9 +89,10 @@ fun ScreenTransition( targetState = navigator.lastItem, transitionSpec = transition, modifier = modifier, - label = "transition", + label = "screen-transition", ) { screen -> - navigator.saveableState("transition", screen) { + logcat(LogPriority.ERROR) { "ScreenTransition: ${screen.key}" } + navigator.saveableState("screen-transition", screen) { content(screen) } }