mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 23:47:02 +05:30
all: use Dagger Hilt VM injection
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
e9a55cc1db
commit
19c5bac6d3
6 changed files with 8 additions and 13 deletions
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue