Updated on 2026-08-14

This commit is contained in:
Tangem 2025-09-23 18:02:14 +05:00
parent 4032360f13
commit 4dc6dffd67
16 changed files with 381 additions and 50 deletions

View file

@ -9,6 +9,7 @@ import com.tangem.data.tokens.repository.DefaultCurrenciesRepository
import com.tangem.data.tokens.repository.DefaultCurrencyChecksRepository
import com.tangem.data.tokens.repository.DefaultPolkadotAccountHealthCheckRepository
import com.tangem.data.tokens.repository.DefaultTokenReceiveWarningsViewedRepository
import com.tangem.data.tokens.repository.DefaultYieldSupplyWarningsViewedRepository
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.exchangeservice.swap.ExpressServiceLoader
import com.tangem.datasource.local.preferences.AppPreferencesStore
@ -19,6 +20,7 @@ import com.tangem.domain.tokens.repository.CurrenciesRepository
import com.tangem.domain.tokens.repository.CurrencyChecksRepository
import com.tangem.domain.tokens.repository.PolkadotAccountHealthCheckRepository
import com.tangem.domain.tokens.repository.TokenReceiveWarningsViewedRepository
import com.tangem.domain.tokens.repository.YieldSupplyWarningsViewedRepository
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
@ -96,4 +98,16 @@ internal object TokensDataModule {
tokenReceiveWarningActionStore = tokenReceiveWarningActionStore,
)
}
@Provides
@Singleton
fun provideDefaultYieldSupplyWarningsViewedRepository(
appPreferencesStore: AppPreferencesStore,
dispatchers: CoroutineDispatcherProvider,
): YieldSupplyWarningsViewedRepository {
return DefaultYieldSupplyWarningsViewedRepository(
appPreferencesStore = appPreferencesStore,
dispatchers = dispatchers,
)
}
}

View file

@ -0,0 +1,36 @@
package com.tangem.data.tokens.repository
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.datasource.local.preferences.PreferencesKeys
import com.tangem.datasource.local.preferences.utils.getObjectSet
import com.tangem.domain.tokens.repository.YieldSupplyWarningsViewedRepository
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.withContext
internal class DefaultYieldSupplyWarningsViewedRepository(
private val appPreferencesStore: AppPreferencesStore,
private val dispatchers: CoroutineDispatcherProvider,
) : YieldSupplyWarningsViewedRepository {
override suspend fun getViewedWarnings(): Set<String> = withContext(dispatchers.io) {
appPreferencesStore.getObjectSet<String>(PreferencesKeys.YIELD_SUPPLY_WARNINGS_STATES_KEY).firstOrNull()
?: emptySet()
}
override suspend fun view(symbol: String) = withContext(dispatchers.io) {
appPreferencesStore.editData { mutablePreferences ->
val stored = mutablePreferences.getObjectSet<String>(
PreferencesKeys.YIELD_SUPPLY_WARNINGS_STATES_KEY,
) ?: mutableSetOf()
val updated = stored + symbol
mutablePreferences.setObjectSet<String>(
key = PreferencesKeys.YIELD_SUPPLY_WARNINGS_STATES_KEY,
value = updated,
)
}
return@withContext
}
}