Jemshit Iskenderov
10/05/2018, 1:33 PMViewModel#onCleared() (not Activity lifecycle)
Aim: ViewModel injects UseCaseA and UseCaseB, and both use cases inject RealTimeConnection interface. Implementation of RealTimeConnection injects ClassC. I want RealTimeConnection implementation and ClassC to be created only once in ViewModel scope.
I have tried:
module("app") {
scope(SCOPE_VM) {
ClassC()
}
scope(SCOPE_VM) { RealTimeConnectionImplementation(get()) as RealTimeConnection }
factory { UseCaseA(get()) } // parameter is RealTimeConnection
factory { UseCaseB(get()) } // parameter is RealTimeConnection
}
Question: i can not inject UseCaseA and UseCaseB from constructor of ViewModel because scope is created in init{} block of ViewModel. I can not use by inject, get<> inside ViewModel. What is the solution? ThanksJemshit Iskenderov
10/05/2018, 2:05 PM