From 555be3d3e47130dc147382d443e708d38c506cf5 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Dec 2020 17:29:07 +0300 Subject: [PATCH 1/2] Updated on 2026-08-14 --- .../com/tangem/tap/features/wallet/ui/BalanceWidget.kt | 10 ++++++++-- .../tangem/tap/features/wallet/ui/WalletFragment.kt | 10 ++++++++-- app/src/main/res/values/strings.xml | 6 +++--- app/src/main/res/values/strings_untranslated.xml | 4 ++++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt index cc65bff46d..ce7fec6959 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt @@ -40,6 +40,7 @@ data class TokenData( class BalanceWidget( val fragment: Fragment, val data: BalanceWidgetData, + val isTwinCard: Boolean, ) { fun setup() { @@ -100,8 +101,13 @@ class BalanceWidget( BalanceStatus.EmptyCard -> { fragment.l_balance.hide() fragment.l_balance_error.show() - fragment.tv_error_title.text = fragment.getText(R.string.wallet_error_empty_card) - fragment.tv_error_descriptions.text = fragment.getText(R.string.wallet_error_empty_card_subtitle) + if (isTwinCard) { + fragment.tv_error_title.text = fragment.getText(R.string.wallet_error_empty_twin_card) + fragment.tv_error_descriptions.text = fragment.getText(R.string.wallet_error_empty_twin_card_subtitle) + } else { + fragment.tv_error_title.text = fragment.getText(R.string.wallet_error_empty_card) + fragment.tv_error_descriptions.text = fragment.getText(R.string.wallet_error_empty_card_subtitle) + } } BalanceStatus.NoAccount -> { fragment.l_balance.hide() diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt index 20db7eb00e..464764cf68 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt @@ -132,7 +132,7 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber R.string.wallet_button_send - is WalletMainButton.CreateWalletButton -> R.string.wallet_button_create_wallet + is WalletMainButton.CreateWalletButton -> { + if (state.twinCardsState == null) { + R.string.wallet_button_create_wallet + } else { + R.string.wallet_button_create_twin_wallet + } + } } btnConfirm.text = getString(buttonTitle) btnConfirm.isEnabled = state.mainButton.enabled diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6fe394b9ea..c90c4534da 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,7 +25,7 @@ Scan Send - Create twin wallet + Create wallet Tangem Tap Choice wallet option @@ -37,8 +37,8 @@ Account is not created Load %1$s+ %2$s to create account - Create twin wallet - Generate wallet keys on both cards to start using your Twins + Empty card + Create wallet to start using Tangem card This card is not supported Your Tangem card was made to work with a different application. Please see the name and instructions on your card, and install the correct app diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml index f1597e5c14..617d2759dc 100644 --- a/app/src/main/res/values/strings_untranslated.xml +++ b/app/src/main/res/values/strings_untranslated.xml @@ -4,6 +4,10 @@ Compatibility Legacy + Create twin wallet + Create twin wallet + Generate wallet keys on both cards to start using your Twins + Tangem Twin One wallet. Two cards. This one that you are holding in your hands From f59c35616ef92134298d0a9f6305b8803a8664bb Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Dec 2020 17:52:19 +0300 Subject: [PATCH 2/2] Updated on 2026-08-14 --- .../java/com/tangem/tap/domain/twins/TwinsHelper.kt | 12 +++++++++--- .../wallet/ui/dialogs/TwinsOnboardingFragment.kt | 6 ++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinsHelper.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinsHelper.kt index 32cbc3153f..a1ca7dcc53 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinsHelper.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinsHelper.kt @@ -38,6 +38,14 @@ class TwinsHelper { return cardIdWithoutChecksum + checkSum } + fun getTwinCardIdForUser(cardId: String): String { + if (cardId.length < 16) return cardId + + val twinCardId = cardId.substring(11..14) + val twinCardNumber = getTwinCardNumber(cardId)?.number ?: 1 + return "$twinCardId #$twinCardNumber" + } + private val firstCardSeries = listOf("CB61", "CB64") private val secondCardSeries = listOf("CB62", "CB65") } @@ -72,7 +80,5 @@ fun Card.isTwinCard(): Boolean { } fun Card.getTwinCardIdForUser(): String { - val twinCardId = this.cardId.substring(11..14) - val twinCardNumber = TwinsHelper.getTwinCardNumber(this.cardId)?.number ?: 1 - return "$twinCardId #$twinCardNumber" + return TwinsHelper.getTwinCardIdForUser(this.cardId) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/TwinsOnboardingFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/TwinsOnboardingFragment.kt index dde5046558..a20b06aa72 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/TwinsOnboardingFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/TwinsOnboardingFragment.kt @@ -8,6 +8,7 @@ import androidx.transition.TransitionInflater import com.squareup.picasso.Picasso import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction +import com.tangem.tap.domain.twins.TwinsHelper import com.tangem.tap.features.wallet.redux.Artwork import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.store @@ -34,8 +35,9 @@ class TwinsOnboardingFragment : Fragment(R.layout.fragment_twin_cards) { store.dispatch(WalletAction.TwinsAction.SetOnboardingShown) - val secondCardId = store.state.walletState.twinCardsState?.secondCardId - val text = getString(R.string.twins_onboarding_description_format, secondCardId) + val secondCardId = store.state.walletState.twinCardsState?.secondCardId ?: "" + val secondTwinCardId = TwinsHelper.getTwinCardIdForUser(secondCardId) + val text = getString(R.string.twins_onboarding_description_format, secondTwinCardId) tv_twin_cards_description_1.text = text setOnClickListeners()