diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewImageButton.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewImageButton.kt index c2a41cacc..41f67f0a1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewImageButton.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewImageButton.kt @@ -48,7 +48,7 @@ import kotlinx.coroutines.withContext @OptIn(ExperimentalPermissionsApi::class) @Composable -fun NewImageButton(accountViewModel: AccountViewModel, nav: (String) -> Unit) { +fun NewImageButton(accountViewModel: AccountViewModel, nav: (String) -> Unit, navScrollToTop: (Route, Boolean) -> Unit) { var wantsToPost by remember { mutableStateOf(false) } @@ -62,11 +62,9 @@ fun NewImageButton(accountViewModel: AccountViewModel, nav: (String) -> Unit) { val postViewModel: NewMediaModel = viewModel() postViewModel.onceUploaded { scope.launch(Dispatchers.Default) { - // awaits an refresh on the list - delay(250) + delay(500) withContext(Dispatchers.Main) { - val route = Route.Video.route.replace("{scrollToTop}", "true") - nav(route) + navScrollToTop(Route.Video, true) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt index b6a9e7b83..f5999bd45 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt @@ -217,7 +217,7 @@ fun MainScreen( } }, floatingActionButton = { - FloatingButtons(navState, accountViewModel, accountStateViewModel, nav) + FloatingButtons(navState, accountViewModel, accountStateViewModel, nav, navBottomRow) }, scaffoldState = scaffoldState ) { @@ -247,7 +247,8 @@ fun FloatingButtons( navEntryState: State, accountViewModel: AccountViewModel, accountStateViewModel: AccountStateViewModel, - nav: (String) -> Unit + nav: (String) -> Unit, + navScrollToTop: (Route, Boolean) -> Unit ) { val accountState by accountStateViewModel.accountContent.collectAsState() @@ -260,7 +261,7 @@ fun FloatingButtons( // Does nothing. } is AccountState.LoggedIn -> { - WritePermissionButtons(navEntryState, accountViewModel, nav) + WritePermissionButtons(navEntryState, accountViewModel, nav, navScrollToTop) } } } @@ -270,7 +271,8 @@ fun FloatingButtons( private fun WritePermissionButtons( navEntryState: State, accountViewModel: AccountViewModel, - nav: (String) -> Unit + nav: (String) -> Unit, + navScrollToTop: (Route, Boolean) -> Unit ) { val currentRoute by remember(navEntryState.value) { derivedStateOf { @@ -281,7 +283,7 @@ private fun WritePermissionButtons( when (currentRoute) { Route.Home.base -> NewNoteButton(accountViewModel, nav) Route.Message.base -> ChannelFabColumn(accountViewModel, nav) - Route.Video.base -> NewImageButton(accountViewModel, nav) + Route.Video.base -> NewImageButton(accountViewModel, nav, navScrollToTop) Route.Community.base -> { val communityId by remember(navEntryState.value) { derivedStateOf {