From 5f1e59aae0cf8ac00ce0da01aba819777515278e Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Aug 2024 16:11:46 +0300 Subject: [PATCH 1/7] Updated on 2026-08-14 --- app/src/main/res/layout/activity_main.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e9709bfd8b..5f2471ff8b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,6 +2,7 @@ + android:layout_height="match_parent" + android:background="@color/background_primary"> \ No newline at end of file From a6bafca10e6d7e258f462c129ac4944ac3e894f1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Aug 2024 15:24:30 +0400 Subject: [PATCH 2/7] Updated on 2026-08-14 --- features/swap/presentation/build.gradle.kts | 1 + .../com/tangem/feature/swap/router/SwapRouter.kt | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/features/swap/presentation/build.gradle.kts b/features/swap/presentation/build.gradle.kts index c41603a025..bea28f028c 100644 --- a/features/swap/presentation/build.gradle.kts +++ b/features/swap/presentation/build.gradle.kts @@ -21,6 +21,7 @@ dependencies { implementation(projects.core.ui) implementation(projects.common.routing) implementation(projects.common.ui) + implementation(projects.core.decompose) // For Route supertype /** Domain modules **/ implementation(projects.domain.appCurrency) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt index bc5009da3c..19b2c2dca6 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt @@ -33,12 +33,18 @@ internal class SwapRouter( } fun openTokenDetails(userWalletId: UserWalletId, currency: CryptoCurrency) { - router.push( - AppRoute.CurrencyDetails( - userWalletId = userWalletId, - currency = currency, - ), + val route = AppRoute.CurrencyDetails( + userWalletId = userWalletId, + currency = currency, ) + + if (route in router.stack) { + router.popTo(route) + } else { + router.pop { + router.push(route) + } + } } } From 81562fc4f9c8233b12161e84092709d8b46784b4 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Aug 2024 15:31:53 +0400 Subject: [PATCH 3/7] Updated on 2026-08-14 --- .../tangem/tap/features/onboarding/OnboardingHelper.kt | 4 ++-- .../tap/features/saveWallet/redux/SaveWalletMiddleware.kt | 8 +++++--- .../tap/features/welcome/redux/WelcomeMiddleware.kt | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt index 404a469233..bc085c6dca 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingHelper.kt @@ -112,14 +112,14 @@ object OnboardingHelper { backupCardsIds = backupCardsIds?.toSet(), ), ) - store.dispatchNavigationAction { push(AppRoute.Wallet) } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } delay(timeMillis = 1_800) store.dispatchNavigationAction { push(AppRoute.SaveWallet) } } // If device has no biometry and save wallet screen has been shown, then go through old scenario else -> { proceedWithScanResponse(scanResponse, backupCardsIds, hasBackupError) - store.dispatchNavigationAction { push(AppRoute.Wallet) } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } } } } diff --git a/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt index f1b43ae123..7cb2506f8e 100644 --- a/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt @@ -4,7 +4,6 @@ import com.tangem.common.* import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.guard import com.tangem.common.routing.AppRoute -import com.tangem.common.routing.utils.popTo import com.tangem.core.analytics.Analytics import com.tangem.domain.wallets.builder.UserWalletBuilder import com.tangem.domain.wallets.models.UserWallet @@ -12,7 +11,10 @@ import com.tangem.tap.* import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.MainScreen import com.tangem.tap.common.analytics.events.Onboarding -import com.tangem.tap.common.extensions.* +import com.tangem.tap.common.extensions.dispatchNavigationAction +import com.tangem.tap.common.extensions.dispatchWithMain +import com.tangem.tap.common.extensions.inject +import com.tangem.tap.common.extensions.onUserWalletSelected import com.tangem.tap.common.redux.AppState import com.tangem.tap.proxy.redux.DaggerGraphState import com.tangem.utils.coroutines.JobHolder @@ -124,7 +126,7 @@ internal class SaveWalletMiddleware { ) store.dispatchWithMain(SaveWalletAction.AllowToUseBiometrics.Success) - store.dispatchNavigationAction { popTo() } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } } private fun dismiss(state: SaveWalletState) { diff --git a/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt index 2a564e8a0d..8bd3ee34fc 100644 --- a/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt @@ -99,7 +99,7 @@ internal class WelcomeMiddleware { signInType = Basic.SignedIn.SignInType.Biometric, ) - store.dispatchNavigationAction { push(AppRoute.Wallet) } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } store.dispatchWithMain(WelcomeAction.ProceedWithBiometrics.Success) store.onUserWalletSelected(userWallet = selectedUserWallet) @@ -131,7 +131,7 @@ internal class WelcomeMiddleware { .doOnSuccess { sendSignedInAnalyticsEvent(scanResponse = scanResponse, signInType = Basic.SignedIn.SignInType.Card) - store.dispatchNavigationAction { push(AppRoute.Wallet) } + store.dispatchNavigationAction { replaceAll(AppRoute.Wallet) } store.dispatchWithMain(WelcomeAction.ProceedWithCard.Success) store.onUserWalletSelected(userWallet = userWallet) From 20d40e18613feafe472992819ba1ec4aaf5aa6da Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Aug 2024 16:57:02 +0400 Subject: [PATCH 4/7] Updated on 2026-08-14 --- .../viewmodels/TokensListMigration.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListMigration.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListMigration.kt index 41495924b3..ac028fde72 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListMigration.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListMigration.kt @@ -4,7 +4,6 @@ import arrow.core.Either import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.Token import com.tangem.common.routing.AppRoute -import com.tangem.common.routing.utils.popTo import com.tangem.data.tokens.utils.CryptoCurrencyFactory import com.tangem.domain.card.DerivePublicKeysUseCase import com.tangem.domain.common.util.derivationStyleProvider @@ -126,7 +125,7 @@ internal class TokensListMigration( val isNothingToDoWithBlockchain = blockchainsToAdd.isEmpty() && blockchainsToRemove.isEmpty() if (isNothingToDoWithTokens && isNothingToDoWithBlockchain) { store.dispatchDebugErrorNotification(message = "Nothing to save") - store.dispatchNavigationAction { popTo() } + navigateToWallet() return } @@ -135,11 +134,23 @@ internal class TokensListMigration( derivePublicKeysUseCase(userWalletId = currentUserWallet.walletId, currencies = currencyList) .onRight { addCryptoCurrenciesUseCase(userWalletId = currentUserWallet.walletId, currencies = currencyList) - store.dispatchNavigationAction { popTo() } + navigateToWallet() } .onLeft { Timber.e(it, "Failed to derive public keys") } } + private fun navigateToWallet() { + store.dispatchNavigationAction { + val route = AppRoute.Wallet + + if (route in stack) { + popTo(route) + } else { + replaceAll(route) + } + } + } + private suspend fun removeCurrenciesIfNeeded(userWalletId: UserWalletId, currencies: List) { if (currencies.isEmpty()) return val currenciesRepository = store.inject(DaggerGraphState::currenciesRepository) From 94eef952560e1685c3f7656ba9aa2a72f84add7e Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 15 Aug 2024 15:33:26 +0300 Subject: [PATCH 5/7] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 13ed958b5f..e103fdef6e 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdown = "0.7.2" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.13-732" +tangemBlockchainSdk = "release-app_5.13-737" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.13-376" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From e90bbf22ec1421ed3bf02f25665335c306b13383 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 15 Aug 2024 19:58:01 +0300 Subject: [PATCH 6/7] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index e103fdef6e..b536883c87 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdown = "0.7.2" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.13-737" +tangemBlockchainSdk = "release-app_5.13-738" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.13-376" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From e4c639095441f5f2140e84caeac847ae747835be Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 16 Aug 2024 12:22:37 +0300 Subject: [PATCH 7/7] Updated on 2026-08-14 --- core/res/src/main/res/values-ru/strings.xml | 2 +- core/res/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index f7c6ecf61c..33413d2fb5 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -135,7 +135,7 @@ Переименовать Сохранить Сохранить изменения - Поиск на маркете + Поиск Поиск токенов Seed-фраза Выберите действие diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index 5a4b8c08bb..16dcf0b043 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -133,7 +133,7 @@ Rename Save Save changes - Search through the market + Search Search tokens Seed phrase Select action