Updated on 2026-08-14

This commit is contained in:
Tangem 2023-01-13 20:21:38 +04:00
parent b9083752c6
commit 76f955568e
18 changed files with 134 additions and 92 deletions

View file

@ -0,0 +1,20 @@
package com.tangem.tap.persistence
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import com.tangem.tap.common.analytics.events.AnalyticsParam
class CardBalanceStateAdapter {
@ToJson
fun toJson(src: AnalyticsParam.CardBalanceState): String = src.value
@FromJson
fun fromJson(json: String): AnalyticsParam.CardBalanceState {
return when (json) {
AnalyticsParam.CardBalanceState.Empty.value -> AnalyticsParam.CardBalanceState.Empty
AnalyticsParam.CardBalanceState.Full.value -> AnalyticsParam.CardBalanceState.Full
else -> throw IllegalArgumentException()
}
}
}

View file

@ -4,29 +4,35 @@ import android.app.Application
import android.content.Context
import android.content.SharedPreferences
import androidx.core.content.edit
import com.tangem.datasource.api.common.MoshiConverter
import com.tangem.common.json.MoshiJsonConverter
import com.tangem.datasource.api.common.BigDecimalAdapter
import java.util.*
class PreferencesStorage(applicationContext: Application) {
private val preferences: SharedPreferences =
applicationContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE)
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)
private val moshiConverter = MoshiJsonConverter(
adapters = listOf(BigDecimalAdapter(), CardBalanceStateAdapter()) + MoshiJsonConverter.getTangemSdkAdapters(),
typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters(),
)
init {
incrementLaunchCounter()
appRatingLaunchObserver = AppRatingLaunchObserver(preferences, getCountOfLaunches())
usedCardsPrefStorage = UsedCardsPrefStorage(preferences, MoshiConverter.INSTANCE)
usedCardsPrefStorage = UsedCardsPrefStorage(preferences, moshiConverter)
usedCardsPrefStorage.migrate()
fiatCurrenciesPrefStorage = FiatCurrenciesPrefStorage(preferences, MoshiConverter.INSTANCE)
fiatCurrenciesPrefStorage = FiatCurrenciesPrefStorage(preferences, moshiConverter)
fiatCurrenciesPrefStorage.migrate()
disclaimerPrefStorage = DisclaimerPrefStorage(preferences)
toppedUpWalletStorage = ToppedUpWalletStorage(preferences, MoshiConverter.INSTANCE)
toppedUpWalletStorage = ToppedUpWalletStorage(preferences, moshiConverter)
}
var chatFirstLaunchTime: Long?

View file

@ -2,10 +2,7 @@ package com.tangem.tap.persistence
import android.content.SharedPreferences
import androidx.core.content.edit
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import com.tangem.common.json.MoshiJsonConverter
import com.tangem.tap.common.analytics.events.AnalyticsParam
import com.tangem.tap.common.analytics.filters.BasicTopUpFilter
import timber.log.Timber
@ -59,18 +56,4 @@ class ToppedUpWalletStorage(
companion object {
private const val KEY = "userWalletsInfo"
}
}
class CardBalanceStateAdapter {
@ToJson
fun toJson(src: AnalyticsParam.CardBalanceState): String = src.value
@FromJson
fun fromJson(json: String): AnalyticsParam.CardBalanceState {
return when (json) {
AnalyticsParam.CardBalanceState.Empty.value -> AnalyticsParam.CardBalanceState.Empty
AnalyticsParam.CardBalanceState.Full.value -> AnalyticsParam.CardBalanceState.Full
else -> throw IllegalArgumentException()
}
}
}