From 21c35b299425837adcceb65b56d403402d859d80 Mon Sep 17 00:00:00 2001 From: Stanisalv Date: Fri, 28 Aug 2020 16:07:44 +0300 Subject: [PATCH 1/2] addOnBackPressedCallback addOnBackPressedCallback --- .../roboswag/mvi_arch/core/MviFragment.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt index 2cf6857..08a7df3 100644 --- a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt +++ b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt @@ -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,22 @@ abstract class MviFragment( viewModel.dispatchAction(action) } + protected fun addOnBackPressedCallback(actionProvider: () -> Action) { + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + dispatchAction(actionProvider) + } + }) + } + + 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. * From d6aa8fad79d63ff41b95d0936e9040c27f10ccb7 Mon Sep 17 00:00:00 2001 From: Stanisalv Date: Fri, 28 Aug 2020 16:25:01 +0300 Subject: [PATCH 2/2] replaced common code to actionProvider.invoke() replaced common code to actionProvider.invoke() --- .../java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt index 08a7df3..80e7758 100644 --- a/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt +++ b/mvi-arch/src/main/java/ru/touchin/roboswag/mvi_arch/core/MviFragment.kt @@ -105,11 +105,7 @@ abstract class MviFragment( } protected fun addOnBackPressedCallback(actionProvider: () -> Action) { - requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) { - override fun handleOnBackPressed() { - dispatchAction(actionProvider) - } - }) + addOnBackPressedCallback(actionProvider.invoke()) } protected fun addOnBackPressedCallback(action: Action) {