-
Notifications
You must be signed in to change notification settings - Fork 114
Open
Description
Describe the bug
When I open the Showkase browser via Showkase.getBrowserIntent(context) everything works fine, but when I press the Back button to return to my app, the app crashes with an exception
It looks like Showkase tries to navigate back to SHOWKASE_CATEGORIES, but the destination is no longer available in the NavController once the Activity has been popped from the back stack.
Steps to reproduce
- Create a separate
previewmodule with aShowkaseRootModuleimplementation:
@ShowkaseRoot
class ShowkaseRoot : ShowkaseRootModule- Create a
startPreviewActivityfunction in the preview module:
fun startPreviewActivity(
context: Context,
) {
val intent = Showkase.getBrowserIntent(context)
context.startActivity(intent)
}- In the app module, add the preview module dependency:
debugImplementation(projects.preview)- In the app module, open Showkase with:
val context = LocalContext.current
Button(
modifier = Modifier
.fillMaxWidth(),
size = Sizes.s32,
style = ButtonStyle.default,
text = "previews",
onClick = {
startPreviewActivity(context)
}
)-
Press Back to return to the app.
-
Crash:
else
Exception dispatching finished signal for seq=21
Exception in MessageQueue callback: handleReceiveCallback
java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/SHOWKASE_CATEGORIES } cannot be found in the navigation graph ComposeNavGraph(0x0) startDestination={Destination(0x7bb10103) route=COMPONENT_GROUPS}
at androidx.navigation.NavController.navigate(NavController.kt:1819)
at androidx.navigation.NavController.navigate(NavController.kt:2225)
at androidx.navigation.NavController.navigate$default(NavController.kt:2220)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2.invoke$lambda$2$lambda$1$lambda$0(ShowkaseBrowserApp.kt:126)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2.$r8$lambda$Qq3GDYNFZKdQIiZhdRepzNU8H0s(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseComponentGroupsScreen$lambda$12$lambda$11(ShowkaseGroupsScreen.kt:106)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$az9GZkTLuEOzyS_1jM_zIWo2ldA(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda10.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseGroupsScreen$lambda$7$lambda$6$lambda$4(ShowkaseGroupsScreen.kt:58)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$yc03hJN6FJo68iVkSKTdYdAzevE(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseCategoriesScreenKt.goBackToCategoriesScreen(ShowkaseCategoriesScreen.kt:93)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseGroupsScreen$lambda$7$lambda$6(ShowkaseGroupsScreen.kt:53)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$_5ZzVCgKyJrM-QQyvH5yOIN_Fr8(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.activity.compose.BackHandlerKt$BackHandler$backCallback$1$1.handleOnBackPressed(BackHandler.kt:89)
at androidx.activity.OnBackPressedDispatcher.onBackPressed(OnBackPressedDispatcher.kt:279)
at androidx.activity.ComponentActivity.onBackPressed(ComponentActivity.kt:612)
at android.app.Activity.onKeyUp(Activity.java:4148)
at android.view.KeyEvent.dispatch(KeyEvent.java:3053)
at android.app.Activity.dispatchKeyEvent(Activity.java:4496)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.kt:103)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.kt:117)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:604)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:60)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3413)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:360)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:7866)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7706)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7106)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7295)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7352)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7328)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:7554)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:4871)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:4262)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:4253)
at android.view.inputmethod.InputMethodManager.-$$Nest$mfinishedInputEvent(Unknown Source:0)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:4848)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:181)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:346)
at android.os.Looper.loopOnce(Looper.java:189)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8705)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Shutting down VM
FATAL EXCEPTION: main
Process: stg.design_system_sample, PID: 23317
java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/SHOWKASE_CATEGORIES } cannot be found in the navigation graph ComposeNavGraph(0x0) startDestination={Destination(0x7bb10103) route=COMPONENT_GROUPS}
at androidx.navigation.NavController.navigate(NavController.kt:1819)
at androidx.navigation.NavController.navigate(NavController.kt:2225)
at androidx.navigation.NavController.navigate$default(NavController.kt:2220)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2.invoke$lambda$2$lambda$1$lambda$0(ShowkaseBrowserApp.kt:126)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2.$r8$lambda$Qq3GDYNFZKdQIiZhdRepzNU8H0s(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseBrowserAppKt$ShowkaseBrowserApp$1$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseComponentGroupsScreen$lambda$12$lambda$11(ShowkaseGroupsScreen.kt:106)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$az9GZkTLuEOzyS_1jM_zIWo2ldA(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda10.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseGroupsScreen$lambda$7$lambda$6$lambda$4(ShowkaseGroupsScreen.kt:58)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$yc03hJN6FJo68iVkSKTdYdAzevE(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at com.airbnb.android.showkase.ui.ShowkaseCategoriesScreenKt.goBackToCategoriesScreen(ShowkaseCategoriesScreen.kt:93)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.ShowkaseGroupsScreen$lambda$7$lambda$6(ShowkaseGroupsScreen.kt:53)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt.$r8$lambda$_5ZzVCgKyJrM-QQyvH5yOIN_Fr8(Unknown Source:0)
at com.airbnb.android.showkase.ui.ShowkaseGroupsScreenKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.activity.compose.BackHandlerKt$BackHandler$backCallback$1$1.handleOnBackPressed(BackHandler.kt:89)
at androidx.activity.OnBackPressedDispatcher.onBackPressed(OnBackPressedDispatcher.kt:279)
at androidx.activity.ComponentActivity.onBackPressed(ComponentActivity.kt:612)
at android.app.Activity.onKeyUp(Activity.java:4148)
at android.view.KeyEvent.dispatch(KeyEvent.java:3053)
at android.app.Activity.dispatchKeyEvent(Activity.java:4496)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.kt:103)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.kt:117)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:604)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:60)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3413)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:360)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:7866)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7706)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7106)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7295)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7352)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7328)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:7554)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:4871)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:4262)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:4253)
at android.view.inputmethod.InputMethodManager.-$$Nest$mfinishedInputEvent(Unknown Source:0)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:4848)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:181)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:346)
at android.os.Looper.loopOnce(Looper.java:189)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8705)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)Drakuwa
Metadata
Metadata
Assignees
Labels
No labels