Skip to content
This repository has been archived by the owner on Oct 23, 2023. It is now read-only.

Commit

Permalink
feat(app): create MainActivity class, main activity
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreaBrighi committed May 2, 2023
1 parent bae5ed3 commit 20793cf
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions app/src/main/kotlin/com/intelligentbackpack/app/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -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)
}
}
}
}
}
}
}
}

0 comments on commit 20793cf

Please sign in to comment.