OnBoarding

This commit is contained in:
Benoit Marty 2022-11-09 16:35:33 +01:00
parent 4114ec4efc
commit 978975342e
62 changed files with 535 additions and 92 deletions

View file

@ -66,6 +66,7 @@ android {
dependencies {
implementation project(":libraries:designsystem")
implementation project(":libraries:matrix")
implementation project(":features:onboarding")
implementation project(":features:login")
implementation project(":features:roomlist")
implementation project(":features:messages")

View file

@ -15,6 +15,7 @@ import com.ramcosta.composedestinations.DestinationsNavHost
import com.ramcosta.composedestinations.rememberNavHostEngine
import io.element.android.x.designsystem.ElementXTheme
import io.element.android.x.destinations.LoginScreenNavigationDestination
import io.element.android.x.destinations.OnBoardingScreenNavigationDestination
import kotlinx.coroutines.runBlocking
class MainActivity : ComponentActivity() {
@ -37,7 +38,7 @@ private fun MainScreen(viewModel: MainViewModel) {
val navController = engine.rememberNavController()
val startRoute = runBlocking {
if (!viewModel.isLoggedIn()) {
LoginScreenNavigationDestination
OnBoardingScreenNavigationDestination
} else {
viewModel.restoreSession()
NavGraphs.root.startRoute

View file

@ -8,18 +8,33 @@ import com.ramcosta.composedestinations.navigation.popUpTo
import io.element.android.x.destinations.LoginScreenNavigationDestination
import io.element.android.x.destinations.MessagesScreenNavigationDestination
import io.element.android.x.destinations.RoomListScreenNavigationDestination
import io.element.android.x.destinations.OnBoardingScreenNavigationDestination
import io.element.android.x.features.login.LoginScreen
import io.element.android.x.features.messages.MessagesScreen
import io.element.android.x.features.onboarding.OnBoardingScreen
import io.element.android.x.features.roomlist.RoomListScreen
import io.element.android.x.matrix.core.RoomId
@Destination
@Composable
fun OnBoardingScreenNavigation(navigator: DestinationsNavigator) {
OnBoardingScreen(
onSignUp = {
// TODO
},
onSignIn = {
navigator.navigate(LoginScreenNavigationDestination)
}
)
}
@Destination
@Composable
fun LoginScreenNavigation(navigator: DestinationsNavigator) {
LoginScreen(
onLoginWithSuccess = {
navigator.navigate(RoomListScreenNavigationDestination) {
popUpTo(LoginScreenNavigationDestination) {
popUpTo(OnBoardingScreenNavigationDestination) {
inclusive = true
}
}
@ -36,7 +51,7 @@ fun RoomListScreenNavigation(navigator: DestinationsNavigator) {
navigator.navigate(MessagesScreenNavigationDestination(roomId = roomId.value))
},
onSuccessLogout = {
navigator.navigate(LoginScreenNavigationDestination) {
navigator.navigate(OnBoardingScreenNavigationDestination) {
popUpTo(RoomListScreenNavigationDestination) {
inclusive = true
}