From 2da2e011bc145b23f91b721fe31075036406479d Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 14 May 2025 10:11:44 +0200 Subject: [PATCH] Reapply "WIP: Hilt integration" This reverts commit 4a8afb9c52a92187ec7d39829c96a4949687cfd0. --- app/build.gradle.kts | 4 ++++ .../com/dnsc/plaindo/PlaindoApplication.kt | 11 +++++++++++ .../dnsc/plaindo/ui/models/MainViewModel.kt | 18 ++++++++++++++++++ .../ui/overview/PlaindoOverviewScreen.kt | 4 +++- build.gradle.kts | 2 ++ gradle/libs.versions.toml | 7 ++++++- 6 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/dnsc/plaindo/PlaindoApplication.kt create mode 100644 app/src/main/java/com/dnsc/plaindo/ui/models/MainViewModel.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1e12c0b..3b84159 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,6 +3,8 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.ksp) + alias(libs.plugins.hilt) } android { @@ -51,6 +53,8 @@ dependencies { implementation(libs.androidx.material3) implementation(libs.androidx.navigation.compose) implementation(libs.kotlinx.serialization) + implementation(libs.hilt.android) + ksp(libs.hilt.compiler) testImplementation(libs.junit) diff --git a/app/src/main/java/com/dnsc/plaindo/PlaindoApplication.kt b/app/src/main/java/com/dnsc/plaindo/PlaindoApplication.kt new file mode 100644 index 0000000..c7a2c0f --- /dev/null +++ b/app/src/main/java/com/dnsc/plaindo/PlaindoApplication.kt @@ -0,0 +1,11 @@ +package com.dnsc.plaindo + +import android.app.Application +import dagger.hilt.android.HiltAndroidApp + +@HiltAndroidApp +class PlaindoApplication: Application() { + override fun onCreate() { + super.onCreate() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dnsc/plaindo/ui/models/MainViewModel.kt b/app/src/main/java/com/dnsc/plaindo/ui/models/MainViewModel.kt new file mode 100644 index 0000000..7c16552 --- /dev/null +++ b/app/src/main/java/com/dnsc/plaindo/ui/models/MainViewModel.kt @@ -0,0 +1,18 @@ +package com.dnsc.plaindo.ui.models + +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import com.dnsc.plaindo.data.Todo +import com.dnsc.plaindo.data.TodoFileRepository +import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject + +@HiltViewModel +class MainViewModel @Inject constructor( + private val savedStateHandle: SavedStateHandle, + private val todoFileRepository: TodoFileRepository +): ViewModel() { + fun getAllTodos(): List { + return todoFileRepository.todos + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dnsc/plaindo/ui/overview/PlaindoOverviewScreen.kt b/app/src/main/java/com/dnsc/plaindo/ui/overview/PlaindoOverviewScreen.kt index cf467d2..d1137c6 100644 --- a/app/src/main/java/com/dnsc/plaindo/ui/overview/PlaindoOverviewScreen.kt +++ b/app/src/main/java/com/dnsc/plaindo/ui/overview/PlaindoOverviewScreen.kt @@ -7,10 +7,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.navigation.NavHostController -import com.dnsc.plaindo.ui.components.TopBar +import com.dnsc.plaindo.ui.models.MainViewModel @Composable fun PlaindoOverviewScreen(navController: NavHostController, innerPadding: PaddingValues) { + val mainViewModel: MainViewModel = hiltViewModel() + Column(modifier = Modifier.padding(innerPadding)) { Text(text = "Overview") } diff --git a/build.gradle.kts b/build.gradle.kts index 5ba8ae0..a064be5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,4 +4,6 @@ plugins { alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.ksp) apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 40dd03d..f3a251a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,6 +10,8 @@ activityCompose = "1.8.0" composeBom = "2024.09.00" navigationCompose = "2.8.9" kotlinxSerialization = "1.7.3" +hilt = "2.56.2" +ksp = "2.1.20-2.0.1" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -28,10 +30,13 @@ androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-man androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" } +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } +hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } - +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +hilt = {id = "com.google.dagger.hilt.android", version.ref = "hilt" } \ No newline at end of file