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