From cc1b9636d2537628e3f1175a019be81cfe4d73dd Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 19 Feb 2021 10:47:44 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/domain/termsOfUse/TermsOfUse.kt | 52 +++++++++++++++++++ .../features/details/redux/DetailsAction.kt | 2 + .../features/details/redux/DetailsReducer.kt | 3 +- .../features/details/redux/DetailsState.kt | 3 +- .../features/details/ui/DetailsFragment.kt | 9 ++++ .../tap/features/send/ui/SendFragment.kt | 3 ++ .../tap/features/wallet/ui/WalletFragment.kt | 2 + app/src/main/res/layout/fragment_details.xml | 17 +++++- .../main/res/values/strings_untranslated.xml | 1 + 9 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/tangem/tap/domain/termsOfUse/TermsOfUse.kt diff --git a/app/src/main/java/com/tangem/tap/domain/termsOfUse/TermsOfUse.kt b/app/src/main/java/com/tangem/tap/domain/termsOfUse/TermsOfUse.kt new file mode 100644 index 0000000000..7facc2c92f --- /dev/null +++ b/app/src/main/java/com/tangem/tap/domain/termsOfUse/TermsOfUse.kt @@ -0,0 +1,52 @@ +package com.tangem.tap.domain.termsOfUse + +import android.content.res.Resources +import androidx.core.os.ConfigurationCompat +import java.util.* + +/** +[REDACTED_AUTHOR] + */ +class TermsOfUse { + val locale: Locale = ConfigurationCompat.getLocales(Resources.getSystem().configuration).get(0) + + fun getUrl(cardId: String): String? { + val terms = CardTermsFactory.create(cardId) ?: return null + + return terms.getUrl(locale.country) + } +} + +class CardTermsOfUse( + private val urlsByRegion: Map, + private val defaultRegion: String, +) { + + fun getUrl(region: String): String? { + return urlsByRegion[region.toLowerCase()] ?: urlsByRegion[defaultRegion] + } +} + + +class CardTermsFactory { + companion object { + + fun create(cardId: String): CardTermsOfUse? { + val batch = cardId.substring(0..3) + + return when (batch) { + "CB05" -> { + CardTermsOfUse( + mapOf( + "ru" to "https://yandex.ru/", + "en" to "https://www.google.com/", + "fr" to "https://www.qwant.com", + ), + "ru" + ) + } + else -> null + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt index 2ec73c0f00..14fc7582a8 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt @@ -6,6 +6,7 @@ import com.tangem.commands.common.card.Card import com.tangem.tap.common.redux.NotificationAction import com.tangem.tap.common.redux.global.FiatCurrencyName import com.tangem.tap.domain.tasks.ScanNoteResponse +import com.tangem.tap.domain.termsOfUse.TermsOfUse import com.tangem.tap.domain.twins.TwinCardNumber import com.tangem.tap.features.details.redux.twins.CreateTwinWallet import com.tangem.tap.network.coinmarketcap.FiatCurrency @@ -19,6 +20,7 @@ sealed class DetailsAction : Action { val scanNoteResponse: ScanNoteResponse, val wallet: Wallet?, val isCreatingTwinWalletAllowed: Boolean?, + val termsOfUse: TermsOfUse, val fiatCurrencyName: FiatCurrencyName, val fiatCurrencies: List? = null, ) : DetailsAction() diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index 805d31f8c9..c26028d141 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -73,7 +73,8 @@ private fun handlePrepareScreen(action: DetailsAction.PrepareScreen, state: Deta action.fiatCurrencyName ), securityScreenState = SecurityScreenState(currentOption = securityOption), - createTwinWalletState = twinsState + createTwinWalletState = twinsState, + cardTermsOfUseUrl = action.termsOfUse.getUrl(action.card.cardId) ) } diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt index 4730507ebc..774ecfd6c6 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt @@ -18,7 +18,8 @@ data class DetailsState( val eraseWalletState: EraseWalletState? = null, val confirmScreenState: ConfirmScreenState? = null, val securityScreenState: SecurityScreenState? = null, - val createTwinWalletState: CreateTwinWalletState? = null + val createTwinWalletState: CreateTwinWalletState? = null, + val cardTermsOfUseUrl: String? = null ) : StateType data class CardInfo( diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt index 262482b360..caa9780539 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/DetailsFragment.kt @@ -1,5 +1,7 @@ package com.tangem.tap.features.details.ui +import android.content.Intent +import android.net.Uri import android.os.Bundle import android.view.View import androidx.activity.OnBackPressedCallback @@ -80,6 +82,13 @@ class DetailsFragment : Fragment(R.layout.fragment_details), StoreSubscriber + + + app:layout_constraintTop_toBottomOf="@id/tv_card_tou" /> Invalid destination tag. It won\'t be added to the transaction Invalid Memo ID. It won\'t be added to the transaction + Terms of use