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 {
|
||||
|
||||
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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue