From 90bfea9e4cee859a9c595ed47f1478dd04290dae Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 24 Nov 2022 16:21:05 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../main/java/com/tangem/tap/MainActivity.kt | 12 ----------- .../tap/common/redux/global/GlobalAction.kt | 3 --- .../tap/common/redux/global/GlobalReducer.kt | 20 ++++++++----------- .../tap/common/redux/global/GlobalState.kt | 9 --------- .../details/redux/DetailsMiddleware.kt | 19 ++---------------- .../features/wallet/models/WalletWarning.kt | 2 +- .../tap/features/wallet/redux/WalletState.kt | 2 +- .../wallet/ui/WalletWarningConverter.kt | 7 +++++-- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 11 +++++----- app/src/main/res/values-ru/strings.xml | 19 +++++++++--------- app/src/main/res/values/strings.xml | 13 ++++++------ .../main/res/values/strings_untranslated.xml | 18 ++++------------- 14 files changed, 41 insertions(+), 96 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index aa9e63c2dc..ad1892a9a5 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -19,8 +19,6 @@ import com.tangem.tap.common.IntentHandler import com.tangem.tap.common.OnActivityResultCallback import com.tangem.tap.common.SnackbarHandler import com.tangem.tap.common.redux.NotificationsHandler -import com.tangem.tap.common.redux.global.AndroidResources -import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.common.shop.GooglePayService @@ -70,7 +68,6 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac tangemSdkManager = TangemSdkManager(tangemSdk, this) backupService = BackupService.init(tangemSdk, this) - store.dispatch(GlobalAction.SetResources(getAndroidResources())) store.dispatch( ShopAction.CheckIfGooglePayAvailable( GooglePayService(createPaymentsClient(this), this), @@ -78,15 +75,6 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac ) } - private fun getAndroidResources(): AndroidResources { - return AndroidResources( - AndroidResources.RString( - R.string.copy_toast_msg, - R.string.details_notification_erase_wallet_not_possible, - ), - ) - } - private fun systemActions() { WindowCompat.setDecorFitsSystemWindows(window, false) diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalAction.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalAction.kt index c1e6d85f11..d4c5620fb3 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalAction.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalAction.kt @@ -29,9 +29,6 @@ sealed class GlobalAction : Action { data class ShowErrorNotification(override val error: TapError) : GlobalAction(), ErrorAction data class DebugShowErrorNotification(override val error: TapError) : GlobalAction(), DebugErrorAction - // android resources - data class SetResources(val resources: AndroidResources) : GlobalAction() - // dialogs data class ShowDialog(val stateDialog: StateDialog) : GlobalAction() object HideDialog : GlobalAction() diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt index 820506ab18..8c04197c58 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt @@ -14,9 +14,6 @@ fun globalReducer(action: Action, state: AppState): GlobalState { val globalState = state.globalState return when (action) { - is GlobalAction.SetResources -> { - globalState.copy(resources = action.resources) - } is GlobalAction.Onboarding.Start -> { val usedCardsPrefStorage = preferencesStorage.usedCardsPrefStorage val onboardingManager = OnboardingManager(action.scanResponse, usedCardsPrefStorage) @@ -34,7 +31,7 @@ fun globalReducer(action: Action, state: AppState): GlobalState { is GlobalAction.ScanFailsCounter.Reset -> { globalState.copy(scanCardFailsCounter = 0) } - is GlobalAction.SaveScanNoteResponse ->{ + is GlobalAction.SaveScanNoteResponse -> { domainStore.dispatch(DomainGlobalAction.SaveScanNoteResponse(action.scanResponse)) globalState.copy(scanResponse = action.scanResponse) } @@ -51,11 +48,12 @@ fun globalReducer(action: Action, state: AppState): GlobalState { is GlobalAction.UpdateWalletSignedHashes -> { val card = globalState.scanResponse?.card ?: return globalState val wallet = card.wallet(action.walletPublicKey) ?: return globalState - - val newCardInstance = card.updateWallet(wallet.copy( - totalSignedHashes = action.walletSignedHashes, - remainingSignatures = action.remainingSignatures - )) + val newCardInstance = card.updateWallet( + wallet.copy( + totalSignedHashes = action.walletSignedHashes, + remainingSignatures = action.remainingSignatures, + ), + ) globalState.copy(scanResponse = globalState.scanResponse.copy(card = newCardInstance)) } is GlobalAction.SetFeedbackManager -> { @@ -72,9 +70,7 @@ fun globalReducer(action: Action, state: AppState): GlobalState { } is GlobalAction.SetIfCardVerifiedOnline -> globalState.copy(cardVerifiedOnline = action.verified) - is GlobalAction.FetchUserCountry.Success -> globalState.copy( - userCountryCode = action.countryCode - ) + is GlobalAction.FetchUserCountry.Success -> globalState.copy(userCountryCode = action.countryCode) else -> globalState } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt index 11c84ed856..b897f1b5dc 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt @@ -25,18 +25,9 @@ data class GlobalState( val scanCardFailsCounter: Int = 0, val dialog: StateDialog? = null, val exchangeManager: CurrencyExchangeManager = CurrencyExchangeManager.dummy(), - val resources: AndroidResources = AndroidResources(), val userCountryCode: String? = null, ) : StateType -data class AndroidResources( - val strings: RString = RString(), -) { - data class RString( - val addressWasCopied: Int = -1, - val walletIsNotEmpty: Int = -1, - ) -} typealias CryptoCurrencyName = String data class OnboardingState( diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index b316098ff4..88191c0ee4 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -7,7 +7,6 @@ import com.tangem.tap.common.analytics.Analytics import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.Settings import com.tangem.tap.common.extensions.dispatchDialogShow -import com.tangem.tap.common.extensions.dispatchNotification import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.redux.AppDialog import com.tangem.tap.common.redux.AppState @@ -18,7 +17,6 @@ import com.tangem.tap.domain.extensions.getUserWalletId import com.tangem.tap.features.demo.DemoHelper import com.tangem.tap.features.onboarding.products.twins.redux.CreateTwinWalletMode import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsAction -import com.tangem.tap.features.wallet.models.hasSendableAmountsOrPendingTransactions import com.tangem.tap.scope import com.tangem.tap.store import com.tangem.tap.tangemSdkManager @@ -56,21 +54,8 @@ class DetailsMiddleware { } } is DetailsAction.ReCreateTwinsWallet -> { - val wallet = - store.state.walletState.walletManagers.map { it.wallet }.firstOrNull() - if (wallet == null) { - store.dispatch(TwinCardsAction.SetMode(CreateTwinWalletMode.RecreateWallet)) - store.dispatch(NavigationAction.NavigateTo(AppScreen.OnboardingTwins)) - } else { - if (wallet.hasSendableAmountsOrPendingTransactions()) { - val walletIsNotEmpty = - store.state.globalState.resources.strings.walletIsNotEmpty - store.dispatchNotification(walletIsNotEmpty) - } else { - store.dispatch(TwinCardsAction.SetMode(CreateTwinWalletMode.RecreateWallet)) - store.dispatch(NavigationAction.NavigateTo(AppScreen.OnboardingTwins)) - } - } + store.dispatch(TwinCardsAction.SetMode(CreateTwinWalletMode.RecreateWallet)) + store.dispatch(NavigationAction.NavigateTo(AppScreen.OnboardingTwins)) } is DetailsAction.CreateBackup -> { store.state.detailsState.scanResponse?.let { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/models/WalletWarning.kt b/app/src/main/java/com/tangem/tap/features/wallet/models/WalletWarning.kt index 3b80a95845..e2709d2bb9 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/models/WalletWarning.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/models/WalletWarning.kt @@ -8,7 +8,7 @@ sealed class WalletWarning( val edStringValueWithSymbol: String, ) : WalletWarning(1) - object TransactionInProgress : WalletWarning(10) + data class TransactionInProgress(val currencyName: String) : WalletWarning(10) data class BalanceNotEnoughForFee(val blockchainFullName: String) : WalletWarning(30) data class Rent(val walletRent: WalletRent) : WalletWarning(40) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt index 6219fea552..dedbd21a08 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt @@ -350,7 +350,7 @@ data class WalletData( private fun assembleNonTypedWarnings(walletWarnings: MutableList) { if (currencyData.status == BalanceStatus.SameCurrencyTransactionInProgress) { - walletWarnings.add(WalletWarning.TransactionInProgress) + walletWarnings.add(WalletWarning.TransactionInProgress(currency.currencyName)) } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletWarningConverter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletWarningConverter.kt index 624d34da3e..799d029235 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletWarningConverter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletWarningConverter.kt @@ -27,8 +27,11 @@ class WalletWarningConverter( message.blockchainFullName, message.blockchainFullName, ) } - WalletWarning.TransactionInProgress -> { - context.getString(R.string.wallet_pending_transaction_warning) + is WalletWarning.TransactionInProgress -> { + context.getString( + R.string.token_details_send_blocked_tx_format, + message.currencyName + ) } is WalletWarning.Rent -> { context.getString( diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cf8a46c64c..4bdd650d4b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -174,7 +174,6 @@ RECHTLICHER HAFTUNGSAUSSCHLUSS Legen Sie die Karte zum Scannen an Legen Sie die Karte an - Ihr Kontostand in dieser Brieftasche ist nicht Null, oder Sie haben unbestätigte Transaktionen. Es ist unmöglich die Funktion der Brieftasche zu löschen. Dies ist die derzeit aktive Wahl diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d39650f3b7..2e751ab41c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -166,7 +166,6 @@ Avertissement Saisissez d\'abord le PayString requis Posez pour scanner Posez la carte - Votre solde sur ce portefeuille n\'est pas nul, ou vous avez des transactions non confirmées. Impossible de supprimer la fonction du portefeuille Cette option est déjà active diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7eba948ed7..1eecc8a9d4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -28,7 +28,7 @@ Il saldo sta per essere caricato… Blockchain non raggiungibile Conto non creato - Carica %1$s+ %2$s per creare un conto + Carica %s+ %s per creare un conto Carta vuota Crea un portafoglio per iniziare ad utilizzare la tua carta Tangem Questa carta non è supportata @@ -63,10 +63,10 @@ Normale Prioritario Includi commissione - Sarà inviato %1$s %2$s - ≈ %1$s (inc. commissione: %2$s) - Sarà inviato %1$s %2$s e %1$s %2$s - Saldo: %1$s %2$s + Sarà inviato %s %s + ≈ %s (inc. commissione: %s) + Sarà inviato %s %s e %s %s + Saldo: %s %s La transazione è stata firmata con successo e inviata al nodo blockchain. Il saldo del portafoglio verrà aggiornato dopo un po\' di tempo Requisiti ID carta @@ -174,7 +174,6 @@ Questa nota legale è stata modificata l\'ultima volta 01.10.2020. Avvicina per scansionare Avvicina la carta - Il tuo saldo su questo portafoglio non è pari a zero o hai transazioni non confermate. Non è possibile eliminare la funzione portafoglio. E\' l\'opzione attualmente attiva diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 41ae2c46a7..bded5827f5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -30,7 +30,7 @@ Загрузка баланса… Блокчейн недоступен Аккаунт не создан - Загрузите %1$s+ %2$s для создания учетной записи + Загрузите %s+ %s для создания учетной записи Карта пуста Создайте кошелек, чтобы начать пользоваться картой Tangem Эта карта не поддерживается @@ -64,10 +64,10 @@ Нормальный Приоритетный Включить коммисию - %1$s %2$s будет отправлено - ≈ %1$s (включая комиссию: %2$s) - %1$s %2$s и %3$s %4$s будут отправлены - Баланс: %1$s %2$s + %s %s будет отправлено + ≈ %s (включая комиссию: %s) + %s %s и %s %s будут отправлены + Баланс: %s %s Транзакция успешно подписана и отправлена в блокчейн. Баланс кошелька будет обновлен через некоторое время. Подробности ID карты @@ -114,7 +114,6 @@ Сначала введите желаемую PayString Приложите, чтобы отсканировать Приложите карту - Ваш баланс на этом кошельке не равен нулю, или у Вас есть неподтвержденные транзакции Это текущая активная опция Ошибка сканирования карты. Попробуй снова. Купить @@ -206,7 +205,7 @@ Копировать Поделиться + Добавить токены - Пожалуйста, дождитесь завершения транзакции, чтобы иметь возможность отправить средства + Пожалуйста, дождитесь завершения транзакции %s, чтобы иметь возможность отправить средства Проверка подлинности не удалась Эта карта может быть производственным образцом или подделкой Важная информация о безопасности \u26A0 @@ -319,11 +318,11 @@ Сброс до заводских настроек Код доступа доступен только для карт с резервной копией Сеть Solana взымает арендную плату в размере %s каждые 2 дня. Аккаунты, которые не могут позволить себе арендную плату, удаляются из сети. Пополните свой счет более чем на %s, чтобы использовать его бесплатно. - %1s (%2s) + %s (%s) Эта карта не является векселем на предъявителя. В настоящее время мы не можем сопоставить количество подписей на карте с информацией в блокчейне. Это нормально, но в редких случаях может означать, что предыдущий владелец скрывает автономную подпись, что является проблемой безопасности.\n\nНе принимайте эту карту в качестве физического платежа от кого-то, кому Вы не доверяете.\n\nВо всех остальных отношениях - это совершенно безопасно.\n\nTangem — единственный аппаратный кошелек, предлагающий защиту от подсчета подписей. WalletConnect - Запрос на создание транзакции для %1s\n%2s\n\nСумма: %3s\nКомиссия: %4s\nВсего: %5s\nБаланс: %6s - Запрос на запуск сеанса для %1s\n\nURL: %2s + Запрос на создание транзакции для %s\n%s\n\nСумма: %s\nКомиссия: %s\nВсего: %s\nБаланс: %s + Запрос на запуск сеанса для %s\n\nURL: %s Сессии WalletConnect Сеанс WalletConnect открыт с %s Упс. Нет сессий. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2c1ebffd92..b4476d5d6e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,7 +36,7 @@ Blockchain is unreachable Account is not created - Load %1$s+ %2$s to create account + Load %s+ %s to create account Empty card Create wallet to start using Tangem card This card is not supported @@ -74,10 +74,10 @@ Normal Priority Include fee - %1$s %2$s will be sent - ≈ %1$s (inc. fee: %2$s) - %1$s %2$s and %3$s %4$s will be sent - Balance: %1$s %2$s + %s %s will be sent + ≈ %s (inc. fee: %s) + %s %s and %s %s will be sent + Balance: %s %s Transaction has been successfully signed and sent to blockchain node. Wallet balance will be updated in a while Details @@ -168,7 +168,7 @@ \nThis disclaimer was amended for the last time on October 1st, 2020. Terms of service - No internet connection + No internet connection PayString verification failed PayString unsupported by blockchain @@ -185,6 +185,5 @@ Tap to scan Tap the card - Your balance on this wallet is not zero, or you have unconfirmed transactions This is the currently active option diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml index 153f80c666..ee8cbaff9d 100644 --- a/app/src/main/res/values/strings_untranslated.xml +++ b/app/src/main/res/values/strings_untranslated.xml @@ -105,7 +105,7 @@ Copy Share + Add tokens - Please wait for the transaction to complete to be able to send funds + Please wait for %s transaction to complete to be able to send funds Authenticity check failed This card might be a production sample or counterfeit @@ -132,21 +132,11 @@ Card: %s Tap card to bind to wallet connect - - Request to create transaction for %1s - \n%2s - - \n\nAmount: %3s - \nFee: %4s - \nTotal: %5s - \nBalance: %6s + Request to create transaction for %s\n%s\n\nAmount: %s\nFee: %s\nTotal: %s\nBalance: %s Can\'t send transaction. Not enough funds. - Request to start a session for %1s\n\n - - URL: %2s - + Request to start a session for %s\n\nURL: %s Requesting to sign a message\n Message for %s:\n%s @@ -309,7 +299,7 @@ Amount to pay: %s Solana network charges a rent of %s every 2 days. Accounts that can\'t afford the rent are purged from the network. Deposit your account with more than %s to use it for free. - %1s (%2s) + %s (%s) Type here to search My suggestions