Move injection of dependencies inside onAttach method
This commit is contained in:
parent
7e079554f8
commit
02c3686002
|
|
@ -1,20 +0,0 @@
|
|||
package ru.touchin.roboswag.navigation_cicerone.flow
|
||||
|
||||
import me.vponomarenko.injectionmanager.customlifecycle.StoredComponent
|
||||
import ru.touchin.roboswag.navigation_base.scopes.FeatureScope
|
||||
import javax.inject.Inject
|
||||
|
||||
@FeatureScope
|
||||
class ComponentHolder<TComponent> @Inject constructor(){
|
||||
|
||||
private var storedComponent: StoredComponent<TComponent>? = null
|
||||
|
||||
fun setStoredComponent(storedComponent: StoredComponent<TComponent>) {
|
||||
this.storedComponent = storedComponent
|
||||
}
|
||||
|
||||
fun destroy() {
|
||||
storedComponent?.lifecycle?.destroy()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -27,15 +27,8 @@ abstract class FlowFragment<TComponent> : Fragment(R.layout.fragment_flow) {
|
|||
@FlowNavigation
|
||||
lateinit var router: Router
|
||||
|
||||
@Inject
|
||||
@FeatureScope
|
||||
lateinit var componentHolder: ComponentHolder<TComponent>
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
if (!injectExistedComponent()) {
|
||||
val storedComponent = injectComponent()
|
||||
componentHolder.setStoredComponent(storedComponent)
|
||||
}
|
||||
injectComponent()
|
||||
super.onAttach(context)
|
||||
}
|
||||
|
||||
|
|
@ -46,9 +39,7 @@ abstract class FlowFragment<TComponent> : Fragment(R.layout.fragment_flow) {
|
|||
}
|
||||
}
|
||||
|
||||
abstract fun injectComponent(): StoredComponent<TComponent>
|
||||
|
||||
abstract fun injectExistedComponent(): Boolean
|
||||
abstract fun injectComponent()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
|
@ -70,7 +61,6 @@ abstract class FlowFragment<TComponent> : Fragment(R.layout.fragment_flow) {
|
|||
|
||||
private val exitRouterOnBackPressed = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
componentHolder.destroy()
|
||||
router.exit()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue