diff --git a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt index f3e0ead995..3d7221ff2d 100644 --- a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt +++ b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt @@ -32,10 +32,8 @@ import com.tangem.datasource.local.onramp.quotes.OnrampQuotesStore import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.preferences.PreferencesKeys import com.tangem.datasource.local.preferences.utils.getObject -import com.tangem.datasource.local.preferences.utils.getObjectSyncOrDefault import com.tangem.datasource.local.preferences.utils.getObjectSyncOrNull import com.tangem.datasource.local.preferences.utils.storeObject -import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.domain.onramp.model.* import com.tangem.domain.onramp.model.cache.OnrampTransaction import com.tangem.domain.onramp.model.error.OnrampError @@ -281,6 +279,7 @@ internal class DefaultOnrampRepository( userWalletId: UserWalletId, cryptoCurrency: CryptoCurrency, quote: OnrampProviderWithQuote.Data, + isDarkTheme: Boolean, ): OnrampTransaction = withContext(dispatchers.io) { try { val address = requireNotNull( @@ -306,7 +305,7 @@ internal class DefaultOnrampRepository( toAddress = address, redirectUrl = BuyCurrencyDeepLink.ONRAMP_REDIRECT_DEEPLINK, language = null, - theme = getTheme(), + theme = getTheme(isDarkTheme), requestId = requestId, ).bind() }, @@ -442,17 +441,10 @@ internal class DefaultOnrampRepository( ) } - private suspend fun getTheme(): String { - val appTheme = appPreferencesStore.getObjectSyncOrDefault( - key = PreferencesKeys.APP_THEME_MODE_KEY, - default = AppThemeMode.DEFAULT, - ) - return when (appTheme) { - AppThemeMode.FORCE_DARK -> PROVIDER_THEME_DARK - AppThemeMode.FORCE_LIGHT, - AppThemeMode.FOLLOW_SYSTEM, - -> PROVIDER_THEME_LIGHT - } + private fun getTheme(isDarkTheme: Boolean): String = if (isDarkTheme) { + PROVIDER_THEME_DARK + } else { + PROVIDER_THEME_LIGHT } private fun List.removeApplePay(): List = filterNot { it.id == "apple-pay" } diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampRedirectUrlUseCase.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampRedirectUrlUseCase.kt index 34bb9f5202..55ba74a5bf 100644 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampRedirectUrlUseCase.kt +++ b/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampRedirectUrlUseCase.kt @@ -19,12 +19,14 @@ class GetOnrampRedirectUrlUseCase( userWalletId: UserWalletId, quote: OnrampProviderWithQuote.Data, cryptoCurrency: CryptoCurrency, + isDarkTheme: Boolean, ): Either { return Either.catch { val transaction = repository.getOnrampData( userWalletId = userWalletId, cryptoCurrency = cryptoCurrency, quote = quote, + isDarkTheme = isDarkTheme, ) transactionRepository.storeTransaction(transaction) transaction.redirectUrl diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt index 87e9bff955..302a563b12 100644 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt +++ b/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt @@ -24,6 +24,7 @@ interface OnrampRepository { userWalletId: UserWalletId, cryptoCurrency: CryptoCurrency, quote: OnrampProviderWithQuote.Data, + isDarkTheme: Boolean, ): OnrampTransaction // cache diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/DefaultOnrampRedirectComponent.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/DefaultOnrampRedirectComponent.kt index 71cedbb3a5..17904c58e6 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/DefaultOnrampRedirectComponent.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/DefaultOnrampRedirectComponent.kt @@ -1,7 +1,9 @@ package com.tangem.features.onramp.redirect import androidx.activity.compose.BackHandler +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.model.getOrCreateModel @@ -22,6 +24,11 @@ internal class DefaultOnrampRedirectComponent @AssistedInject constructor( override fun Content(modifier: Modifier) { BackHandler(onBack = params.onBack) OnrampRedirectContent(modifier = modifier, state = model.state) + + val isDarkTheme = isSystemInDarkTheme() + LaunchedEffect(model.state) { + model.getRedirectUrl(isDarkTheme = isDarkTheme) + } } @AssistedFactory diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/model/OnrampRedirectModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/model/OnrampRedirectModel.kt index f15be660c5..0ce73d2372 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/model/OnrampRedirectModel.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/redirect/model/OnrampRedirectModel.kt @@ -62,16 +62,13 @@ internal class OnrampRedirectModel @Inject constructor( ), ) - init { - getRedirectUrl() - } - - private fun getRedirectUrl() { + fun getRedirectUrl(isDarkTheme: Boolean) { modelScope.launch { getOnrampRedirectUrlUseCase.invoke( userWalletId = params.userWalletId, quote = params.onrampProviderWithQuote, cryptoCurrency = params.cryptoCurrency, + isDarkTheme = isDarkTheme, ) .onLeft(::handleError) .onRight {