From 9a8ff1830d21c80e494594b02a8c9228331df977 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 21 Nov 2023 13:38:04 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../preferences/AppRatingLaunchObserver.kt | 73 ------------------- .../preferences/PreferencesDataSource.kt | 16 ---- .../preferences/model/DataSourceCurrency.kt | 10 --- .../model/DataSourceFiatCurrency.kt | 7 -- .../storage/FiatCurrenciesPrefStorage.kt | 56 -------------- .../storage/ToppedUpWalletStorage.kt | 58 --------------- 6 files changed, 220 deletions(-) delete mode 100644 data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/AppRatingLaunchObserver.kt delete mode 100644 data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceCurrency.kt delete mode 100644 data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceFiatCurrency.kt delete mode 100644 data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/FiatCurrenciesPrefStorage.kt delete mode 100644 data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/ToppedUpWalletStorage.kt diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/AppRatingLaunchObserver.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/AppRatingLaunchObserver.kt deleted file mode 100644 index d65eb3813b..0000000000 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/AppRatingLaunchObserver.kt +++ /dev/null @@ -1,73 +0,0 @@ -package com.tangem.data.source.preferences - -import android.content.SharedPreferences -import androidx.core.content.edit -import java.util.* - -@Deprecated("Create repository instead") -class AppRatingLaunchObserver internal constructor( - private val preferences: SharedPreferences, - private val launchCounts: Int, -) { - - private val deferShowing = 20 - private val firstShowing = 3 - private var fundsFoundDate: Calendar? = null - - init { - val msWhenFundsWasFound = preferences.getLong(K_FUNDS_FOUND_DATE, FUNDS_FOUND_DATE_UNDEFINED) - if (msWhenFundsWasFound != FUNDS_FOUND_DATE_UNDEFINED) { - fundsFoundDate = Calendar.getInstance().apply { timeInMillis = msWhenFundsWasFound } - } - } - - fun foundWalletWithFunds() { - if (fundsFoundDate != null) return - - fundsFoundDate = Calendar.getInstance() - preferences.edit(true) { - putLong(K_FUNDS_FOUND_DATE, fundsFoundDate!!.timeInMillis).apply() - putInt(K_SHOW_RATING_AT_LAUNCH_COUNT, launchCounts + firstShowing) - } - } - - fun isReadyToShow(): Boolean { - val fundsDate = fundsFoundDate ?: return false - - if (!userWasInteractWithRating()) { - val diff = Calendar.getInstance().timeInMillis - fundsDate.timeInMillis - val diffInDays = diff / DAY_MILLIS - return launchCounts >= getCounterOfNextShowing() && diffInDays >= firstShowing - } - - val nextShowing = getCounterOfNextShowing() - return launchCounts >= nextShowing - } - - fun applyDelayedShowing() { - updateNextShowing(launchCounts + deferShowing) - } - - fun setNeverToShow() { - updateNextShowing(Int.MAX_VALUE) - } - - private fun updateNextShowing(at: Int) { - val editor = preferences.edit() - editor.putInt(K_SHOW_RATING_AT_LAUNCH_COUNT, at) - editor.putBoolean(K_USER_WAS_INTERACT_WITH_RATING, true) - editor.apply() - } - - private fun userWasInteractWithRating(): Boolean = preferences.getBoolean(K_USER_WAS_INTERACT_WITH_RATING, false) - - private fun getCounterOfNextShowing(): Int = preferences.getInt(K_SHOW_RATING_AT_LAUNCH_COUNT, firstShowing) - - companion object { - private const val K_SHOW_RATING_AT_LAUNCH_COUNT = "showRatingDialogAtLaunchCount" - private const val K_FUNDS_FOUND_DATE = "fundsFoundDate" - private const val K_USER_WAS_INTERACT_WITH_RATING = "userWasInteractWithRating" - private const val FUNDS_FOUND_DATE_UNDEFINED = -1L - private const val DAY_MILLIS = 1000 * 60 * 60 * 24 - } -} \ No newline at end of file diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt index 5da77acb5b..02369ae294 100644 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt +++ b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/PreferencesDataSource.kt @@ -7,8 +7,6 @@ import com.tangem.common.json.MoshiJsonConverter import com.tangem.data.source.preferences.adapters.BigDecimalAdapter import com.tangem.data.source.preferences.adapters.CardBalanceStateAdapter import com.tangem.data.source.preferences.storage.DisclaimerPrefStorage -import com.tangem.data.source.preferences.storage.FiatCurrenciesPrefStorage -import com.tangem.data.source.preferences.storage.ToppedUpWalletStorage import com.tangem.data.source.preferences.storage.UsedCardsPrefStorage import javax.inject.Inject @@ -17,11 +15,8 @@ import javax.inject.Inject @Deprecated("Create repository instead") class PreferencesDataSource @Inject internal constructor(applicationContext: Context) { - val appRatingLaunchObserver: AppRatingLaunchObserver val usedCardsPrefStorage: UsedCardsPrefStorage - val fiatCurrenciesPrefStorage: FiatCurrenciesPrefStorage val disclaimerPrefStorage: DisclaimerPrefStorage - val toppedUpWalletStorage: ToppedUpWalletStorage private val preferences: SharedPreferences = applicationContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE) @@ -33,19 +28,11 @@ class PreferencesDataSource @Inject internal constructor(applicationContext: Con init { incrementLaunchCounter() - appRatingLaunchObserver = AppRatingLaunchObserver(preferences, getCountOfLaunches()) usedCardsPrefStorage = UsedCardsPrefStorage(preferences, moshiConverter) usedCardsPrefStorage.migrate() - fiatCurrenciesPrefStorage = FiatCurrenciesPrefStorage(preferences, moshiConverter) - fiatCurrenciesPrefStorage.migrate() disclaimerPrefStorage = DisclaimerPrefStorage(preferences) - toppedUpWalletStorage = ToppedUpWalletStorage(preferences, moshiConverter) } - var sprinklrFirstLaunchTime: Long? - get() = preferences.getLong(SPRINKLR_FIRST_LAUNCH_KEY, 0).takeIf { it != 0L } - set(value) = preferences.edit { putLong(SPRINKLR_FIRST_LAUNCH_KEY, value ?: 0) } - var shouldShowSaveUserWalletScreen: Boolean get() = preferences.getBoolean(SAVE_WALLET_DIALOG_SHOWN_KEY, true) set(value) = preferences.edit { @@ -78,8 +65,6 @@ class PreferencesDataSource @Inject internal constructor(applicationContext: Con return preferences.getBoolean(TWINS_ONBOARDING_SHOWN_KEY, false) } - private fun getCountOfLaunches(): Int = preferences.getInt(APP_LAUNCH_COUNT_KEY, 1) - private fun incrementLaunchCounter() { var count = preferences.getInt(APP_LAUNCH_COUNT_KEY, 0) preferences.edit { putInt(APP_LAUNCH_COUNT_KEY, ++count) } @@ -89,7 +74,6 @@ class PreferencesDataSource @Inject internal constructor(applicationContext: Con private const val PREFERENCES_NAME = "tapPrefs" private const val TWINS_ONBOARDING_SHOWN_KEY = "twinsOnboardingShown" private const val APP_LAUNCH_COUNT_KEY = "launchCount" - private const val SPRINKLR_FIRST_LAUNCH_KEY = "sprinklrFirstLaunch" private const val SAVE_WALLET_DIALOG_SHOWN_KEY = "saveUserWalletShown" private const val SAVE_ACCESS_CODES_KEY = "saveAccessCodes" private const val APPLICATION_STOPPED_KEY = "applicationStopped" diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceCurrency.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceCurrency.kt deleted file mode 100644 index 3a2efbcd50..0000000000 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceCurrency.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.tangem.data.source.preferences.model - -data class DataSourceCurrency( - val id: String, - val code: String, - val name: String, - val rateBTC: String, - val unit: String, - val type: String, -) \ No newline at end of file diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceFiatCurrency.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceFiatCurrency.kt deleted file mode 100644 index 9497c85988..0000000000 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/model/DataSourceFiatCurrency.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.tangem.data.source.preferences.model - -data class DataSourceFiatCurrency( - val code: String, - val name: String, - val symbol: String, -) \ No newline at end of file diff --git a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/FiatCurrenciesPrefStorage.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/FiatCurrenciesPrefStorage.kt deleted file mode 100644 index e30fdbbe48..0000000000 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/FiatCurrenciesPrefStorage.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.tangem.data.source.preferences.storage - -import android.content.SharedPreferences -import androidx.core.content.edit -import com.tangem.common.json.MoshiJsonConverter -import com.tangem.data.source.preferences.model.DataSourceCurrency -import com.tangem.data.source.preferences.model.DataSourceFiatCurrency - -/** -[REDACTED_AUTHOR] - */ -@Deprecated("Create repository instead") -class FiatCurrenciesPrefStorage internal constructor( - private val preferences: SharedPreferences, - private val converter: MoshiJsonConverter, -) { - fun migrate() { - preferences.edit(true) { - remove(FIAT_CURRENCIES_KEY_OLD) - remove(APP_CURRENCY_KEY_OLD) - } - } - - fun getAppCurrency(): DataSourceFiatCurrency? { - val json = preferences.getString(APP_CURRENCY_KEY, "") - if (json.isNullOrBlank()) return null - - return converter.fromJson(json) - } - - fun saveAppCurrency(fiatCurrency: DataSourceFiatCurrency) { - 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() - } - - fun restore(): List { - val json = preferences.getString(FIAT_CURRENCIES_KEY, "") - val type = converter.typedList(DataSourceCurrency::class.java) - if (json.isNullOrBlank()) return emptyList() - - 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/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/ToppedUpWalletStorage.kt b/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/ToppedUpWalletStorage.kt deleted file mode 100644 index 14b1e77b7f..0000000000 --- a/data/source/preferences/src/main/kotlin/com/tangem/data/source/preferences/storage/ToppedUpWalletStorage.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.tangem.data.source.preferences.storage - -import android.content.SharedPreferences -import androidx.core.content.edit -import com.tangem.common.json.MoshiJsonConverter -import com.tangem.data.source.preferences.model.DataSourceTopupInfo - -/** -[REDACTED_AUTHOR] - */ -@Deprecated("Create repository instead") -class ToppedUpWalletStorage internal constructor( - private val preferences: SharedPreferences, - private val jsonConverter: MoshiJsonConverter, -) { - - private val walletList: MutableSet = mutableSetOf() - - init { - walletList.addAll(restore()) - } - - fun save(userWalletInfo: DataSourceTopupInfo): Boolean { - walletList.removeAll { it.walletId == userWalletInfo.walletId } - walletList.add(userWalletInfo) - return save(walletList) - } - - fun restore(walletId: String): DataSourceTopupInfo? { - return walletList.firstOrNull { it.walletId == walletId } - } - - private fun save(userWallets: MutableSet): Boolean { - return try { - val json = jsonConverter.toJson(userWallets) - preferences.edit(true) { putString(KEY, json) } - true - } catch (ex: Exception) { - false - } - } - - private fun restore(): MutableSet { - val json = preferences.getString(KEY, null) ?: return mutableSetOf() - return try { - val typedList = jsonConverter.typedList(DataSourceTopupInfo::class.java) - val listData = jsonConverter.fromJson>(json, typedList)!! - listData.toMutableSet() - } catch (ex: Exception) { - preferences.edit(true) { remove(KEY) } - mutableSetOf() - } - } - - companion object { - private const val KEY = "userWalletsInfo" - } -} \ No newline at end of file