From 6230a31fdffd6724eb09037d65732f45d8ad3d9b Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 28 Oct 2022 20:22:53 +0200 Subject: [PATCH] Branch signout --- .../main/java/io/element/android/x/Navigation.kt | 7 +++++-- .../android/x/features/roomlist/RoomListScreen.kt | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/element/android/x/Navigation.kt b/app/src/main/java/io/element/android/x/Navigation.kt index b53d0e9e8e..8342655064 100644 --- a/app/src/main/java/io/element/android/x/Navigation.kt +++ b/app/src/main/java/io/element/android/x/Navigation.kt @@ -4,6 +4,7 @@ import androidx.compose.runtime.Composable import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootNavGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator +import io.element.android.x.destinations.LoginScreenNavigationDestination import io.element.android.x.destinations.RoomListScreenNavigationDestination import io.element.android.x.features.login.LoginScreen import io.element.android.x.features.roomlist.RoomListScreen @@ -21,8 +22,10 @@ fun LoginScreenNavigation(navigator: DestinationsNavigator) { @RootNavGraph(start = true) @Destination @Composable -fun RoomListScreenNavigation() { - RoomListScreen() +fun RoomListScreenNavigation(navigator: DestinationsNavigator) { + RoomListScreen(onSuccessLogout = { + navigator.clearBackStack(LoginScreenNavigationDestination) + }) } diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListScreen.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListScreen.kt index cc01c403d0..03dff1cea2 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListScreen.kt +++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListScreen.kt @@ -23,11 +23,21 @@ import io.element.android.x.matrix.room.RoomSummary @Composable fun RoomListScreen( viewModel: RoomListViewModel = mavericksViewModel(), - onLogoutClicked: () -> Unit = { }, + onSuccessLogout: () -> Unit = { }, onRoomClicked: (RoomId) -> Unit = { } ) { val state by viewModel.collectAsState() - RoomListContent(state, onRoomClicked, onLogoutClicked) + if (state.logoutAction is Success) { + onSuccessLogout() + return + } + RoomListContent( + state = state, + onRoomClicked = onRoomClicked, + onLogoutClicked = { + viewModel.handle(RoomListActions.Logout) + } + ) } @Composable