all: use Dagger Hilt VM injection

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-01-18 18:46:19 +05:30
parent e9a55cc1db
commit 19c5bac6d3
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
6 changed files with 8 additions and 13 deletions

View file

@ -29,7 +29,6 @@ android {
dependencies { dependencies {
kapt(Dependencies.AndroidX.Hilt.daggerCompiler) kapt(Dependencies.AndroidX.Hilt.daggerCompiler)
kapt(Dependencies.AndroidX.Hilt.daggerHiltCompiler)
kapt(Dependencies.AndroidX.Room.compiler) kapt(Dependencies.AndroidX.Room.compiler)
kapt(Dependencies.ThirdParty.Roomigrant.compiler) kapt(Dependencies.ThirdParty.Roomigrant.compiler)
implementation(project(":model")) implementation(project(":model"))
@ -49,7 +48,6 @@ dependencies {
implementation(Dependencies.AndroidX.Compose.uiTooling) implementation(Dependencies.AndroidX.Compose.uiTooling)
implementation(Dependencies.AndroidX.Compose.uiUnit) implementation(Dependencies.AndroidX.Compose.uiUnit)
implementation(Dependencies.AndroidX.Hilt.dagger) implementation(Dependencies.AndroidX.Hilt.dagger)
implementation(Dependencies.AndroidX.Hilt.hiltLifecycleViewmodel)
implementation(Dependencies.AndroidX.Lifecycle.runtimeKtx) implementation(Dependencies.AndroidX.Lifecycle.runtimeKtx)
implementation(Dependencies.AndroidX.Lifecycle.viewmodelKtx) implementation(Dependencies.AndroidX.Lifecycle.viewmodelKtx)
implementation(Dependencies.AndroidX.Room.runtime) implementation(Dependencies.AndroidX.Room.runtime)

View file

@ -5,13 +5,13 @@ import androidx.room.Room
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent import dagger.hilt.android.components.ViewModelComponent
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import dev.msfjarvis.lobsters.data.source.PostsDatabase import dev.msfjarvis.lobsters.data.source.PostsDatabase
import dev.msfjarvis.lobsters.data.source.PostsDatabase_Migrations import dev.msfjarvis.lobsters.data.source.PostsDatabase_Migrations
@Module @Module
@InstallIn(ActivityComponent::class) @InstallIn(ViewModelComponent::class)
object PersistenceModule { object PersistenceModule {
@Provides @Provides

View file

@ -1,10 +1,10 @@
package dev.msfjarvis.lobsters.ui.viewmodel package dev.msfjarvis.lobsters.ui.viewmodel
import androidx.hilt.lifecycle.ViewModelInject
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.paging.Pager import androidx.paging.Pager
import androidx.paging.PagingConfig import androidx.paging.PagingConfig
import dagger.hilt.android.lifecycle.HiltViewModel
import dev.msfjarvis.lobsters.data.remote.LobstersPagingSource import dev.msfjarvis.lobsters.data.remote.LobstersPagingSource
import dev.msfjarvis.lobsters.data.source.PostsDatabase import dev.msfjarvis.lobsters.data.source.PostsDatabase
import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.model.LobstersPost
@ -12,8 +12,10 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject
class LobstersViewModel @ViewModelInject constructor( @HiltViewModel
class LobstersViewModel @Inject constructor(
private val pagingSource: LobstersPagingSource, private val pagingSource: LobstersPagingSource,
database: PostsDatabase, database: PostsDatabase,
) : ViewModel() { ) : ViewModel() {

View file

@ -3,7 +3,6 @@
* SPDX-License-Identifier: GPL-3.0-only * 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" private const val DAGGER_HILT_VERSION = "2.31-alpha"
object Dependencies { object Dependencies {
@ -44,9 +43,6 @@ object Dependencies {
object Hilt { object Hilt {
const val dagger = "com.google.dagger:hilt-android:$DAGGER_HILT_VERSION" const val dagger = "com.google.dagger:hilt-android:$DAGGER_HILT_VERSION"
const val daggerCompiler = "com.google.dagger:hilt-compiler:$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 { object Lifecycle {

View file

@ -7,7 +7,6 @@ plugins {
dependencies { dependencies {
kapt(Dependencies.AndroidX.Hilt.daggerCompiler) kapt(Dependencies.AndroidX.Hilt.daggerCompiler)
kapt(Dependencies.AndroidX.Hilt.daggerHiltCompiler)
kapt(Dependencies.ThirdParty.Moshi.codegen) kapt(Dependencies.ThirdParty.Moshi.codegen)
api(Dependencies.ThirdParty.Retrofit.lib) api(Dependencies.ThirdParty.Retrofit.lib)
implementation(Dependencies.AndroidX.Hilt.dagger) implementation(Dependencies.AndroidX.Hilt.dagger)

View file

@ -5,7 +5,7 @@ import dagger.Module
import dagger.Lazy import dagger.Lazy
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent import dagger.hilt.android.components.ViewModelComponent
import dev.msfjarvis.lobsters.data.api.LobstersApi import dev.msfjarvis.lobsters.data.api.LobstersApi
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import retrofit2.Retrofit import retrofit2.Retrofit
@ -13,7 +13,7 @@ import retrofit2.converter.moshi.MoshiConverterFactory
import retrofit2.create import retrofit2.create
@Module @Module
@InstallIn(ActivityComponent::class) @InstallIn(ViewModelComponent::class)
object ApiModule { object ApiModule {
@Provides @Provides