diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14c6853..dcf5ef3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -100,15 +100,16 @@ dependencies { // Timber implementation(libs.timber) + // Compose Navigation implementation(libs.androidx.navigation.compose) - // Tests testImplementation(libs.test.junit) androidTestImplementation(libs.test.junit) androidTestImplementation(libs.test.espresso) androidTestImplementation(libs.test.androidx.junit) + // Kotlin serialization implementation(libs.kotlin.serialization) } \ No newline at end of file diff --git a/app/src/main/java/fr/openium/consentium/MainActivity.kt b/app/src/main/java/fr/openium/consentium/MainActivity.kt index ca2effc..87336f5 100644 --- a/app/src/main/java/fr/openium/consentium/MainActivity.kt +++ b/app/src/main/java/fr/openium/consentium/MainActivity.kt @@ -1,5 +1,6 @@ package fr.openium.consentium +import DemoNavGraph import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -14,7 +15,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.navigation.compose.rememberNavController import dagger.hilt.android.AndroidEntryPoint -import fr.openium.afu.ui.navigation.DemoNavGraph import fr.openium.consentium.ui.theme.ConsentiumTheme @AndroidEntryPoint diff --git a/app/src/main/java/fr/openium/consentium/ui/navigation/DemoNavGraph.kt b/app/src/main/java/fr/openium/consentium/ui/navigation/DemoNavGraph.kt index 35e2772..8f2c5b1 100644 --- a/app/src/main/java/fr/openium/consentium/ui/navigation/DemoNavGraph.kt +++ b/app/src/main/java/fr/openium/consentium/ui/navigation/DemoNavGraph.kt @@ -1,4 +1,3 @@ -package fr.openium.afu.ui.navigation import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn diff --git a/app/src/main/java/fr/openium/consentium/ui/navigation/Destination.kt b/app/src/main/java/fr/openium/consentium/ui/navigation/Destination.kt index 2635d23..ac58ed3 100644 --- a/app/src/main/java/fr/openium/consentium/ui/navigation/Destination.kt +++ b/app/src/main/java/fr/openium/consentium/ui/navigation/Destination.kt @@ -1,11 +1,10 @@ -package fr.openium.afu.ui.navigation import kotlinx.serialization.Serializable sealed interface Destination { - @kotlinx.serialization.Serializable + @Serializable data object Splash : Destination @Serializable diff --git a/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreen.kt b/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreen.kt index 1a2f9b4..29f4869 100644 --- a/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreen.kt +++ b/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreen.kt @@ -2,12 +2,11 @@ package fr.openium.consentium.ui.screens.splash import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -19,32 +18,33 @@ import androidx.hilt.navigation.compose.hiltViewModel fun SplashScreen( viewModel: SplashScreenViewModel = hiltViewModel(), navigateToMain: () -> Unit, - ) { +) { val state by viewModel.state.collectAsState() Text("Splash") - + LaunchedEffect(Unit) { + viewModel.initMain() + } + when (val _state = state) { is SplashScreenViewModel.State.Loading -> Box( - modifier = Modifier.fillMaxSize() + modifier = Modifier.fillMaxSize() ) { - CircularProgressIndicator( - modifier = Modifier - .size(200.dp) - .align(Alignment.Center) - ) - //tracking matomo - } + CircularProgressIndicator( + modifier = Modifier + .size(200.dp) + .align(Alignment.Center) + ) + //tracking matomo + } is SplashScreenViewModel.State.Loaded -> { navigateToMain() } - - } } \ No newline at end of file diff --git a/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreenViewModel.kt b/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreenViewModel.kt index 1950abd..819e196 100644 --- a/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreenViewModel.kt +++ b/app/src/main/java/fr/openium/consentium/ui/screens/splash/SplashScreenViewModel.kt @@ -16,7 +16,7 @@ class SplashScreenViewModel @Inject constructor( private val _state = MutableStateFlow(State.Loading) val state: StateFlow = _state - private fun loadMain() { + fun initMain() { val delay = viewModelScope.launch { delay(1500L) } @@ -36,8 +36,4 @@ class SplashScreenViewModel @Inject constructor( data object Loaded : State } - init { - loadMain() - } - } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index ad3cd5b..168859e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,8 +15,11 @@ plugins { // Agp alias(libs.plugins.android.library) apply false + //Hilt alias(libs.plugins.hilt) apply false + + //Kotlin serialization alias(libs.plugins.kotlin.serialization) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2ae1caa..c7df22c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,8 +43,6 @@ matomo = "4.3" # Serialization serialization = "1.7.1" -navigationCommonKtx = "2.8.2" -navigationRuntimeKtx = "2.8.2" navigationCompose = "2.8.2" @@ -82,9 +80,12 @@ material = { group = "com.google.android.material", name = "material", version.r # Matomo matomo = { module = "com.github.matomo-org:matomo-sdk-android", version.ref = "matomo" } +# Kotlin serizalization kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" } -androidx-navigation-common-ktx = { group = "androidx.navigation", name = "navigation-common-ktx", version.ref = "navigationCommonKtx" } -androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigationRuntimeKtx" } + +# Compose navigation +androidx-navigation-common-ktx = { group = "androidx.navigation", name = "navigation-common-ktx", version.ref = "navigationCompose" } +androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigationCompose" } androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" } # Test