diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt index 4fecdc2d67..924c7f2e1a 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt @@ -33,7 +33,7 @@ internal class DefaultLearn2earnInteractor( private val webViewUriBuilder: WebViewUriBuilder by lazy { WebViewUriBuilder( authCredentialsProvider = dependencyProvider.getWebViewAuthCredentialsProvider(), - userCountryCodeProvider = dependencyProvider.getLocaleProvider(), + localeLanguageProvider = dependencyProvider.getLocaleProvider(), promoCodeProvider = { repository.getUserData().promoCode }, ) } diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/WebViewUriBuilder.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/WebViewUriBuilder.kt index 0b2f6f6450..89ac185bcd 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/WebViewUriBuilder.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/WebViewUriBuilder.kt @@ -8,7 +8,7 @@ import com.tangem.feature.learn2earn.impl.BuildConfig */ internal class WebViewUriBuilder( private val authCredentialsProvider: () -> String?, - private val userCountryCodeProvider: () -> String, + private val localeLanguageProvider: () -> String, private val promoCodeProvider: () -> String?, ) { @@ -46,10 +46,19 @@ internal class WebViewUriBuilder( } else { authority(BASE_URL) } - appendPath(userCountryCodeProvider.invoke()) + appendPath(getLocaleLanguage(localeLanguageProvider.invoke())) appendPath(PATH_PROMOTION) } + // TODO: locale: This can be used by another feature. Move it to the appropriate location + private fun getLocaleLanguage(language: String): String { + return if (LOCALE_LANG_RU.equals(language, true) || LOCALE_LANG_BY.equals(language, true)) { + LOCALE_LANG_RU + } else { + LOCALE_LANG_EN + } + } + private companion object { const val SCHEME = "https" @@ -60,5 +69,9 @@ internal class WebViewUriBuilder( const val QUERY_EXISTED_CARD = "existed-card" const val DEV_BASE_URL = "devweb.tangem.com" + + const val LOCALE_LANG_RU = "ru" + const val LOCALE_LANG_BY = "by" + const val LOCALE_LANG_EN = "en" } } \ No newline at end of file diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt index ff443d1b04..a37a6a3427 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt @@ -6,12 +6,14 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.tangem.core.analytics.api.AnalyticsEventHandler +import com.tangem.core.ui.extensions.TextReference import com.tangem.feature.learn2earn.analytics.AnalyticsParam import com.tangem.feature.learn2earn.analytics.Learn2earnEvents import com.tangem.feature.learn2earn.domain.api.Learn2earnInteractor import com.tangem.feature.learn2earn.domain.api.WebViewResult import com.tangem.feature.learn2earn.domain.api.WebViewResultHandler import com.tangem.feature.learn2earn.domain.models.PromotionError +import com.tangem.feature.learn2earn.impl.R import com.tangem.feature.learn2earn.presentation.ui.state.* import com.tangem.lib.crypto.models.errors.UserCancelledException import com.tangem.utils.coroutines.AppCoroutineDispatcherProvider @@ -191,7 +193,7 @@ class Learn2earnViewModel @Inject constructor( .updateGetBonusVisibility(isVisible = false) } MainScreenState.Dialog.Error( - error = error, + textReference = TextReference.Str(error.description), onOk = onHideDialog, onDismissRequest = onHideDialog, ) @@ -199,7 +201,7 @@ class Learn2earnViewModel @Inject constructor( is PromotionError.UnknownError, PromotionError.NetworkUnreachable -> { val onHideDialog = { uiState = uiState.hideDialog() } MainScreenState.Dialog.Error( - error = error, + textReference = TextReference.Res(R.string.common_server_unavailable), onOk = onHideDialog, onDismissRequest = onHideDialog, ) diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt index 9a21f29231..3c855863ac 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt @@ -5,6 +5,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.tangem.core.ui.components.TextButton +import com.tangem.core.ui.extensions.resolveReference import com.tangem.feature.learn2earn.impl.R import com.tangem.feature.learn2earn.presentation.ui.state.MainScreenState @@ -72,7 +73,7 @@ private fun ErrorDialog(dialog: MainScreenState.Dialog.Error) { Text(text = stringResource(id = R.string.common_error)) }, text = { - Text(text = dialog.error.description) + Text(text = dialog.textReference.resolveReference()) }, confirmButton = { TextButton( diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/state/Learn2earnState.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/state/Learn2earnState.kt index 4ba08f14bb..4e0e2054cd 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/state/Learn2earnState.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/state/Learn2earnState.kt @@ -2,7 +2,6 @@ package com.tangem.feature.learn2earn.presentation.ui.state import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.WrappedList -import com.tangem.feature.learn2earn.domain.models.PromotionError import com.tangem.feature.learn2earn.impl.R /** @@ -62,7 +61,7 @@ data class MainScreenState( ) : Dialog() data class Error( - val error: PromotionError, + val textReference: TextReference, val onOk: () -> Unit, val onDismissRequest: () -> Unit, ) : Dialog() diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt index f88f31dd0d..40e8a9e775 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt @@ -36,6 +36,7 @@ class Learn2earnWebViewActivity : AppCompatActivity() { } } + @Suppress("TopLevelComposableFunctions") @Composable private fun ScreenContent(webViewData: WebViewData) { Column { @@ -47,7 +48,7 @@ class Learn2earnWebViewActivity : AppCompatActivity() { WebView( state = rememberWebViewState( url = webViewData.uri.toString(), - additionalHttpHeaders = webViewData.headers + additionalHttpHeaders = webViewData.headers, ), onCreated = { it.settings.apply {