Updated on 2026-08-14
This commit is contained in:
parent
d55166393e
commit
299117f8c4
13 changed files with 252 additions and 16 deletions
|
|
@ -5,6 +5,7 @@ import androidx.annotation.ChecksSdkIntAtLeast
|
|||
import com.tangem.datasource.local.preferences.AppPreferencesStore
|
||||
import com.tangem.datasource.local.preferences.PreferencesKeys
|
||||
import com.tangem.datasource.local.preferences.utils.getObjectMap
|
||||
import com.tangem.datasource.local.preferences.utils.getObjectMapSync
|
||||
import com.tangem.domain.hotwallet.repository.HotWalletRepository
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
@ -34,4 +35,79 @@ internal class DefaultHotWalletRepository(
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun shouldShowUpgradeBanner(userWalletId: UserWalletId): Flow<Boolean> = appPreferencesStore
|
||||
.getObjectMap<Boolean>(PreferencesKeys.SHOULD_SHOW_UPGRADE_BANNER_KEY)
|
||||
.map { it[userWalletId.stringValue] == true }
|
||||
|
||||
override suspend fun setShouldShowUpgradeBanner(userWalletId: UserWalletId, shouldShow: Boolean) {
|
||||
appPreferencesStore.editData { mutablePreferences ->
|
||||
mutablePreferences.setObjectMap(
|
||||
key = PreferencesKeys.SHOULD_SHOW_UPGRADE_BANNER_KEY,
|
||||
value = mutablePreferences.getObjectMap<Boolean>(PreferencesKeys.SHOULD_SHOW_UPGRADE_BANNER_KEY)
|
||||
.plus(userWalletId.stringValue to shouldShow),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun shouldShowNextTimeUpgradeBanner(userWalletId: UserWalletId): Flow<Boolean> = appPreferencesStore
|
||||
.getObjectMap<Boolean>(PreferencesKeys.SHOULD_SHOW_NEXT_TIME_UPGRADE_BANNER_KEY)
|
||||
.map { it[userWalletId.stringValue] == true }
|
||||
|
||||
override suspend fun setShouldShowNextTimeUpgradeBanner(userWalletId: UserWalletId, shouldShow: Boolean) {
|
||||
appPreferencesStore.editData { mutablePreferences ->
|
||||
mutablePreferences.setObjectMap(
|
||||
key = PreferencesKeys.SHOULD_SHOW_NEXT_TIME_UPGRADE_BANNER_KEY,
|
||||
value = mutablePreferences.getObjectMap<Boolean>(
|
||||
PreferencesKeys.SHOULD_SHOW_NEXT_TIME_UPGRADE_BANNER_KEY,
|
||||
)
|
||||
.plus(userWalletId.stringValue to shouldShow),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun getUpgradeBannerClosureTimestamp(userWalletId: UserWalletId): Long? {
|
||||
return appPreferencesStore
|
||||
.getObjectMapSync<Long>(PreferencesKeys.UPGRADE_BANNER_CLOSURE_TIMESTAMP_KEY)[userWalletId.stringValue]
|
||||
}
|
||||
|
||||
override suspend fun setUpgradeBannerClosureTimestamp(userWalletId: UserWalletId, timestamp: Long) {
|
||||
appPreferencesStore.editData { mutablePreferences ->
|
||||
mutablePreferences.setObjectMap(
|
||||
key = PreferencesKeys.UPGRADE_BANNER_CLOSURE_TIMESTAMP_KEY,
|
||||
value = mutablePreferences.getObjectMap<Long>(PreferencesKeys.UPGRADE_BANNER_CLOSURE_TIMESTAMP_KEY)
|
||||
.plus(userWalletId.stringValue to timestamp),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun getWalletCreationTimestamp(userWalletId: UserWalletId): Long? {
|
||||
return appPreferencesStore
|
||||
.getObjectMapSync<Long>(PreferencesKeys.WALLET_CREATION_TIMESTAMP_KEY)[userWalletId.stringValue]
|
||||
}
|
||||
|
||||
override suspend fun setWalletCreationTimestamp(userWalletId: UserWalletId, timestamp: Long) {
|
||||
appPreferencesStore.editData { mutablePreferences ->
|
||||
mutablePreferences.setObjectMap(
|
||||
key = PreferencesKeys.WALLET_CREATION_TIMESTAMP_KEY,
|
||||
value = mutablePreferences.getObjectMap<Long>(PreferencesKeys.WALLET_CREATION_TIMESTAMP_KEY)
|
||||
.plus(userWalletId.stringValue to timestamp),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun hasHadFirstTopUp(userWalletId: UserWalletId): Boolean {
|
||||
return appPreferencesStore
|
||||
.getObjectMapSync<Boolean>(PreferencesKeys.HAS_HAD_FIRST_TOP_UP_KEY)[userWalletId.stringValue] == true
|
||||
}
|
||||
|
||||
override suspend fun setHasHadFirstTopUp(userWalletId: UserWalletId, hasTopUp: Boolean) {
|
||||
appPreferencesStore.editData { mutablePreferences ->
|
||||
mutablePreferences.setObjectMap(
|
||||
key = PreferencesKeys.HAS_HAD_FIRST_TOP_UP_KEY,
|
||||
value = mutablePreferences.getObjectMap<Boolean>(PreferencesKeys.HAS_HAD_FIRST_TOP_UP_KEY)
|
||||
.plus(userWalletId.stringValue to hasTopUp),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue