diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMidlleware.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMidlleware.kt index 722fe8a067..75dccd51ab 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMidlleware.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMidlleware.kt @@ -45,7 +45,7 @@ private val globalMiddlewareHandler: Middleware = { dispatch, appState } is GlobalAction.RestoreAppCurrency -> { store.dispatch(GlobalAction.RestoreAppCurrency.Success( - preferencesStorage.getAppCurrency() + preferencesStorage.fiatCurrenciesPrefStorage.getAppCurrency() )) } is GlobalAction.HideWarningMessage -> { diff --git a/app/src/main/java/com/tangem/tap/persistence/FiatCurrenciesPrefStorage.kt b/app/src/main/java/com/tangem/tap/persistence/FiatCurrenciesPrefStorage.kt index 3af9991f25..50a8859516 100644 --- a/app/src/main/java/com/tangem/tap/persistence/FiatCurrenciesPrefStorage.kt +++ b/app/src/main/java/com/tangem/tap/persistence/FiatCurrenciesPrefStorage.kt @@ -4,6 +4,7 @@ import android.content.SharedPreferences import androidx.core.content.edit import com.tangem.common.json.MoshiJsonConverter import com.tangem.network.api.tangemTech.CurrenciesResponse +import com.tangem.tap.common.entities.FiatCurrency /** [REDACTED_AUTHOR] @@ -12,15 +13,25 @@ class FiatCurrenciesPrefStorage( private val preferences: SharedPreferences, private val converter: MoshiJsonConverter, ) { - private val FIAT_CURRENCIES_KEY_OLD = "fiatCurrencies" - private val FIAT_CURRENCIES_KEY = "fiatCurrencies_v2" - fun migrate() { preferences.edit(true) { remove(FIAT_CURRENCIES_KEY_OLD) + remove(APP_CURRENCY_KEY_OLD) } } + fun getAppCurrency(): FiatCurrency { + val json = preferences.getString(APP_CURRENCY_KEY, "") + if (json.isNullOrBlank()) return FiatCurrency.Default + + return converter.fromJson(json) ?: FiatCurrency.Default + } + + fun saveAppCurrency(fiatCurrency: FiatCurrency) { + val json = converter.toJson(fiatCurrency) + preferences.edit { putString(APP_CURRENCY_KEY, json) } + } + fun save(currencies: List) { val json: String = converter.toJson(currencies) return preferences.edit().putString(FIAT_CURRENCIES_KEY, json).apply() @@ -33,4 +44,12 @@ class FiatCurrenciesPrefStorage( return converter.fromJson(json, type) ?: emptyList() } + + companion object { + private const val FIAT_CURRENCIES_KEY_OLD = "fiatCurrencies" + private const val APP_CURRENCY_KEY_OLD = "appCurrency" + + private const val FIAT_CURRENCIES_KEY = "fiatCurrencies_v2" + private const val APP_CURRENCY_KEY = "appCurrency_v2" + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt b/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt index edc53e26fb..f676467852 100644 --- a/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt +++ b/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt @@ -5,8 +5,6 @@ import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit import com.tangem.common.json.MoshiJsonConverter -import com.tangem.tap.common.entities.TapCurrency.Companion.DEFAULT_FIAT_CURRENCY -import com.tangem.tap.common.redux.global.FiatCurrencyName import java.util.* @@ -27,15 +25,6 @@ class PreferencesStorage(applicationContext: Application) { fiatCurrenciesPrefStorage.migrate() } - fun getAppCurrency(): FiatCurrencyName { - return preferences.getString(APP_CURRENCY_KEY, DEFAULT_FIAT_CURRENCY) - ?: DEFAULT_FIAT_CURRENCY - } - - fun saveAppCurrency(fiatCurrencyName: FiatCurrencyName) { - preferences.edit { putString(APP_CURRENCY_KEY, fiatCurrencyName) } - } - fun getCountOfLaunches(): Int = preferences.getInt(APP_LAUNCH_COUNT_KEY, 1) @Deprecated("Use UsedCardsPrefStorage instead") @@ -74,7 +63,6 @@ class PreferencesStorage(applicationContext: Application) { companion object { private const val PREFERENCES_NAME = "tapPrefs" - private const val APP_CURRENCY_KEY = "appCurrency" private const val DISCLAIMER_ACCEPTED_KEY = "disclaimerAccepted" private const val TWINS_ONBOARDING_SHOWN_KEY = "twinsOnboardingShown" private const val APP_LAUNCH_COUNT_KEY = "launchCount"