diff options
author | Torsten Grote <t@grobox.de> | 2023-04-18 13:37:40 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-04-18 13:37:40 -0300 |
commit | 62c86e421394492ff64cba0b65728817513254c9 (patch) | |
tree | 28df61af27aad300792ea5f9ce6336d956b0eb8e | |
parent | 6ca47955402d8557b00b0d334b3a60ecd071368b (diff) | |
download | taler-android-62c86e421394492ff64cba0b65728817513254c9.tar.gz taler-android-62c86e421394492ff64cba0b65728817513254c9.tar.bz2 taler-android-62c86e421394492ff64cba0b65728817513254c9.zip |
[wallet] navigate back to main screen after outgoing push is complete
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt index 0aa029b..255aee5 100644 --- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushFragment.kt @@ -20,10 +20,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.OnBackPressedCallback import androidx.compose.ui.platform.ComposeView import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import net.taler.common.Amount import net.taler.wallet.MainViewModel import net.taler.wallet.R @@ -34,6 +36,13 @@ class OutgoingPushFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val peerManager get() = model.peerManager + // hacky way to change back action until we have navigation for compose + private val backPressedCallback = object : OnBackPressedCallback(false) { + override fun handleOnBackPressed() { + findNavController().navigate(R.id.action_nav_peer_push_to_nav_main) + } + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -42,11 +51,17 @@ class OutgoingPushFragment : Fragment() { val amount = arguments?.getString("amount")?.let { Amount.fromJSONString(it) } ?: error("no amount passed") + + requireActivity().onBackPressedDispatcher.addCallback( + viewLifecycleOwner, backPressedCallback + ) + return ComposeView(requireContext()).apply { setContent { TalerSurface { when (val state = peerManager.pushState.collectAsStateLifecycleAware().value) { is OutgoingIntro, OutgoingChecking, is OutgoingChecked -> { + backPressedCallback.isEnabled = false OutgoingPushIntroComposable( state = state, amount = amount, @@ -54,6 +69,7 @@ class OutgoingPushFragment : Fragment() { ) } OutgoingCreating, is OutgoingResponse, is OutgoingError -> { + backPressedCallback.isEnabled = true OutgoingPushResultComposable(state) { findNavController().navigate(R.id.action_nav_peer_push_to_nav_main) } |