Я перехожу с Dagger2 на Hilt, но не могу решить эту часть:
@Module
class HistoryPurchaseModule(private val historyPurchaseFragment: HistoryPurchaseFragment) {
@Provides
fun provideHistoryPurchaseFragment(): HistoryPurchaseFragment = historyPurchaseFragment
@Provides
fun provideUseCase() = HistoryPurchaseUseCase()
@Provides
fun provideSession() = HistoryPurchaseSession(
isHistoryLoading = MutableLiveData(true),
isThisTheFirstTime = true,
isHistoryEmpty = MutableLiveData(false)
)
@Provides
fun provideViewModel(session: HistoryPurchaseSession): HistoryPurchaseViewModel {
return historyPurchaseFragment.createViewModel {
HistoryPurchaseViewModel(session)
}
}
@Provides
fun provideLogic(
useCases: HistoryPurchaseUseCase,
viewModel: HistoryPurchaseViewModel
) = HistoryPurchaseLogic(viewModel.viewModelScope.coroutineContext, useCases, historyPurchaseFragment, viewModel)
}
Мой логический класс принимает два interfaces
в конструкторе, который реализуют viewModel (HistoryPurchaseContract.ViewModel
) и фрагмент (HistoryPurchaseContract.View
).
Фрагмент:
class HistoryPurchaseFragment : BaseFragment<HistoryPurchaseEvent>(), HistoryPurchaseContract.View
ViewModel:
class HistoryPurchaseViewModel @Inject constructor(override var session: HistoryPurchaseSession) : BaseViewModel<HistoryPurchaseEvent>(),
HistoryPurchaseContract.ViewModel
Мне удалось передать viewModel, но я не могу передать фрагмент. Как я могу это сделать?