From 20793cf3ad0658957ffb91338da284ae8afc1c60 Mon Sep 17 00:00:00 2001 From: Andrea Brighi Date: Tue, 2 May 2023 09:39:40 +0200 Subject: [PATCH] feat(app): create MainActivity class, main activity --- .../intelligentbackpack/app/MainActivity.kt | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 app/src/main/kotlin/com/intelligentbackpack/app/MainActivity.kt diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/MainActivity.kt b/app/src/main/kotlin/com/intelligentbackpack/app/MainActivity.kt new file mode 100644 index 00000000..be4206c0 --- /dev/null +++ b/app/src/main/kotlin/com/intelligentbackpack/app/MainActivity.kt @@ -0,0 +1,72 @@ +package com.intelligentbackpack.app + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import com.intelligentbackpack.app.ui.navigation.MainNavigation +import com.intelligentbackpack.app.ui.theme.IntelligentBackpackAppTheme +import com.intelligentbackpack.app.view.CreateUser +import com.intelligentbackpack.app.view.Home +import com.intelligentbackpack.app.view.Login + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + val navController = rememberNavController() + val viewModelStoreOwner = LocalViewModelStoreOwner.current!! + IntelligentBackpackAppTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + NavHost(navController, startDestination = MainNavigation.login) { + + composable(MainNavigation.login) { + CompositionLocalProvider( + LocalViewModelStoreOwner provides viewModelStoreOwner + ) { + Login(navController) + } + } + composable( + MainNavigation.createUser, + arguments = listOf(navArgument(MainNavigation.createUserParam) { nullable = true }) + ) { backStackEntry -> + val email = backStackEntry.arguments?.getString(MainNavigation.createUserParam) + CompositionLocalProvider( + LocalViewModelStoreOwner provides viewModelStoreOwner + ) { + CreateUser( + navController = navController, + email = email ?: "", + ) + } + + } + composable(MainNavigation.home) { + CompositionLocalProvider( + LocalViewModelStoreOwner provides viewModelStoreOwner + ) { + Home(navController = navController) + } + } + } + } + } + } + } +}