From 19c5bac6d3135b82cb555b7cd07eedf2ef6fc796 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 18 Jan 2021 18:46:19 +0530 Subject: [PATCH] all: use Dagger Hilt VM injection Signed-off-by: Harsh Shandilya --- app/build.gradle.kts | 2 -- .../dev/msfjarvis/lobsters/injection/PersistenceModule.kt | 4 ++-- .../msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt | 6 ++++-- buildSrc/src/main/java/Dependencies.kt | 4 ---- model/build.gradle.kts | 1 - .../main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt | 4 ++-- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7a0f79c2..bda98571 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,7 +29,6 @@ android { dependencies { kapt(Dependencies.AndroidX.Hilt.daggerCompiler) - kapt(Dependencies.AndroidX.Hilt.daggerHiltCompiler) kapt(Dependencies.AndroidX.Room.compiler) kapt(Dependencies.ThirdParty.Roomigrant.compiler) implementation(project(":model")) @@ -49,7 +48,6 @@ dependencies { implementation(Dependencies.AndroidX.Compose.uiTooling) implementation(Dependencies.AndroidX.Compose.uiUnit) implementation(Dependencies.AndroidX.Hilt.dagger) - implementation(Dependencies.AndroidX.Hilt.hiltLifecycleViewmodel) implementation(Dependencies.AndroidX.Lifecycle.runtimeKtx) implementation(Dependencies.AndroidX.Lifecycle.viewmodelKtx) implementation(Dependencies.AndroidX.Room.runtime) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/injection/PersistenceModule.kt b/app/src/main/java/dev/msfjarvis/lobsters/injection/PersistenceModule.kt index b13e523e..361b4066 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/injection/PersistenceModule.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/injection/PersistenceModule.kt @@ -5,13 +5,13 @@ import androidx.room.Room import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityComponent +import dagger.hilt.android.components.ViewModelComponent import dagger.hilt.android.qualifiers.ApplicationContext import dev.msfjarvis.lobsters.data.source.PostsDatabase import dev.msfjarvis.lobsters.data.source.PostsDatabase_Migrations @Module -@InstallIn(ActivityComponent::class) +@InstallIn(ViewModelComponent::class) object PersistenceModule { @Provides diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt index 630e1827..7da7ce2c 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt @@ -1,10 +1,10 @@ package dev.msfjarvis.lobsters.ui.viewmodel -import androidx.hilt.lifecycle.ViewModelInject import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import androidx.paging.Pager import androidx.paging.PagingConfig +import dagger.hilt.android.lifecycle.HiltViewModel import dev.msfjarvis.lobsters.data.remote.LobstersPagingSource import dev.msfjarvis.lobsters.data.source.PostsDatabase import dev.msfjarvis.lobsters.model.LobstersPost @@ -12,8 +12,10 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch +import javax.inject.Inject -class LobstersViewModel @ViewModelInject constructor( +@HiltViewModel +class LobstersViewModel @Inject constructor( private val pagingSource: LobstersPagingSource, database: PostsDatabase, ) : ViewModel() { diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 0255875e..f48d3871 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-3.0-only */ -private const val ANDROIDX_HILT_VERSION = "1.0.0-alpha02" private const val DAGGER_HILT_VERSION = "2.31-alpha" object Dependencies { @@ -44,9 +43,6 @@ object Dependencies { object Hilt { const val dagger = "com.google.dagger:hilt-android:$DAGGER_HILT_VERSION" const val daggerCompiler = "com.google.dagger:hilt-compiler:$DAGGER_HILT_VERSION" - const val daggerHiltCompiler = "androidx.hilt:hilt-compiler:$ANDROIDX_HILT_VERSION" - const val hiltLifecycleViewmodel = - "androidx.hilt:hilt-lifecycle-viewmodel:$ANDROIDX_HILT_VERSION" } object Lifecycle { diff --git a/model/build.gradle.kts b/model/build.gradle.kts index f13746e6..a63ae76d 100644 --- a/model/build.gradle.kts +++ b/model/build.gradle.kts @@ -7,7 +7,6 @@ plugins { dependencies { kapt(Dependencies.AndroidX.Hilt.daggerCompiler) - kapt(Dependencies.AndroidX.Hilt.daggerHiltCompiler) kapt(Dependencies.ThirdParty.Moshi.codegen) api(Dependencies.ThirdParty.Retrofit.lib) implementation(Dependencies.AndroidX.Hilt.dagger) diff --git a/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt b/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt index 9b46ae60..24a9290d 100644 --- a/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt +++ b/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt @@ -5,7 +5,7 @@ import dagger.Module import dagger.Lazy import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityComponent +import dagger.hilt.android.components.ViewModelComponent import dev.msfjarvis.lobsters.data.api.LobstersApi import okhttp3.OkHttpClient import retrofit2.Retrofit @@ -13,7 +13,7 @@ import retrofit2.converter.moshi.MoshiConverterFactory import retrofit2.create @Module -@InstallIn(ActivityComponent::class) +@InstallIn(ViewModelComponent::class) object ApiModule { @Provides