From 4e4b90c2a670fbcdac6e0d5b20adc9fca89cabe9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 7 Nov 2022 19:30:35 +0500 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/assets/tangem-app-config | 2 +- app/src/main/java/com/tangem/tap/MainActivity.kt | 2 +- .../tap/common/redux/navigation/NavigationAction.kt | 8 ++++---- .../tap/common/redux/navigation/NavigationReducer.kt | 9 ++++++++- .../tap/common/redux/navigation/NavigationState.kt | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index a1658496e7..cf6ea50867 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit a1658496e777b611fc990ef2bc1a1a1fd48bc1e6 +Subproject commit cf6ea50867477f97655da9da47ff94987e8f3354 diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index a94cf067f5..e557e59247 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -132,7 +132,7 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac } override fun onDestroy() { - store.dispatch(NavigationAction.ActivityDestroyed) + store.dispatch(NavigationAction.ActivityDestroyed(WeakReference(this))) super.onDestroy() } diff --git a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationAction.kt b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationAction.kt index 0579c7f651..e397d78d8a 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationAction.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationAction.kt @@ -1,7 +1,7 @@ package com.tangem.tap.common.redux.navigation import android.net.Uri -import androidx.fragment.app.FragmentActivity +import androidx.appcompat.app.AppCompatActivity import org.rekotlin.Action import java.lang.ref.WeakReference @@ -9,7 +9,7 @@ sealed class NavigationAction : Action { data class NavigateTo( val screen: AppScreen, val fragmentShareTransition: FragmentShareTransition? = null, - val addToBackstack: Boolean = true + val addToBackstack: Boolean = true, ) : NavigationAction() data class PopBackTo(val screen: AppScreen? = null) : NavigationAction() @@ -20,6 +20,6 @@ sealed class NavigationAction : Action { data class Share(val data: String) : NavigationAction() - data class ActivityCreated(val activity: WeakReference) : NavigationAction() - object ActivityDestroyed : NavigationAction() + data class ActivityCreated(val activity: WeakReference) : NavigationAction() + data class ActivityDestroyed(val activity: WeakReference) : NavigationAction() } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt index e742aa2e6b..7d63cb95ee 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt @@ -25,7 +25,14 @@ private fun internalReduce(action: Action, state: AppState): NavigationState { state.navigationState.copy(backStack = navState.backStack.subList(0, index)) } is NavigationAction.ActivityCreated -> navState.copy(activity = navigationAction.activity) - is NavigationAction.ActivityDestroyed -> navState.copy(activity = null) + is NavigationAction.ActivityDestroyed -> { + when { + // Destroy the activity if it invoked for the same activity. Prevents overwriting to null if there is a + // new scan from the background [REDACTED_TASK_KEY] + navState.activity?.get() == navigationAction.activity.get() -> navState.copy(activity = null) + else -> navState + } + } else -> navState } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationState.kt b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationState.kt index 9c6468c049..224e12755b 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationState.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationState.kt @@ -1,12 +1,12 @@ package com.tangem.tap.common.redux.navigation -import androidx.fragment.app.FragmentActivity +import androidx.appcompat.app.AppCompatActivity import org.rekotlin.StateType import java.lang.ref.WeakReference data class NavigationState( val backStack: List = listOf(AppScreen.Home), - val activity: WeakReference? = null + val activity: WeakReference? = null, ) : StateType enum class AppScreen {