diff --git a/Project/android/app/build.gradle.kts b/Project/android/app/build.gradle.kts index 1472c13..2b70e88 100644 --- a/Project/android/app/build.gradle.kts +++ b/Project/android/app/build.gradle.kts @@ -40,7 +40,7 @@ android { compose = true } composeOptions { - kotlinCompilerExtensionVersion = "1.5.11" + kotlinCompilerExtensionVersion = "1.5.1" } packaging { resources { diff --git a/Project/android/app/src/main/java/sae/android/sae_2a/view/HomeScreen.kt b/Project/android/app/src/main/java/sae/android/sae_2a/view/HomeScreen.kt index 7f8b476..3ac4b34 100644 --- a/Project/android/app/src/main/java/sae/android/sae_2a/view/HomeScreen.kt +++ b/Project/android/app/src/main/java/sae/android/sae_2a/view/HomeScreen.kt @@ -12,11 +12,15 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.material.BottomNavigation import androidx.compose.material.BottomNavigationItem +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Favorite import androidx.compose.material3.Button +import androidx.compose.material3.Icon import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -26,42 +30,64 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.navigation.NavDestination.Companion.hierarchy +import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable +import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import sae.android.sae_2a.R import sae.android.sae_2a.game.VocabularyScreen -@Preview +val items = listOf( + Screen.VocabularyList, + Screen.Game +) + + +@Preview @Composable fun MyApp() { val navController = rememberNavController() -/* Scaffold( + Scaffold( bottomBar = { - BottomNavigation { - BottomNavigationItem(selected = , onClick = { /*TODO*/ }, icon = { /*TODO*/ }){ - - } + BottomNavigation { + val navBackStackEntry by navController.currentBackStackEntryAsState() + val currentDestination = navBackStackEntry?.destination + items.forEach { screen -> + BottomNavigationItem( + label = { Text(stringResource(screen.resourceId)) }, + selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true, + onClick = { + navController.navigate(screen.route) { + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } + launchSingleTop = true + restoreState = true + } + }, + icon = { + Icon( + Icons.Filled.Favorite, contentDescription = null + ) + }) + } } - } - )*/ - NavHost(navController, startDestination = "HomeScreen") { - composable("HomeScreen") { HomeScreen( NavigateToRegister = { navController.navigate("RegisterScreen")} ,NavigateToLogin = { navController.navigate("GameScreen") }) } - composable("VocabularyScreen") { VocabularyScreen(onNavigateToList = { navController.popBackStack() }) } - composable("RegisterScreen") { RegisterScreen(NavigateToApp = { navController.navigate("VocabularyScreen") }) } - composable("GameScreen"){ GameScreen() { -// + } + ){ innerPadding -> + NavHost(navController, startDestination = Screen.Home.route, Modifier.padding(innerPadding)) { + composable(Screen.Home.route) { HomeScreen( NavigateToRegister = { navController.navigate(Screen.Register.route)} ,NavigateToLogin = { navController.navigate(Screen.Game.route) }) } + composable(Screen.VocabularyList.route) { VocabularyScreen(onNavigateToList = { navController.popBackStack() }) } + composable(Screen.Register.route) { RegisterScreen(NavigateToApp = { navController.navigate(Screen.VocabularyList.route) }) } + composable(Screen.Game.route){ GameScreen() { } } } } -@Composable -fun BottomNav(){ - } - @Composable fun HomeScreen(NavigateToRegister: () -> Unit,NavigateToLogin: () -> Unit ){ @@ -89,18 +115,18 @@ fun HomeScreen(NavigateToRegister: () -> Unit,NavigateToLogin: () -> Unit ){ .align(alignment = Alignment.CenterHorizontally)) Button( onClick = { NavigateToLogin() }, modifier = Modifier - .padding(10.dp) - .width(500.dp) - .height(80.dp) - .align(alignment = Alignment.CenterHorizontally)) { + .padding(10.dp) + .width(500.dp) + .height(80.dp) + .align(alignment = Alignment.CenterHorizontally)) { Text(text = stringResource(id = R.string.logIn), fontSize = 20.sp) } Button(onClick = { NavigateToRegister() },modifier = Modifier - .width(500.dp) - .padding(10.dp) - .height(80.dp) - .align(alignment = Alignment.CenterHorizontally)) { + .width(500.dp) + .padding(10.dp) + .height(80.dp) + .align(alignment = Alignment.CenterHorizontally)) { Text(text = stringResource(id = R.string.signIn), fontSize = 20.sp) } } diff --git a/Project/android/app/src/main/java/sae/android/sae_2a/view/Screen.kt b/Project/android/app/src/main/java/sae/android/sae_2a/view/Screen.kt new file mode 100644 index 0000000..81cc02b --- /dev/null +++ b/Project/android/app/src/main/java/sae/android/sae_2a/view/Screen.kt @@ -0,0 +1,16 @@ +package sae.android.sae_2a.view + +import androidx.annotation.StringRes +import sae.android.sae_2a.R + +sealed class Screen(val route: String, @StringRes val resourceId: Int) { + object Profile : Screen("profile", R.string.profilePicture) + object Home : Screen("HomeScreen", R.string.home) + object VocabularyList : Screen("VocabularyListScreen", R.string.voc_image_description) + object Game : Screen("GameScreen", R.string.game) + object Register : Screen("RegisterScreen", R.string.register) + + + + +} \ No newline at end of file diff --git a/Project/android/app/src/main/res/values/strings.xml b/Project/android/app/src/main/res/values/strings.xml index e3f848f..b933d62 100644 --- a/Project/android/app/src/main/res/values/strings.xml +++ b/Project/android/app/src/main/res/values/strings.xml @@ -10,7 +10,9 @@ Created by\u0020 Unknown Profile Picture + Game Home + Register Account Details Change Password \ No newline at end of file