diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt index f1ec9ca6e..38b20faf8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt @@ -234,54 +234,54 @@ fun BuildNavigation( composable { VideoScreen(accountViewModel, nav) } composable { DiscoverScreen(accountViewModel, nav) } composableArgs { NotificationScreen(it.scrollToEventId, accountViewModel, nav) } - composableFromEnd { PollsScreen(accountViewModel, nav) } - composableFromEnd { CommunitiesScreen(accountViewModel, nav) } - composableFromEnd { NewCommunityScreen(accountViewModel, nav) } - composableFromEndArgs { EditCommunityScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } - composableFromEnd { BadgesScreen(accountViewModel, nav) } - composableFromEnd { ProfileBadgesScreen(accountViewModel, nav) } + composableFromEnd(nav) { PollsScreen(accountViewModel, nav) } + composableFromEnd(nav) { CommunitiesScreen(accountViewModel, nav) } + composableFromEnd(nav) { NewCommunityScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { EditCommunityScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } + composableFromEnd(nav) { BadgesScreen(accountViewModel, nav) } + composableFromEnd(nav) { ProfileBadgesScreen(accountViewModel, nav) } composableFromBottomArgs { AwardBadgeScreen(it.kind, it.pubKeyHex, it.dTag, accountViewModel, nav) } - composableFromEnd { PicturesScreen(accountViewModel, nav) } - composableFromEnd { ProductsScreen(accountViewModel, nav) } - composableFromEnd { ShortsScreen(accountViewModel, nav) } - composableFromEnd { PublicChatsScreen(accountViewModel, nav) } - composableFromEnd { FollowPacksScreen(accountViewModel, nav) } - composableFromEnd { LiveStreamsScreen(accountViewModel, nav) } - composableFromEnd { AudioRoomsScreen(accountViewModel, nav) } - composableFromEnd { LongsScreen(accountViewModel, nav) } - composableFromEnd { ArticlesScreen(accountViewModel, nav) } - composableFromEnd { NewHlsVideoScreen(accountViewModel, nav) } + composableFromEnd(nav) { PicturesScreen(accountViewModel, nav) } + composableFromEnd(nav) { ProductsScreen(accountViewModel, nav) } + composableFromEnd(nav) { ShortsScreen(accountViewModel, nav) } + composableFromEnd(nav) { PublicChatsScreen(accountViewModel, nav) } + composableFromEnd(nav) { FollowPacksScreen(accountViewModel, nav) } + composableFromEnd(nav) { LiveStreamsScreen(accountViewModel, nav) } + composableFromEnd(nav) { AudioRoomsScreen(accountViewModel, nav) } + composableFromEnd(nav) { LongsScreen(accountViewModel, nav) } + composableFromEnd(nav) { ArticlesScreen(accountViewModel, nav) } + composableFromEnd(nav) { NewHlsVideoScreen(accountViewModel, nav) } composable { ChessLobbyScreen(accountViewModel, nav) } - composableFromEnd { WalletScreen(accountViewModel, nav) } - composableFromEnd { WalletSendScreen(accountViewModel, nav) } - composableFromEnd { WalletReceiveScreen(accountViewModel, nav) } - composableFromEnd { WalletTransactionsScreen(accountViewModel, nav) } - composableFromEndArgs { WalletDetailScreen(it.walletId, accountViewModel, nav) } - composableFromEnd { AddWalletScreen(accountViewModel, nav) } + composableFromEnd(nav) { WalletScreen(accountViewModel, nav) } + composableFromEnd(nav) { WalletSendScreen(accountViewModel, nav) } + composableFromEnd(nav) { WalletReceiveScreen(accountViewModel, nav) } + composableFromEnd(nav) { WalletTransactionsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { WalletDetailScreen(it.walletId, accountViewModel, nav) } + composableFromEnd(nav) { AddWalletScreen(accountViewModel, nav) } - composableFromEnd { ListOfPeopleListsScreen(accountViewModel, nav) } - composableFromEndArgs { PeopleListScreen(it.dTag, accountViewModel, nav) } - composableFromEndArgs { FollowPackScreen(it.dTag, accountViewModel, nav) } + composableFromEnd(nav) { ListOfPeopleListsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { PeopleListScreen(it.dTag, accountViewModel, nav) } + composableFromEndArgs(nav) { FollowPackScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { FollowListAndPackAndUserScreen(it.userToAdd, accountViewModel, nav) } composableFromBottomArgs { PeopleListMetadataScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { FollowPackMetadataScreen(it.dTag, accountViewModel, nav) } - composableFromEnd { ListOfBookmarkGroupsScreen(accountViewModel, nav) } - composableFromEndArgs { BookmarkGroupScreen(it.dTag, it.bookmarkType, accountViewModel, nav) } + composableFromEnd(nav) { ListOfBookmarkGroupsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { BookmarkGroupScreen(it.dTag, it.bookmarkType, accountViewModel, nav) } composableFromBottomArgs { BookmarkGroupMetadataScreen(it.dTag, accountViewModel, nav) } - composableFromEnd { ListOfInterestSetsScreen(accountViewModel, nav) } - composableFromEndArgs { InterestSetScreen(it.dTag, accountViewModel, nav) } + composableFromEnd(nav) { ListOfInterestSetsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { InterestSetScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { InterestSetMetadataScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { PostBookmarkListManagementScreen(it.postId, accountViewModel, nav) } composableFromBottomArgs { ArticleBookmarkListManagementScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } - composableFromEnd { ListOfEmojiPacksScreen(accountViewModel, nav) } - composableFromEnd { MyEmojiListScreen(accountViewModel, nav) } - composableFromEnd { BrowseEmojiSetsScreen(accountViewModel, nav) } - composableFromEndArgs { EmojiPackScreen(it.dTag, accountViewModel, nav) } + composableFromEnd(nav) { ListOfEmojiPacksScreen(accountViewModel, nav) } + composableFromEnd(nav) { MyEmojiListScreen(accountViewModel, nav) } + composableFromEnd(nav) { BrowseEmojiSetsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { EmojiPackScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { EmojiPackMetadataScreen(it.dTag, accountViewModel, nav) } composableFromBottomArgs { EmojiPackSelectionScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } @@ -292,68 +292,68 @@ fun BuildNavigation( composableFromBottomArgs { NewUserMetadataScreen(nav, accountViewModel) } composable { SearchScreen(accountViewModel, nav) } - composableFromEnd { AllSettingsScreen(accountViewModel, nav) } - composableFromEnd { AccountBackupScreen(accountViewModel, nav) } - composableFromEnd { SecurityFiltersScreen(accountViewModel, nav) } - composableFromEnd { PrivacyOptionsScreen(nav) } - composableFromEnd { NamecoinSettingsScreen(nav) } - composableFromEnd { OtsSettingsScreen(nav) } - composableFromEnd { BookmarkListScreen(accountViewModel, nav) } - composableFromEnd { OldBookmarkListScreen(accountViewModel, nav) } - composableFromEnd { PinnedNotesScreen(accountViewModel, nav) } - composableFromEnd { WebBookmarksScreen(accountViewModel, nav) } - composableFromEnd { DraftListScreen(accountViewModel, nav) } - composableFromEnd { SettingsScreen(accountViewModel, nav) } - composableFromEnd { UserSettingsScreen(accountViewModel, nav) } - composableFromEnd { ReactionsSettingsScreen(accountViewModel, nav) } - composableFromEnd { BottomBarSettingsScreen(accountViewModel, nav) } - composableFromEnd { CallSettingsScreen(accountViewModel, nav) } - composableFromEnd { ImportFollowListSelectUserScreen(accountViewModel, nav) } - composableFromEndArgs { + composableFromEnd(nav) { AllSettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { AccountBackupScreen(accountViewModel, nav) } + composableFromEnd(nav) { SecurityFiltersScreen(accountViewModel, nav) } + composableFromEnd(nav) { PrivacyOptionsScreen(nav) } + composableFromEnd(nav) { NamecoinSettingsScreen(nav) } + composableFromEnd(nav) { OtsSettingsScreen(nav) } + composableFromEnd(nav) { BookmarkListScreen(accountViewModel, nav) } + composableFromEnd(nav) { OldBookmarkListScreen(accountViewModel, nav) } + composableFromEnd(nav) { PinnedNotesScreen(accountViewModel, nav) } + composableFromEnd(nav) { WebBookmarksScreen(accountViewModel, nav) } + composableFromEnd(nav) { DraftListScreen(accountViewModel, nav) } + composableFromEnd(nav) { SettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { UserSettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { ReactionsSettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { BottomBarSettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { CallSettingsScreen(accountViewModel, nav) } + composableFromEnd(nav) { ImportFollowListSelectUserScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { ImportFollowListPickFollowsScreen(it.userHex, accountViewModel, nav) } - composableFromEndArgs { NIP47SetupScreen(accountViewModel, nav, it.nip47) } - composableFromEndArgs { UpdateZapAmountScreen(accountViewModel, nav, it.nip47) } - composableFromEndArgs { AllRelayListScreen(accountViewModel, nav) } - composableFromEnd { EventSyncScreen(accountViewModel, nav) } - composableFromEnd { RequestToVanishScreen(accountViewModel, nav) } - composableFromEnd { VanishEventsScreen(accountViewModel, nav) } - composableFromEndArgs { AllMediaServersScreen(accountViewModel, nav) } - composableFromEnd { FavoriteAlgoFeedsListScreen(accountViewModel, nav) } - composableFromEnd { PaymentTargetsScreen(accountViewModel, nav) } - composableFromEndArgs { UpdateReactionTypeScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { NIP47SetupScreen(accountViewModel, nav, it.nip47) } + composableFromEndArgs(nav) { UpdateZapAmountScreen(accountViewModel, nav, it.nip47) } + composableFromEndArgs(nav) { AllRelayListScreen(accountViewModel, nav) } + composableFromEnd(nav) { EventSyncScreen(accountViewModel, nav) } + composableFromEnd(nav) { RequestToVanishScreen(accountViewModel, nav) } + composableFromEnd(nav) { VanishEventsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { AllMediaServersScreen(accountViewModel, nav) } + composableFromEnd(nav) { FavoriteAlgoFeedsListScreen(accountViewModel, nav) } + composableFromEnd(nav) { PaymentTargetsScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { UpdateReactionTypeScreen(accountViewModel, nav) } - composableFromEndArgs { DvmContentDiscoveryScreen(it.id, accountViewModel, nav) } - composableFromEndArgs { ProfileScreen(it.id, accountViewModel, nav) } - composableFromEndArgs { ThreadScreen(it.id, accountViewModel, nav) } - composableFromEndArgs { HashtagScreen(it, accountViewModel, nav) } - composableFromEndArgs { GeoHashScreen(it, accountViewModel, nav) } - composableFromEndArgs { RelayFeedScreen(it, accountViewModel, nav) } - composableFromEndArgs { ChessGameScreen(it.gameId, accountViewModel, nav) } - composableFromEndArgs { RelayInformationScreen(it.url, accountViewModel, nav) } - composableFromEndArgs { RelayManagementScreen(it.url, accountViewModel, nav) } - composableFromEndArgs { RelayMembersScreen(it.url, accountViewModel, nav) } - composableFromEndArgs { CommunityScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } - composableFromEndArgs { FollowPackFeedScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } + composableFromEndArgs(nav) { DvmContentDiscoveryScreen(it.id, accountViewModel, nav) } + composableFromEndArgs(nav) { ProfileScreen(it.id, accountViewModel, nav) } + composableFromEndArgs(nav) { ThreadScreen(it.id, accountViewModel, nav) } + composableFromEndArgs(nav) { HashtagScreen(it, accountViewModel, nav) } + composableFromEndArgs(nav) { GeoHashScreen(it, accountViewModel, nav) } + composableFromEndArgs(nav) { RelayFeedScreen(it, accountViewModel, nav) } + composableFromEndArgs(nav) { ChessGameScreen(it.gameId, accountViewModel, nav) } + composableFromEndArgs(nav) { RelayInformationScreen(it.url, accountViewModel, nav) } + composableFromEndArgs(nav) { RelayManagementScreen(it.url, accountViewModel, nav) } + composableFromEndArgs(nav) { RelayMembersScreen(it.url, accountViewModel, nav) } + composableFromEndArgs(nav) { CommunityScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } + composableFromEndArgs(nav) { FollowPackFeedScreen(Address(it.kind, it.pubKeyHex, it.dTag), accountViewModel, nav) } - composableFromEndArgs { ChatroomScreen(it.toKey(), it.message, it.replyId, it.draftId, it.expiresDays, accountViewModel, nav) } - composableFromEndArgs { ChatroomByAuthorScreen(it.id, null, accountViewModel, nav) } + composableFromEndArgs(nav) { ChatroomScreen(it.toKey(), it.message, it.replyId, it.draftId, it.expiresDays, accountViewModel, nav) } + composableFromEndArgs(nav) { ChatroomByAuthorScreen(it.id, null, accountViewModel, nav) } - composableFromEnd { MarmotGroupListScreen(accountViewModel, nav) } - composableFromEndArgs { MarmotGroupChatScreen(it.nostrGroupId, accountViewModel, nav) } - composableFromEndArgs { MarmotGroupInfoScreen(it.nostrGroupId, accountViewModel, nav) } + composableFromEnd(nav) { MarmotGroupListScreen(accountViewModel, nav) } + composableFromEndArgs(nav) { MarmotGroupChatScreen(it.nostrGroupId, accountViewModel, nav) } + composableFromEndArgs(nav) { MarmotGroupInfoScreen(it.nostrGroupId, accountViewModel, nav) } composableFromBottom { CreateGroupScreen(accountViewModel, nav) } composableFromBottomArgs { AddMemberScreen(it.nostrGroupId, accountViewModel, nav) } composableFromBottomArgs { RemoveMemberScreen(it.nostrGroupId, accountViewModel, nav) } composableFromBottomArgs { EditGroupInfoScreen(it.nostrGroupId, accountViewModel, nav) } - composableFromEndArgs { + composableFromEndArgs(nav) { PublicChatChannelScreen(it.id, it.draftId, it.replyTo, accountViewModel, nav) } - composableFromEndArgs { + composableFromEndArgs(nav) { LiveActivityChannelScreen( Address(it.kind, it.pubKeyHex, it.dTag), draftId = it.draftId, @@ -363,7 +363,7 @@ fun BuildNavigation( ) } - composableFromEndArgs { + composableFromEndArgs(nav) { EphemeralChatScreen( id = it.id, relayUrl = it.relayUrl, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/NavigationEffects.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/NavigationEffects.kt index e6e770a4e..d81594717 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/NavigationEffects.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/NavigationEffects.kt @@ -33,19 +33,26 @@ import androidx.navigation.NavBackStackEntry import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable import androidx.navigation.toRoute +import com.vitorpamplona.amethyst.ui.navigation.navs.Nav -inline fun NavGraphBuilder.composableFromEnd(noinline content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit) { +inline fun NavGraphBuilder.composableFromEnd( + nav: Nav, + noinline content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit, +) { composable( - enterTransition = { slideInHorizontallyFromEnd }, - exitTransition = { scaleOut }, - popEnterTransition = { scaleIn }, - popExitTransition = { slideOutHorizontallyToEnd }, + enterTransition = { if (nav.skipSlideAnimation) null else slideInHorizontallyFromEnd }, + exitTransition = { if (nav.skipSlideAnimation) null else scaleOut }, + popEnterTransition = { if (nav.skipSlideAnimation) null else scaleIn }, + popExitTransition = { if (nav.skipSlideAnimation) null else slideOutHorizontallyToEnd }, content = content, ) } -inline fun NavGraphBuilder.composableFromEndArgs(noinline content: @Composable AnimatedContentScope.(T) -> Unit) { - composableFromEnd { +inline fun NavGraphBuilder.composableFromEndArgs( + nav: Nav, + noinline content: @Composable AnimatedContentScope.(T) -> Unit, +) { + composableFromEnd(nav) { content(it.toRoute()) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/EmptyNav.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/EmptyNav.kt index aece94384..dd42917f3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/EmptyNav.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/EmptyNav.kt @@ -44,6 +44,8 @@ class EmptyNav : INav { override fun newStack(route: Route) {} + override fun navBottomBar(route: Route) {} + override fun popBack() {} override fun popUpTo( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/INav.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/INav.kt index 14c5d0c71..a9582196c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/INav.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/INav.kt @@ -41,6 +41,8 @@ interface INav { fun newStack(route: Route) + fun navBottomBar(route: Route) + fun popBack() fun popUpTo( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/Nav.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/Nav.kt index f3087a352..6ace48aff 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/Nav.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/Nav.kt @@ -38,6 +38,11 @@ class Nav( ) : INav { override val drawerState = DrawerState(DrawerValue.Closed) + // Read by composableFromEnd transition lambdas; true means the next + // navigation is a bottom-bar tab swap and should skip the slide animation. + @Volatile + var skipSlideAnimation: Boolean = false + override fun closeDrawer() { navigationScope.launch { drawerState.close() } } @@ -49,6 +54,7 @@ class Nav( override fun nav(route: Route) { navigationScope.launch { if (getRouteWithArguments(route::class, controller) != route) { + skipSlideAnimation = false controller.navigate(route) } } @@ -58,6 +64,7 @@ class Nav( navigationScope.launch { val route = computeRoute() if (route != null && getRouteWithArguments(route::class, controller) != route) { + skipSlideAnimation = false controller.navigate(route) } } @@ -65,6 +72,19 @@ class Nav( override fun newStack(route: Route) { navigationScope.launch { + skipSlideAnimation = false + controller.navigate(route) { + popUpTo(route) { + inclusive = true + } + launchSingleTop = true + } + } + } + + override fun navBottomBar(route: Route) { + navigationScope.launch { + skipSlideAnimation = true controller.navigate(route) { popUpTo(route) { inclusive = true @@ -86,6 +106,7 @@ class Nav( klass: KClass, ) { navigationScope.launch { + skipSlideAnimation = false controller.navigate(route) { popUpTo(klass) { inclusive = true } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/ObservableNav.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/ObservableNav.kt index 81500455f..ad1f27d16 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/ObservableNav.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/navs/ObservableNav.kt @@ -51,6 +51,13 @@ class ObservableNav( sourceNav.newStack(route) } + override fun navBottomBar(route: Route) { + navigationScope.launch { + onBeforeNavigate() + } + sourceNav.navBottomBar(route) + } + override fun popBack() { navigationScope.launch { onBeforeNavigate() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/ArticlesScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/ArticlesScreen.kt index 4a88641cf..e4d06e578 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/ArticlesScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/ArticlesScreen.kt @@ -69,7 +69,7 @@ fun ArticlesScreen( if (route == Route.Articles) { articlesFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/audiorooms/AudioRoomsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/audiorooms/AudioRoomsScreen.kt index dc7669506..c08199cff 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/audiorooms/AudioRoomsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/audiorooms/AudioRoomsScreen.kt @@ -69,7 +69,7 @@ fun AudioRoomsScreen( if (route == Route.AudioRooms) { audioRoomsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/BadgesScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/BadgesScreen.kt index 8080df3a8..ca46f5b7a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/BadgesScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/BadgesScreen.kt @@ -69,7 +69,7 @@ fun BadgesScreen( if (route == Route.Badges) { feedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt index b56a5e12c..b957e33a1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt @@ -86,7 +86,7 @@ fun MessagesSinglePane( if (route == Route.Message) { tabs[pagerState.currentPage].feedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/MessagesTwoPane.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/MessagesTwoPane.kt index 867b4788d..b716fcdbe 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/MessagesTwoPane.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/MessagesTwoPane.kt @@ -84,7 +84,7 @@ fun MessagesTwoPane( knownFeedContentState.sendToTop() newFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/CommunitiesScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/CommunitiesScreen.kt index 7071950a7..5c3f9f2c2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/CommunitiesScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/CommunitiesScreen.kt @@ -86,7 +86,7 @@ fun CommunitiesScreen( if (route == Route.Communities) { feedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt index 27e5c0151..bf50afb7f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt @@ -247,7 +247,7 @@ private fun DiscoverPages( feedTabs[currentPage].feedState.sendToTop() } } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/list/FollowPacksScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/list/FollowPacksScreen.kt index 1d65d759c..e15bcb520 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/list/FollowPacksScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/list/FollowPacksScreen.kt @@ -69,7 +69,7 @@ fun FollowPacksScreen( if (route == Route.FollowPacks) { followPacksFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt index 0f679573f..900684f95 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt @@ -203,7 +203,7 @@ private fun HomePages( if (route == Route.Home) { tabs[pagerState.currentPage].feedState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/livestreams/LiveStreamsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/livestreams/LiveStreamsScreen.kt index 69fd1a6a6..833b160ca 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/livestreams/LiveStreamsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/livestreams/LiveStreamsScreen.kt @@ -69,7 +69,7 @@ fun LiveStreamsScreen( if (route == Route.LiveStreams) { liveStreamsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/longs/LongsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/longs/LongsScreen.kt index 002e483e4..2e7c50803 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/longs/LongsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/longs/LongsScreen.kt @@ -69,7 +69,7 @@ fun LongsScreen( if (route == Route.Longs) { longsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationScreen.kt index 6ff66075d..0fbc27bc8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationScreen.kt @@ -83,7 +83,7 @@ fun NotificationScreen( if (route is Route.Notification) { notifFeedContentState.invalidateDataAndSendToTop(true) } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/pictures/PicturesScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/pictures/PicturesScreen.kt index cfb27f98b..9402bc17d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/pictures/PicturesScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/pictures/PicturesScreen.kt @@ -69,7 +69,7 @@ fun PicturesScreen( if (route == Route.Pictures) { picturesFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt index 09815d9a7..6509470b7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt @@ -151,7 +151,7 @@ private fun PollsPages( if (route == Route.Polls) { tabs[pagerState.currentPage].feedState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/ProductsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/ProductsScreen.kt index 5bb9ac321..632a576b6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/ProductsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/ProductsScreen.kt @@ -68,7 +68,7 @@ fun ProductsScreen( if (route == Route.Products) { productsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/publicChats/PublicChatsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/publicChats/PublicChatsScreen.kt index b41af4b30..4cc99f432 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/publicChats/PublicChatsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/publicChats/PublicChatsScreen.kt @@ -69,7 +69,7 @@ fun PublicChatsScreen( if (route == Route.PublicChats) { publicChatsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt index a4e0bdf8e..09c7eaa50 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt @@ -118,7 +118,7 @@ fun SearchScreen( }, bottomBar = { AppBottomBar(Route.Search, accountViewModel) { route -> - nav.newStack(route) + nav.navBottomBar(route) } }, accountViewModel = accountViewModel, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/shorts/ShortsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/shorts/ShortsScreen.kt index be9cda059..9266c2d3a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/shorts/ShortsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/shorts/ShortsScreen.kt @@ -69,7 +69,7 @@ fun ShortsScreen( if (route == Route.Shorts) { shortsFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/VideoScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/VideoScreen.kt index 880e7b2ce..83402464c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/VideoScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/VideoScreen.kt @@ -86,7 +86,7 @@ fun VideoScreen( if (route == Route.Video) { videoFeedContentState.sendToTop() } else { - nav.newStack(route) + nav.navBottomBar(route) } } },