Merge pull request #155 from TouchInstinct/feature/MviFragment-back-navigation
addOnBackPressedCallback
This commit is contained in:
commit
88e0595951
|
|
@ -3,6 +3,7 @@ package ru.touchin.roboswag.mvi_arch.core
|
|||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
import android.view.View
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.annotation.CallSuper
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.annotation.MainThread
|
||||
|
|
@ -103,6 +104,18 @@ abstract class MviFragment<NavArgs, State, Action, VM>(
|
|||
viewModel.dispatchAction(action)
|
||||
}
|
||||
|
||||
protected fun addOnBackPressedCallback(actionProvider: () -> Action) {
|
||||
addOnBackPressedCallback(actionProvider.invoke())
|
||||
}
|
||||
|
||||
protected fun addOnBackPressedCallback(action: Action) {
|
||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
dispatchAction(action)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Lazily provides view model of this screen with transmitted arguments if exist.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue