From 67a89c449c33b8c2f82df714c94fdb97215118c4 Mon Sep 17 00:00:00 2001 From: Joren Date: Mon, 29 Apr 2024 12:10:54 +0200 Subject: [PATCH] Add beginning of viewmodel, update nav on back gesture --- .idea/inspectionProfiles/Project_Default.xml | 41 +++++++++++++++++++ .idea/misc.xml | 1 - app/build.gradle.kts | 1 + app/src/main/AndroidManifest.xml | 1 + .../main/java/com/ti/mobpo/MainActivity.kt | 1 + .../java/com/ti/mobpo/{ => ui}/Compontents.kt | 2 +- .../java/com/ti/mobpo/{ => ui}/Navigation.kt | 20 ++++++--- .../java/com/ti/mobpo/ui/PokeSearchUiState.kt | 3 ++ .../com/ti/mobpo/ui/PokeSearchViewModel.kt | 11 +++++ .../main/java/com/ti/mobpo/{ => ui}/Screen.kt | 2 +- .../ti/mobpo/{ => ui}/screens/Favourites.kt | 2 +- .../ti/mobpo/{ => ui}/screens/PokeSearch.kt | 19 +++++++-- .../com/ti/mobpo/{ => ui}/screens/Profile.kt | 2 +- 13 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml rename app/src/main/java/com/ti/mobpo/{ => ui}/Compontents.kt (98%) rename app/src/main/java/com/ti/mobpo/{ => ui}/Navigation.kt (86%) create mode 100644 app/src/main/java/com/ti/mobpo/ui/PokeSearchUiState.kt create mode 100644 app/src/main/java/com/ti/mobpo/ui/PokeSearchViewModel.kt rename app/src/main/java/com/ti/mobpo/{ => ui}/Screen.kt (90%) rename app/src/main/java/com/ti/mobpo/{ => ui}/screens/Favourites.kt (84%) rename app/src/main/java/com/ti/mobpo/{ => ui}/screens/PokeSearch.kt (62%) rename app/src/main/java/com/ti/mobpo/{ => ui}/screens/Profile.kt (81%) diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..44ca2d9 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cb..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b5611c1..5c8891a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,4 +65,5 @@ dependencies { debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) implementation("androidx.navigation:navigation-compose:$nav_version") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ce57858..9ab37b6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ = _uiState.asStateFlow() + +} \ No newline at end of file diff --git a/app/src/main/java/com/ti/mobpo/Screen.kt b/app/src/main/java/com/ti/mobpo/ui/Screen.kt similarity index 90% rename from app/src/main/java/com/ti/mobpo/Screen.kt rename to app/src/main/java/com/ti/mobpo/ui/Screen.kt index 687285b..a564e79 100644 --- a/app/src/main/java/com/ti/mobpo/Screen.kt +++ b/app/src/main/java/com/ti/mobpo/ui/Screen.kt @@ -1,4 +1,4 @@ -package com.ti.mobpo +package com.ti.mobpo.ui sealed class Screen (val route: String) { object PokeSearch : Screen("default_screen") diff --git a/app/src/main/java/com/ti/mobpo/screens/Favourites.kt b/app/src/main/java/com/ti/mobpo/ui/screens/Favourites.kt similarity index 84% rename from app/src/main/java/com/ti/mobpo/screens/Favourites.kt rename to app/src/main/java/com/ti/mobpo/ui/screens/Favourites.kt index b7e3a29..2fe3bd6 100644 --- a/app/src/main/java/com/ti/mobpo/screens/Favourites.kt +++ b/app/src/main/java/com/ti/mobpo/ui/screens/Favourites.kt @@ -1,4 +1,4 @@ -package com.ti.mobpo.screens +package com.ti.mobpo.ui.screens import androidx.compose.material3.Text import androidx.compose.runtime.Composable diff --git a/app/src/main/java/com/ti/mobpo/screens/PokeSearch.kt b/app/src/main/java/com/ti/mobpo/ui/screens/PokeSearch.kt similarity index 62% rename from app/src/main/java/com/ti/mobpo/screens/PokeSearch.kt rename to app/src/main/java/com/ti/mobpo/ui/screens/PokeSearch.kt index 0b818b7..c79f9a1 100644 --- a/app/src/main/java/com/ti/mobpo/screens/PokeSearch.kt +++ b/app/src/main/java/com/ti/mobpo/ui/screens/PokeSearch.kt @@ -1,25 +1,36 @@ -package com.ti.mobpo.screens +package com.ti.mobpo.ui.screens import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ti.mobpo.R -import com.ti.mobpo.SearchBar +import com.ti.mobpo.ui.SearchBar +import androidx.lifecycle.viewmodel.compose.viewModel +import com.ti.mobpo.ui.PokeSearchViewModel +@Composable +fun PokeSearchScreen(pokesearchViewModel: PokeSearchViewModel = viewModel()){ + val pokesearchUiState by pokesearchViewModel.uiState.collectAsState() + PokeSearch() +} @Composable fun PokeSearch() { Column ( verticalArrangement = Arrangement.Top, horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier.fillMaxSize().padding(20.dp) + modifier = Modifier + .fillMaxSize() + .padding(20.dp) ) { SearchBar(stringResource(R.string.input_field_label)){ value -> run { @@ -31,5 +42,5 @@ fun PokeSearch() { @Preview(showBackground = true) @Composable fun PokeSearchApp(){ - PokeSearch() + PokeSearchScreen() } \ No newline at end of file diff --git a/app/src/main/java/com/ti/mobpo/screens/Profile.kt b/app/src/main/java/com/ti/mobpo/ui/screens/Profile.kt similarity index 81% rename from app/src/main/java/com/ti/mobpo/screens/Profile.kt rename to app/src/main/java/com/ti/mobpo/ui/screens/Profile.kt index 67d5a5f..cf3f3b8 100644 --- a/app/src/main/java/com/ti/mobpo/screens/Profile.kt +++ b/app/src/main/java/com/ti/mobpo/ui/screens/Profile.kt @@ -1,4 +1,4 @@ -package com.ti.mobpo.screens +package com.ti.mobpo.ui.screens import androidx.compose.material3.Text import androidx.compose.runtime.Composable