From 975e404db73f31fbe1ad60e10a0af8f616918956 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 21 Nov 2023 12:57:08 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../common/analytics/events/AnalyticsParam.kt | 3 ++- .../tangem/tap/common/entities/FiatCurrency.kt | 18 ------------------ .../tap/common/redux/global/GlobalAction.kt | 6 +++--- .../common/redux/global/GlobalMiddleware.kt | 5 ++--- .../tap/common/redux/global/GlobalState.kt | 4 ++-- .../features/details/redux/DetailsAction.kt | 6 +++--- .../details/redux/DetailsMiddleware.kt | 4 ++-- .../features/details/redux/DetailsReducer.kt | 6 +++--- .../tap/features/details/redux/DetailsState.kt | 4 ++-- .../ui/appsettings/AppSettingsViewModel.kt | 6 ++---- .../features/send/redux/states/SendState.kt | 4 ++-- .../tap/features/send/ui/SendFragment.kt | 4 ++-- .../com/tangem/tap/proxy/AppStateHolder.kt | 4 ++-- 13 files changed, 27 insertions(+), 47 deletions(-) delete mode 100644 app/src/main/java/com/tangem/tap/common/entities/FiatCurrency.kt diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt index e3195c7e34..d9c94bd1f9 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt @@ -1,6 +1,7 @@ package com.tangem.tap.common.analytics.events import com.tangem.domain.apptheme.model.AppThemeMode +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.tap.features.details.redux.SecurityOption sealed class AnalyticsParam { @@ -9,7 +10,7 @@ sealed class AnalyticsParam { class Currency(currency: com.tangem.tap.features.wallet.models.Currency) : CurrencyType(currency.currencySymbol) class Blockchain(blockchain: com.tangem.blockchain.common.Blockchain) : CurrencyType(blockchain.currency) class Token(token: com.tangem.blockchain.common.Token) : CurrencyType(token.symbol) - class FiatCurrency(fiatCurrency: com.tangem.tap.common.entities.FiatCurrency) : CurrencyType(fiatCurrency.code) + class FiatCurrency(fiatCurrency: AppCurrency) : CurrencyType(fiatCurrency.code) class Amount(amount: com.tangem.blockchain.common.Amount) : CurrencyType(amount.currencySymbol) } diff --git a/app/src/main/java/com/tangem/tap/common/entities/FiatCurrency.kt b/app/src/main/java/com/tangem/tap/common/entities/FiatCurrency.kt deleted file mode 100644 index c0df80eb2a..0000000000 --- a/app/src/main/java/com/tangem/tap/common/entities/FiatCurrency.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.tangem.tap.common.entities - -data class FiatCurrency( - val code: String, - val name: String, - val symbol: String, -) { - val displayName: String - get() = "${this.name} (${this.code}) - ${this.symbol}" - - companion object { - val Default = FiatCurrency( - symbol = "$", - code = "USD", - name = "US Dollar", - ) - } -} \ No newline at end of file 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 acc2ecb36b..908af4cb56 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 @@ -5,10 +5,10 @@ import com.tangem.common.CompletionResult import com.tangem.core.navigation.StateDialog import com.tangem.datasource.config.ConfigManager import com.tangem.datasource.config.models.ChatConfig +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.wallets.legacy.UserWalletsListManager -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.feedback.FeedbackData import com.tangem.tap.common.feedback.FeedbackManager import com.tangem.tap.common.redux.DebugErrorAction @@ -60,9 +60,9 @@ sealed class GlobalAction : Action { data class SetIfCardVerifiedOnline(val verified: Boolean) : GlobalAction() - data class ChangeAppCurrency(val appCurrency: FiatCurrency) : GlobalAction() + data class ChangeAppCurrency(val appCurrency: AppCurrency) : GlobalAction() object RestoreAppCurrency : GlobalAction() { - data class Success(val appCurrency: FiatCurrency) : GlobalAction() + data class Success(val appCurrency: AppCurrency) : GlobalAction() } data class UpdateWalletSignedHashes( diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt index 88b5bac5ae..bd43cec216 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt @@ -6,11 +6,11 @@ import com.tangem.common.extensions.guard import com.tangem.core.analytics.Analytics import com.tangem.core.navigation.StateDialog import com.tangem.datasource.config.models.Config +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.common.LogConfig import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.ScanResponse import com.tangem.tap.common.analytics.events.Basic -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.dispatchDebugErrorNotification import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchOnMain @@ -191,8 +191,7 @@ private fun restoreAppCurrency() { val currency = store.state.daggerGraphState.get(DaggerGraphState::appCurrencyRepository) .getSelectedAppCurrency() .firstOrNull() - ?.run { FiatCurrency(code, name, symbol) } - ?: FiatCurrency.Default + ?: AppCurrency.Default store.dispatchWithMain(GlobalAction.RestoreAppCurrency.Success(currency)) } 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 dd6530b9d7..5cdc02d930 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 @@ -2,10 +2,10 @@ package com.tangem.tap.common.redux.global import com.tangem.core.navigation.StateDialog import com.tangem.datasource.config.ConfigManager +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.wallets.legacy.UserWalletsListManager -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.feedback.FeedbackManager import com.tangem.tap.domain.TapWalletManager import com.tangem.tap.domain.configurable.warningMessage.WarningMessagesManager @@ -22,7 +22,7 @@ data class GlobalState( val configManager: ConfigManager? = null, val warningManager: WarningMessagesManager? = null, val feedbackManager: FeedbackManager? = null, - val appCurrency: FiatCurrency = FiatCurrency.Default, + val appCurrency: AppCurrency = AppCurrency.Default, val scanCardFailsCounter: Int = 0, val dialog: StateDialog? = null, val exchangeManager: CurrencyExchangeManager = CurrencyExchangeManager.dummy(), diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt index fe5e31ca84..627b9bf0d5 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt @@ -2,11 +2,11 @@ package com.tangem.tap.features.details.redux import androidx.lifecycle.LifecycleCoroutineScope import com.tangem.core.ui.extensions.TextReference +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.domain.common.CardTypesResolver import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.ScanResponse -import com.tangem.tap.common.entities.FiatCurrency import org.rekotlin.Action sealed class DetailsAction : Action { @@ -91,9 +91,9 @@ sealed class DetailsAction : Action { ) : AppSettings() data class ChangeAppCurrency( - val fiatCurrency: FiatCurrency, + val currency: AppCurrency, ) : AppSettings() } - data class ChangeAppCurrency(val fiatCurrency: FiatCurrency) : DetailsAction() + data class ChangeAppCurrency(val currency: AppCurrency) : DetailsAction() } \ No newline at end of file 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 fa10156fe6..5227e7c22f 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 @@ -231,8 +231,8 @@ class DetailsMiddleware { changeBalanceHiding(action.hideBalance) } is DetailsAction.AppSettings.ChangeAppCurrency -> { - store.dispatch(GlobalAction.ChangeAppCurrency(action.fiatCurrency)) - store.dispatch(DetailsAction.ChangeAppCurrency(action.fiatCurrency)) + store.dispatch(GlobalAction.ChangeAppCurrency(action.currency)) + store.dispatch(DetailsAction.ChangeAppCurrency(action.currency)) } is DetailsAction.AppSettings.SwitchPrivacySetting.Success, is DetailsAction.AppSettings.SwitchPrivacySetting.Failure, diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index 3b77867e00..e6098d1dc9 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -45,7 +45,7 @@ private fun internalReduce(action: Action, state: AppState): DetailsState { } is DetailsAction.ChangeAppCurrency -> detailsState.copy( appSettingsState = detailsState.appSettingsState.copy( - selectedFiatCurrency = action.fiatCurrency, + selectedAppCurrency = action.currency, ), ) is DetailsAction.AccessCodeRecovery -> handleAccessCodeRecoveryAction(action, detailsState) @@ -74,7 +74,7 @@ private fun handlePrepareScreen(action: DetailsAction.PrepareScreen): DetailsSta isBiometricsAvailable = tangemSdkManager.canUseBiometry, saveWallets = action.shouldSaveUserWallets, saveAccessCodes = preferencesStorage.shouldSaveAccessCodes, - selectedFiatCurrency = store.state.globalState.appCurrency, + selectedAppCurrency = store.state.globalState.appCurrency, selectedThemeMode = runBlocking { store.state.daggerGraphState .get { appThemeModeRepository }.getAppThemeMode().firstOrNull() ?: AppThemeMode.DEFAULT @@ -257,7 +257,7 @@ private fun handlePrivacyAction(action: DetailsAction.AppSettings, state: Detail ) is DetailsAction.AppSettings.ChangeAppCurrency -> state.copy( appSettingsState = state.appSettingsState.copy( - selectedFiatCurrency = action.fiatCurrency, + selectedAppCurrency = action.currency, ), ) is DetailsAction.AppSettings.ChangeBalanceHiding -> state.copy( diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt index 89ae6adef9..1eab7ec856 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt @@ -1,11 +1,11 @@ package com.tangem.tap.features.details.redux import com.tangem.core.ui.extensions.TextReference +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.ScanResponse import com.tangem.tap.common.entities.Button -import com.tangem.tap.common.entities.FiatCurrency import org.rekotlin.StateType import java.util.EnumSet @@ -62,7 +62,7 @@ data class AppSettingsState( val needEnrollBiometrics: Boolean = false, val isHidingEnabled: Boolean = false, val isInProgress: Boolean = false, - val selectedFiatCurrency: FiatCurrency = FiatCurrency.Default, + val selectedAppCurrency: AppCurrency = AppCurrency.Default, val selectedThemeMode: AppThemeMode = AppThemeMode.DEFAULT, ) diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt index 40377bb44e..575b49cb20 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt @@ -11,7 +11,6 @@ import com.tangem.domain.appcurrency.repository.AppCurrencyRepository import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.Settings -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.dispatchWithMain import com.tangem.tap.common.redux.AppState @@ -63,7 +62,7 @@ internal class AppSettingsViewModel( } itemsFactory.createSelectAppCurrencyButton( - currentAppCurrencyName = state.selectedFiatCurrency.name, + currentAppCurrencyName = state.selectedAppCurrency.name, onClick = ::showAppCurrencySelector, ).let(::add) @@ -179,8 +178,7 @@ internal class AppSettingsViewModel( .onEach { if (it.code == store.state.globalState.appCurrency.code) return@onEach - val fiatCurrency = with(it) { FiatCurrency(code, name, symbol) } - store.dispatchWithMain(DetailsAction.AppSettings.ChangeAppCurrency(fiatCurrency)) + store.dispatchWithMain(DetailsAction.AppSettings.ChangeAppCurrency(it)) } .launchIn(scope) .saveIn(appCurrencyUpdatesJobHolder) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt index c6284ad71d..589a563af2 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt @@ -5,8 +5,8 @@ import com.tangem.blockchain.common.AmountType import com.tangem.blockchain.common.WalletManager import com.tangem.common.extensions.isZero import com.tangem.core.navigation.StateDialog +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.tap.common.CurrencyConverter -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.entities.IndeterminateProgressButton import com.tangem.tap.common.text.DecimalDigitsInputFilter import com.tangem.tap.domain.TapError @@ -128,7 +128,7 @@ data class AmountState( val typeOfAmount: AmountType = AmountType.Coin, val viewAmountValue: InputViewValue = InputViewValue(BigDecimal.ZERO.toPlainString()), val viewBalanceValue: String = BigDecimal.ZERO.toPlainString(), - val mainCurrency: MainCurrency = MainCurrency(MainCurrencyType.FIAT, FiatCurrency.Default.code), + val mainCurrency: MainCurrency = MainCurrency(MainCurrencyType.FIAT, AppCurrency.Default.code), val amountToSendCrypto: BigDecimal = BigDecimal.ZERO, val balanceCrypto: BigDecimal = BigDecimal.ZERO, val hideBalance: Boolean = false, diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt index f2a6c77ccf..e491b1c0e5 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt @@ -19,11 +19,11 @@ import com.google.android.material.textfield.TextInputEditText import com.tangem.Message import com.tangem.core.analytics.Analytics import com.tangem.core.navigation.NavigationAction +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.legacy.TradeCryptoAction import com.tangem.sdk.extensions.hideSoftKeyboard import com.tangem.tap.common.KeyboardObserver import com.tangem.tap.common.analytics.events.Token -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.getFromClipboard import com.tangem.tap.common.extensions.setOnImeActionListener import com.tangem.tap.common.qrCodeScan.ScanQrCodeActivity @@ -328,7 +328,7 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { private fun restoreMainCurrency(): MainCurrencyType { val sp = requireContext().getSharedPreferences("SendScreen", Context.MODE_PRIVATE) - val mainCurrency = sp.getString("mainCurrency", FiatCurrency.Default.code) + val mainCurrency = sp.getString("mainCurrency", AppCurrency.Default.code) return MainCurrencyType.values() .firstOrNull { it.name.equals(mainCurrency!!, ignoreCase = true) } ?: MainCurrencyType.CRYPTO diff --git a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt index 49d3a7d9c8..e6527b0944 100644 --- a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt +++ b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt @@ -3,13 +3,13 @@ package com.tangem.tap.proxy import com.tangem.core.navigation.AppScreen import com.tangem.core.navigation.NavigationAction import com.tangem.core.navigation.ReduxNavController +import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.redux.ReduxStateHolder import com.tangem.domain.wallets.legacy.UserWalletsListManager import com.tangem.domain.wallets.legacy.WalletsStateHolder import com.tangem.domain.wallets.models.UserWallet -import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.onUserWalletSelected import com.tangem.tap.common.redux.AppState @@ -42,7 +42,7 @@ class AppStateHolder @Inject constructor() : WalletsStateHolder, ReduxNavControl var scanResponse: ScanResponse? = null var mainStore: Store? = null var tangemSdkManager: TangemSdkManager? = null - var appFiatCurrency: FiatCurrency = FiatCurrency.Default + var appFiatCurrency: AppCurrency = AppCurrency.Default var exchangeService: ExchangeService? = null fun getActualCard(): CardDTO? {