Updated on 2026-08-14
This commit is contained in:
parent
eef1ee2d24
commit
de890421cb
12 changed files with 94 additions and 32 deletions
|
|
@ -1,7 +1,9 @@
|
|||
package com.tangem.feature.learn2earn.domain
|
||||
|
||||
import android.net.Uri
|
||||
import com.tangem.common.Provider
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.data.common.locale.LocaleProvider
|
||||
import com.tangem.datasource.api.promotion.models.PromotionInfoResponse
|
||||
import com.tangem.datasource.demo.DemoModeDatasource
|
||||
import com.tangem.feature.learn2earn.analytics.AnalyticsParam
|
||||
|
|
@ -35,6 +37,7 @@ internal class DefaultLearn2earnInteractor(
|
|||
private val repository: Learn2earnRepository,
|
||||
private val userWalletManager: UserWalletManager,
|
||||
private val derivationManager: DerivationManager,
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val analytics: AnalyticsEventHandler,
|
||||
private val demoModeDatasource: DemoModeDatasource,
|
||||
private val dependencyProvider: Learn2earnDependencyProvider,
|
||||
|
|
@ -57,8 +60,8 @@ internal class DefaultLearn2earnInteractor(
|
|||
private val webViewUriBuilder: WebViewUriBuilder by lazy {
|
||||
WebViewUriBuilder(
|
||||
authCredentialsProvider = dependencyProvider.getWebViewAuthCredentialsProvider(),
|
||||
localeLanguageProvider = dependencyProvider.getLocaleProvider(),
|
||||
promoCodeProvider = { promoUserData.promoCode },
|
||||
localeProvider = localeProvider,
|
||||
promoCodeProvider = Provider { promoUserData.promoCode },
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
package com.tangem.feature.learn2earn.domain
|
||||
|
||||
import android.net.Uri
|
||||
import com.tangem.common.Provider
|
||||
import com.tangem.data.common.locale.LocaleProvider
|
||||
import com.tangem.feature.learn2earn.impl.BuildConfig
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal class WebViewUriBuilder(
|
||||
private val authCredentialsProvider: () -> String?,
|
||||
private val localeLanguageProvider: () -> String,
|
||||
private val promoCodeProvider: () -> String?,
|
||||
private val authCredentialsProvider: Provider<String?>,
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val promoCodeProvider: Provider<String?>,
|
||||
) {
|
||||
|
||||
fun buildUriForNewUser(learningIsFinished: Boolean): Uri {
|
||||
|
|
@ -46,20 +48,11 @@ internal class WebViewUriBuilder(
|
|||
} else {
|
||||
authority(BASE_URL)
|
||||
}
|
||||
appendPath(getLocaleLanguage(localeLanguageProvider.invoke()))
|
||||
appendPath(localeProvider.getWebUriLocaleLanguage())
|
||||
appendPath(PATH_PROMOTION)
|
||||
appendQueryParameter(QUERY_FINISHED, learningIsFinished.toString())
|
||||
}
|
||||
|
||||
// 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"
|
||||
|
||||
|
|
@ -71,9 +64,5 @@ internal class WebViewUriBuilder(
|
|||
const val QUERY_FINISHED = "finished"
|
||||
|
||||
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"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.feature.learn2earn.domain.api
|
||||
|
||||
import com.tangem.common.Provider
|
||||
import com.tangem.domain.common.CardTypesResolver
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
|
|
@ -12,7 +13,5 @@ interface Learn2earnDependencyProvider {
|
|||
|
||||
fun getCardTypeResolverFlow(): Flow<CardTypesResolver?>
|
||||
|
||||
fun getLocaleProvider(): () -> String
|
||||
|
||||
fun getWebViewAuthCredentialsProvider(): () -> String?
|
||||
fun getWebViewAuthCredentialsProvider(): Provider<String?>
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.tangem.feature.learn2earn.domain.di
|
|||
import android.content.Context
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
import com.tangem.data.common.locale.LocaleProvider
|
||||
import com.tangem.datasource.demo.DemoModeDatasource
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnRepository
|
||||
import com.tangem.feature.learn2earn.data.toggles.DefaultLearn2earnFeatureToggleManager
|
||||
|
|
@ -45,8 +46,9 @@ internal class Learn2earnDomainModule {
|
|||
repository: Learn2earnRepository,
|
||||
dependencyProvider: Learn2earnDependencyProvider,
|
||||
userWalletManager: UserWalletManager,
|
||||
analyticsEventHandler: AnalyticsEventHandler,
|
||||
derivationManager: DerivationManager,
|
||||
localeProvider: LocaleProvider,
|
||||
analyticsEventHandler: AnalyticsEventHandler,
|
||||
demoModeDatasource: DemoModeDatasource,
|
||||
dispatchers: AppCoroutineDispatcherProvider,
|
||||
): Learn2earnInteractor {
|
||||
|
|
@ -55,6 +57,7 @@ internal class Learn2earnDomainModule {
|
|||
repository = repository,
|
||||
userWalletManager = userWalletManager,
|
||||
derivationManager = derivationManager,
|
||||
localeProvider = localeProvider,
|
||||
analytics = analyticsEventHandler,
|
||||
demoModeDatasource = demoModeDatasource,
|
||||
dependencyProvider = dependencyProvider,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue