From 9900b6dd8d8b0aa3c10511255f8ae2eaff57b72e Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 24 Mar 2025 10:57:32 +0300 Subject: [PATCH 1/3] Updated on 2026-08-14 --- .../main/java/com/tangem/tap/DecomposeFragment.kt | 9 ++------- app/src/main/java/com/tangem/tap/MainActivity.kt | 14 ++++++++++++++ .../java/com/tangem/tap/features/home/HomeModel.kt | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/DecomposeFragment.kt b/app/src/main/java/com/tangem/tap/DecomposeFragment.kt index b4ac28e100..3136ae77dd 100644 --- a/app/src/main/java/com/tangem/tap/DecomposeFragment.kt +++ b/app/src/main/java/com/tangem/tap/DecomposeFragment.kt @@ -1,6 +1,5 @@ package com.tangem.tap -import android.os.Bundle import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.core.os.bundleOf @@ -21,15 +20,11 @@ internal class DecomposeFragment : ComposeFragment() { @Inject override lateinit var uiDependencies: UiDependencies - private lateinit var component: ComposableContentComponent - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - + private val component by lazy(LazyThreadSafetyMode.NONE) { val tag = requireArguments().getString(TAG_KEY) val builder = componentsBuilders[tag] - component = requireNotNull(builder?.build()) { + requireNotNull(builder?.build()) { "Component builder is not set, call newInstance() for DecomposeFragment creation first." } } diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index 5d812cc731..60676fa1f7 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -23,6 +23,7 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.fragment.app.FragmentManager.POP_BACK_STACK_INCLUSIVE import androidx.lifecycle.Lifecycle import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope @@ -330,6 +331,19 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac appRouterConfig.stack = stack + if (stack.size == 1) { + supportFragmentManager.run { + val activeChildName = stack.first().path + + (0 until backStackEntryCount) + .mapNotNull { getBackStackEntryAt(it).name } + .filter { it != activeChildName } + .forEach { + popBackStackImmediate(it, POP_BACK_STACK_INCLUSIVE) + } + } + } + when (val child = childStack.active.instance) { is RoutingComponent.Child.Initial -> Unit is RoutingComponent.Child.LegacyFragment -> { diff --git a/app/src/main/java/com/tangem/tap/features/home/HomeModel.kt b/app/src/main/java/com/tangem/tap/features/home/HomeModel.kt index 8511f53ab2..5230ab1717 100644 --- a/app/src/main/java/com/tangem/tap/features/home/HomeModel.kt +++ b/app/src/main/java/com/tangem/tap/features/home/HomeModel.kt @@ -121,7 +121,7 @@ internal class HomeModel @Inject constructor( store.dispatchWithMain(HomeAction.ScanInProgress(scanInProgress = false)) delay(HIDE_PROGRESS_DELAY) - store.dispatchNavigationAction { push(AppRoute.Wallet) } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } } private fun sendSignedInCardAnalyticsEvent(scanResponse: ScanResponse) { From 4870ce933cad6cb57b2d118bb6ee4a691cfad045 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 24 Mar 2025 18:30:38 +0300 Subject: [PATCH 2/3] Updated on 2026-08-14 --- .../wallet/analytics/utils/TokenListAnalyticsSender.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/TokenListAnalyticsSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/TokenListAnalyticsSender.kt index b057ac8dd5..f6b3183538 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/TokenListAnalyticsSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/TokenListAnalyticsSender.kt @@ -11,6 +11,7 @@ import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.decompose.di.ModelScoped import com.tangem.domain.analytics.CheckIsWalletToppedUpUseCase import com.tangem.domain.analytics.model.WalletBalanceState +import com.tangem.domain.models.StatusSource import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.domain.tokens.model.TokenList import com.tangem.domain.tokens.model.TotalFiatBalance @@ -74,7 +75,8 @@ internal class TokenListAnalyticsSender @Inject constructor( when (totalFiatBalance) { is TotalFiatBalance.Loaded -> putAttribute(HAS_ERROR, "No") is TotalFiatBalance.Failed -> putAttribute(HAS_ERROR, "Yes") - else -> { /* Intentionally do nothing */ } + else -> { /* Intentionally do nothing */ + } } stop() loadingTraces.remove(userWalletId) @@ -83,7 +85,9 @@ internal class TokenListAnalyticsSender @Inject constructor( } private fun isTerminalState(balance: TotalFiatBalance): Boolean { - return balance is TotalFiatBalance.Failed || balance is TotalFiatBalance.Loaded + val isLoaded = balance is TotalFiatBalance.Loaded && + (balance.source == StatusSource.ACTUAL || balance.source == StatusSource.ONLY_CACHE) + return balance is TotalFiatBalance.Failed || isLoaded } private fun sendBalanceLoadedEventIfNeeded( From 12126ea31aa9e8dcd4859c00d416b38f883f539d Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 24 Mar 2025 15:31:50 +0000 Subject: [PATCH 3/3] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 58cb7cc642..fc082393ac 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -1,7 +1,7 @@ [versions] -tangemBlockchainSdk = "release-app_5.22-987" +tangemBlockchainSdk = "develop-989" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "release-app_5.22-440" +tangemCardSdk = "develop-444" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem-developments8" #tangemVico = "0.0.1" # Keep it! - used for local builds ^