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