From ef3fd2969b3648552e8b734431068708187514ab Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Feb 2023 11:49:16 +0300 Subject: [PATCH 1/3] Updated on 2026-08-14 --- .../tap/features/details/ui/details/DetailsScreenState.kt | 2 +- .../tap/features/details/ui/details/DetailsViewModel.kt | 8 ++++---- .../datasource/api/tangemTech/models/ReferralResponse.kt | 1 - .../feature/referral/converters/ReferralConverter.kt | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt index ac69fe0ad8..6fd19bcb21 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreenState.kt @@ -23,7 +23,7 @@ enum class SettingsElement( WalletConnect(R.drawable.ic_walletconnect, R.string.wallet_connect_title), Chat(R.drawable.ic_chat, R.string.details_chat), SendFeedback(R.drawable.ic_comment, R.string.details_row_title_send_feedback), - // ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), + ReferralProgram(R.drawable.ic_add_friends, R.string.details_referral_title), CardSettings(R.drawable.ic_card_settings, R.string.card_settings_title), AppCurrency(R.drawable.ic_currency, R.string.details_row_title_currency), AppSettings(R.drawable.ic_settings, R.string.app_settings_title), diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt index cd4f28fe78..aa61cf31fc 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt @@ -39,7 +39,7 @@ class DetailsViewModel(private val store: Store) { } SettingsElement.AppSettings -> if (state.appSettingsState.isBiometricsAvailable) it else null SettingsElement.AppCurrency -> if (cardTypesResolver?.isMultiwalletAllowed() != true) it else null - // SettingsElement.ReferralProgram -> if (state.scanResponse?.card?.isTangemWallet == true) it else null + SettingsElement.ReferralProgram -> if (cardTypesResolver?.isTangemWallet() == true) it else null else -> it } } @@ -93,9 +93,9 @@ class DetailsViewModel(private val store: Store) { SettingsElement.PrivacyPolicy -> { // TODO: To be available later } - // SettingsElement.ReferralProgram -> { - // store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) - // } + SettingsElement.ReferralProgram -> { + store.dispatch(NavigationAction.NavigateTo(AppScreen.ReferralProgram)) + } } } diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/ReferralResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/ReferralResponse.kt index 82a76a3ed4..712c98c40a 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/ReferralResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/ReferralResponse.kt @@ -12,7 +12,6 @@ data class ReferralResponse( ) { data class Conditions( - @Json(name = "award") val award: Int, @Json(name = "discount") val discount: Discount, @Json(name = "awards") val awards: List, @Json(name = "tosLink") val tosLink: String, diff --git a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt index f6a4242365..11ee37cff4 100644 --- a/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt +++ b/features/referral/data/src/main/java/com/tangem/feature/referral/converters/ReferralConverter.kt @@ -18,7 +18,7 @@ class ReferralConverter @Inject constructor() : Converter Date: Thu, 2 Feb 2023 21:29:48 +0800 Subject: [PATCH 2/3] Updated on 2026-08-14 --- buildSrc/src/main/java/Dependency.kt | 1 + buildSrc/src/main/java/Versions.kt | 2 +- .../referral/presentation/build.gradle.kts | 1 + .../ui/AgreementBottomSheetContent.kt | 24 +++++++------------ 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/buildSrc/src/main/java/Dependency.kt b/buildSrc/src/main/java/Dependency.kt index af09699d8f..eaf82306b2 100644 --- a/buildSrc/src/main/java/Dependency.kt +++ b/buildSrc/src/main/java/Dependency.kt @@ -31,6 +31,7 @@ object Library { const val accompanistAppCompatTheme = "com.google.accompanist:accompanist-appcompat-theme:" + Versions.accompanist const val accompanistSystemUiController = "com.google.accompanist:accompanist-systemuicontroller:" + Versions.accompanist + const val accompanistWebView = "com.google.accompanist:accompanist-webview:" + Versions.accompanist const val amplitude = "com.amplitude:android-sdk:" + Versions.amplitude const val appsflyer = "com.appsflyer:af-android-sdk:" + Versions.appsflyer const val armadillo = "at.favre.lib:armadillo:" + Versions.armadillo diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index 7a98a8bbb0..f01ebe5896 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -24,7 +24,7 @@ object Versions { // endregion Compose // region Other libraries - const val accompanist = "0.23.0" + const val accompanist = "0.27.1" const val amplitude = "2.36.1" const val appsflyer = "6.5.1" const val armadillo = "0.9.0" diff --git a/features/referral/presentation/build.gradle.kts b/features/referral/presentation/build.gradle.kts index f05c642d4c..7096e631c0 100644 --- a/features/referral/presentation/build.gradle.kts +++ b/features/referral/presentation/build.gradle.kts @@ -69,6 +69,7 @@ dependencies { /** Other libraries */ implementation(Library.composeShimmer) + implementation(Library.accompanistWebView) /** DI */ implementation(Library.hilt) diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt index f1e6813e12..2a1c5b1e86 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/AgreementBottomSheetContent.kt @@ -1,8 +1,5 @@ package com.tangem.feature.referral.ui -import android.view.ViewGroup.LayoutParams -import android.webkit.WebView -import android.webkit.WebViewClient import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -15,7 +12,8 @@ import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.viewinterop.AndroidView +import com.google.accompanist.web.WebView +import com.google.accompanist.web.rememberWebViewState import com.tangem.core.ui.components.appbar.AppBarWithAdditionalButtons import com.tangem.core.ui.components.atoms.Hand import com.tangem.core.ui.res.TangemTheme @@ -44,20 +42,16 @@ internal fun AgreementBottomSheetContent(url: String) { @Composable private fun AgreementHtmlView(url: String) { - AndroidView( + val state = rememberWebViewState(url) + WebView( + state = state, modifier = Modifier.background(TangemTheme.colors.background.secondary), - factory = { - WebView(it).apply { - layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) - webViewClient = WebViewClient() - settings.apply { - javaScriptEnabled = false - allowFileAccess = false - } - loadUrl(url) + onCreated = { + it.settings.apply { + javaScriptEnabled = false + allowFileAccess = false } }, - update = { it.loadUrl(url) }, ) } From 73aafe4d7bfcb1f79b598f95158da30d1614292c Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Feb 2023 17:35:19 +0300 Subject: [PATCH 3/3] Updated on 2026-08-14 --- .../java/com/tangem/feature/referral/ui/ReferralScreen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt index 5017af8c99..ce10a3e537 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/ui/ReferralScreen.kt @@ -67,6 +67,8 @@ import com.tangem.feature.referral.presentation.R import com.valentinilk.shimmer.shimmer import kotlinx.coroutines.launch +private const val GOOGLE_DOC_LINK_WRAPPER = "https://docs.google.com/viewer?url=%s&embedded=false" + /** * Referral program screen for participant and non-participant * @@ -85,8 +87,8 @@ internal fun ReferralScreen(stateHolder: ReferralStateHolder) { sheetContent = { AgreementBottomSheetContent( url = when (val state = stateHolder.referralInfoState) { - is ReferralInfoState.NonParticipantContent -> state.url - is ReferralInfoState.ParticipantContent -> state.url + is ReferralInfoState.NonParticipantContent -> String.format(GOOGLE_DOC_LINK_WRAPPER, state.url) + is ReferralInfoState.ParticipantContent -> String.format(GOOGLE_DOC_LINK_WRAPPER, state.url) is ReferralInfoState.Loading -> "" }, )