Before, I use Code A to pass Context to ViewModel.
Now I hope to use Hilt as dependency injection to pass Context,
I have read the article , and Code B is from the article.
1: Is the Code B correct way to pass Context into ViewModel?
2: In my mind, in order to use Hilt in Android Studio project, I have added such as the Code C in project, do I need to use fun provideApplicationContext() = MyApplication() in Code B?
Code A
class HomeViewModel(private val mApplication: Application, val mRepository: DBRepository) : AndroidViewModel(mApplication) {
...
}
Code B
class MainViewModel @ViewModelInject constructor(
@ApplicationContext private val context: Context,
private val repository: Repository,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
...
}
@Singleton
@Provides
fun provideApplicationContext() = MyApplication()
Code C
@HiltAndroidApp
class MyApplication : Application() {
}