File tree Expand file tree Collapse file tree
common/src/main/java/com/flamyoad/common/di
explorer-impl/src/main/java/com/flamyoad/explorer_impl/ui Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11object Libs {
22
33 const val navigationVersion = " 2.5.1"
4- const val lifecycleVersion = " 2.6 .0"
4+ const val lifecycleVersion = " 2.8 .0"
55 const val hiltVersion = " 2.50"
66 const val androidxHiltVersion = " 1.2.0"
77 const val dataStoreVersion = " 1.0.0"
Original file line number Diff line number Diff line change 1+ package com.flamyoad.common.di
2+
3+ import dagger.Module
4+ import dagger.Provides
5+ import dagger.hilt.InstallIn
6+ import dagger.hilt.android.components.ViewModelComponent
7+ import dagger.hilt.android.scopes.ViewModelScoped
8+ import kotlinx.coroutines.CoroutineScope
9+ import kotlinx.coroutines.Dispatchers
10+ import kotlinx.coroutines.SupervisorJob
11+ import javax.inject.Named
12+
13+ const val ViewModelCoroutineScope = " ViewModelCoroutineScope"
14+
15+ @Module
16+ @InstallIn(ViewModelComponent ::class )
17+ class ViewModelCoroutinesModule {
18+
19+ @Named(ViewModelCoroutineScope )
20+ @ViewModelScoped
21+ @Provides
22+ fun provideViewModelCoroutineScope (): CoroutineScope {
23+ return CoroutineScope (Dispatchers .Main + SupervisorJob ())
24+ }
25+ }
Original file line number Diff line number Diff line change 11package com.flamyoad.explorer_impl.ui
22
3- import android.os.Environment
43import androidx.lifecycle.ViewModel
54import androidx.lifecycle.viewModelScope
5+ import com.flamyoad.common.di.ViewModelCoroutineScope
66import com.flamyoad.file_scanner.DirectoryProvider
77import dagger.hilt.android.lifecycle.HiltViewModel
8+ import kotlinx.coroutines.CoroutineScope
89import kotlinx.coroutines.flow.SharingStarted
910import kotlinx.coroutines.flow.StateFlow
1011import kotlinx.coroutines.flow.stateIn
1112import java.io.File
1213import javax.inject.Inject
14+ import javax.inject.Named
1315
1416@HiltViewModel
1517internal class HomePageViewModel @Inject constructor(
16- private val directoryProvider : DirectoryProvider
17- ) : ViewModel() {
18+ private val directoryProvider : DirectoryProvider ,
19+ @Named(ViewModelCoroutineScope ) vmCoroutineScope : CoroutineScope ,
20+ ) : ViewModel(vmCoroutineScope) {
1821
1922 val rootDirectories: StateFlow <List <File >> = directoryProvider.rootDirectories()
2023 .stateIn(
You can’t perform that action at this time.
0 commit comments