Updated on 2026-08-14

This commit is contained in:
Tangem 2021-10-31 17:38:30 +03:00
parent 262223b43d
commit 8d048abd51
5 changed files with 51 additions and 22 deletions

View file

@ -137,15 +137,24 @@ class OnboardingNoteFragment : BaseOnboardingFragment<OnboardingNoteState>() {
}
private fun setupTopUpWalletState(state: OnboardingNoteState) {
btn_main_action.setText(R.string.onboarding_top_up_button_but_crypto)
btn_main_action.setOnClickListener {
store.dispatch(OnboardingNoteAction.TopUp)
}
if (state.isBuyAllowed) {
btn_main_action.setText(R.string.onboarding_top_up_button_but_crypto)
btn_main_action.setOnClickListener {
store.dispatch(OnboardingNoteAction.TopUp)
}
btn_alternative_action.isVisible = true
btn_alternative_action.setText(R.string.onboarding_top_up_button_show_wallet_address)
btn_alternative_action.setOnClickListener {
store.dispatch(OnboardingNoteAction.ShowAddressInfoDialog)
btn_alternative_action.isVisible = true
btn_alternative_action.setText(R.string.onboarding_top_up_button_show_wallet_address)
btn_alternative_action.setOnClickListener {
store.dispatch(OnboardingNoteAction.ShowAddressInfoDialog)
}
} else {
btn_main_action.setText(R.string.onboarding_button_receive_crypto)
btn_main_action.setOnClickListener {
store.dispatch(OnboardingNoteAction.ShowAddressInfoDialog)
}
btn_alternative_action.isVisible = false
}
tv_header.setText(R.string.onboarding_top_up_header)

View file

@ -3,7 +3,9 @@ package com.tangem.tap.features.onboarding.products.note.redux
import com.tangem.blockchain.common.WalletManager
import com.tangem.tap.domain.TapError
import com.tangem.tap.features.onboarding.OnboardingWalletBalance
import com.tangem.tap.store
import org.rekotlin.StateType
import kotlin.properties.ReadOnlyProperty
/**
[REDACTED_AUTHOR]
@ -22,6 +24,10 @@ data class OnboardingNoteState(
val progress: Int
get() = steps.indexOf(currentStep)
val isBuyAllowed: Boolean by ReadOnlyProperty<Any, Boolean> { thisRef, property ->
store.state.globalState.moonPayUserStatus?.isBuyAllowed ?: false
}
}
enum class OnboardingNoteStep {

View file

@ -5,7 +5,9 @@ import com.tangem.tap.domain.TapError
import com.tangem.tap.domain.twins.TwinCardNumber
import com.tangem.tap.domain.twins.TwinCardsManager
import com.tangem.tap.features.onboarding.OnboardingWalletBalance
import com.tangem.tap.store
import org.rekotlin.StateType
import kotlin.properties.ReadOnlyProperty
/**
[REDACTED_AUTHOR]
@ -52,6 +54,10 @@ data class TwinCardsState(
val showAlert: Boolean
get() = currentStep == TwinCardsStep.CreateSecondWallet || currentStep == TwinCardsStep.CreateThirdWallet
val isBuyAllowed: Boolean by ReadOnlyProperty<Any, Boolean> { thisRef, property ->
store.state.globalState.moonPayUserStatus?.isBuyAllowed ?: false
}
}
enum class CreateTwinWalletMode { CreateWallet, RecreateWallet }

View file

@ -14,7 +14,6 @@ import com.tangem.blockchain.common.Blockchain
import com.tangem.common.extensions.VoidCallback
import com.tangem.tap.common.extensions.*
import com.tangem.tap.common.leapfrogWidget.LeapfrogWidget
import com.tangem.tap.common.postUi
import com.tangem.tap.common.redux.navigation.AppScreen
import com.tangem.tap.common.redux.navigation.NavigationAction
import com.tangem.tap.common.redux.navigation.ShareElement
@ -290,15 +289,24 @@ class TwinsCardsFragment : BaseOnboardingFragment<TwinCardsState>() {
}
}
btn_main_action.setText(R.string.onboarding_top_up_button_but_crypto)
btn_main_action.setOnClickListener {
store.dispatch(TwinCardsAction.TopUp)
}
if (state.isBuyAllowed) {
btn_main_action.setText(R.string.onboarding_top_up_button_but_crypto)
btn_main_action.setOnClickListener {
store.dispatch(TwinCardsAction.TopUp)
}
btn_alternative_action.isVisible = true
btn_alternative_action.setText(R.string.onboarding_top_up_button_show_wallet_address)
btn_alternative_action.setOnClickListener {
store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
btn_alternative_action.isVisible = true
btn_alternative_action.setText(R.string.onboarding_top_up_button_show_wallet_address)
btn_alternative_action.setOnClickListener {
store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
}
} else {
btn_main_action.setText(R.string.onboarding_button_receive_crypto)
btn_main_action.setOnClickListener {
store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
}
btn_alternative_action.isVisible = false
}
tv_header.setText(R.string.onboarding_top_up_header)
@ -306,13 +314,10 @@ class TwinsCardsFragment : BaseOnboardingFragment<TwinCardsState>() {
btnRefreshBalanceWidget.changeState(state.walletBalance.state)
if (btnRefreshBalanceWidget.isShowing != true) {
postUi(300) {
btnRefreshBalanceWidget.mainView.setOnClickListener {
store.dispatch(TwinCardsAction.Balance.Update)
}
btnRefreshBalanceWidget.mainView.setOnClickListener {
store.dispatch(TwinCardsAction.Balance.Update)
}
}
imv_card_background.setBackgroundDrawable(requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8))
updateConstraints(state.currentStep, R.layout.lp_onboarding_topup_wallet_twins)
}

View file

@ -176,6 +176,8 @@
<string name="onboarding_title" translatable="false">Activating card</string>
<string name="onboarding_button_what_does_it_mean" translatable="false">How it works?</string>
<string name="onboarding_button_receive_crypto" translatable="false">Receive crypto</string>
<string name="onboarding_create_wallet_header" translatable="false">Create a wallet</string>
<string name="onboarding_create_wallet_body" translatable="false">Lets generate all the keys on your card and create a secure wallet</string>
<string name="onboarding_create_wallet_button_create_wallet" translatable="false">Create wallet</string>
@ -195,6 +197,7 @@
<string name="onboarding_twins_interrupt_warning" translatable="false">If the process of re-creating the wallet gets interrupted in any way, youll have to start over.</string>
<string name="onboarding_error_create_primary_wallet" translatable="false">Internal error: can\'t create wallet manager</string>
<string name="wallet_balance_blockchain_unreachable_try_later" translatable="false">Blockchain is unreachable. Try later</string>