diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/TabbedPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/TabbedPage.kt index 7d89e666..28e163a0 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/TabbedPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/TabbedPage.kt @@ -37,10 +37,14 @@ class TabViewModel private val rememberedTabService: RememberedTabService, private val backdropService: BackdropService, @param:Assisted private val itemId: String, + @param:Assisted private val tabCount: Int, ) : ViewModel() { @AssistedFactory interface Factory { - fun create(itemId: String): TabViewModel + fun create( + itemId: String, + tabCount: Int, + ): TabViewModel } private val _state = MutableStateFlow(UNSET) @@ -52,7 +56,9 @@ class TabViewModel if (shouldRememberTabs()) { Timber.v("Getting remembered tab for %s", itemId) try { - rememberedTabService.getRememberedTab(itemId) + rememberedTabService + .getRememberedTab(itemId) + ?.coerceIn(0..( - key = itemId, - creationCallback = { it.create(itemId) }, + key = "$itemId-${tabs.size}", + creationCallback = { it.create(itemId, tabs.size) }, ), tabContent: @Composable (Int, TabDetails) -> Unit, ) { val selectedTabIndex by viewModel.state.collectAsState() + Column( modifier = modifier, ) {