From a3e2944bef5255f8e96f0365938b16ae6e03034b Mon Sep 17 00:00:00 2001 From: Jamy Bailly Date: Tue, 28 Apr 2026 16:35:47 +0200 Subject: [PATCH 1/2] fix: Move HomeSubDestination --- .../auth/ui/navigation/NavDestination.kt | 16 ++++++++-------- .../ui/navigation/NavigationEntryProvider.kt | 4 ++-- .../infomaniak/auth/ui/screen/home/HomeScreen.kt | 9 +++++---- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt index e22de401..0b5b4082 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt @@ -52,14 +52,6 @@ sealed interface NavDestination : NavKey { @Serializable data object Home : NavDestination - sealed interface HomeSubDestination : NavDestination { - @Serializable - data object AccountList : HomeSubDestination - - @Serializable - data object Settings : HomeSubDestination - } - //endregion //region Settings @@ -84,3 +76,11 @@ sealed interface NavDestination : NavKey { @Serializable data class AccountDetails(val accountId: Long) : NavDestination } + +sealed interface HomeSubDestination : NavKey { + @Serializable + data object AccountList : HomeSubDestination + + @Serializable + data object Settings : HomeSubDestination +} diff --git a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavigationEntryProvider.kt b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavigationEntryProvider.kt index 3165ad70..6bd6e366 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavigationEntryProvider.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavigationEntryProvider.kt @@ -105,14 +105,14 @@ fun baseEntryProvider( } fun homeEntryProvider(rootBackStack: NavBackStack): (NavKey) -> NavEntry = entryProvider { - entry { + entry { AccountListScreen( onAccountClicked = { account -> rootBackStack.add(NavDestination.AccountDetails(account.id)) }, ) } - entry { + entry { SettingsScreen( onThemeClicked = { rootBackStack.add(NavDestination.Theme) diff --git a/app/src/main/kotlin/com/infomaniak/auth/ui/screen/home/HomeScreen.kt b/app/src/main/kotlin/com/infomaniak/auth/ui/screen/home/HomeScreen.kt index 9367a57c..77d1f3af 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/ui/screen/home/HomeScreen.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/ui/screen/home/HomeScreen.kt @@ -41,6 +41,7 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.infomaniak.auth.R import com.infomaniak.auth.ui.components.AuthenticatorFab import com.infomaniak.auth.ui.components.InfomaniakAuthenticatorTopAppBar +import com.infomaniak.auth.ui.navigation.HomeSubDestination import com.infomaniak.auth.ui.navigation.NavDestination import com.infomaniak.auth.ui.navigation.homeEntryProvider import com.infomaniak.auth.ui.navigation.tryPopLast @@ -70,7 +71,7 @@ fun HomeScreen( rootBackStack: NavBackStack, modifier: Modifier = Modifier ) { - val homeBackStack = rememberNavBackStack(NavDestination.HomeSubDestination.AccountList) + val homeBackStack = rememberNavBackStack(HomeSubDestination.AccountList) SinglePaneScaffold( modifier = modifier, @@ -81,7 +82,7 @@ fun HomeScreen( AuthenticatorBottomBar( backStack = homeBackStack, onMyAccountsClicked = { homeBackStack.tryPopLast() }, - onSettingsClicked = { homeBackStack.add(NavDestination.HomeSubDestination.Settings) } + onSettingsClicked = { homeBackStack.add(HomeSubDestination.Settings) } ) }, floatingActionButton = { @@ -115,13 +116,13 @@ private fun AuthenticatorBottomBar( verticalAlignment = Alignment.CenterVertically, ) { NavigationBarItem( - selected = backStack.last() is NavDestination.HomeSubDestination.AccountList, + selected = backStack.last() is HomeSubDestination.AccountList, onClick = onMyAccountsClicked, icon = { Icon(painterResource(R.drawable.accounts), null) }, label = { Text(stringResource(R.string.accountsTitle)) }, ) NavigationBarItem( - selected = backStack.last() is NavDestination.HomeSubDestination.Settings, + selected = backStack.last() is HomeSubDestination.Settings, onClick = onSettingsClicked, icon = { Icon(painterResource(R.drawable.settings), null) }, label = { Text(stringResource(R.string.settingsTitle)) }, From 278313855c8ff2606179f36e1e1c31d7799eb654 Mon Sep 17 00:00:00 2001 From: Jamy Bailly Date: Tue, 28 Apr 2026 16:51:25 +0200 Subject: [PATCH 2/2] fix: Apply copilot suggestion --- .../kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt index 0b5b4082..7aebe44b 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/ui/navigation/NavDestination.kt @@ -77,6 +77,8 @@ sealed interface NavDestination : NavKey { data class AccountDetails(val accountId: Long) : NavDestination } +@Immutable +@Serializable sealed interface HomeSubDestination : NavKey { @Serializable data object AccountList : HomeSubDestination