diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index ba5af7a4ce..c914631447 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -84,9 +84,9 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt
index a81bc28e87..a54a27bd28 100644
--- a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt
+++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt
@@ -1,19 +1,14 @@
package com.tangem.tap.features.onboarding.products.note
-import android.graphics.Bitmap
-import android.graphics.drawable.BitmapDrawable
import android.os.Bundle
import android.view.View
import android.view.animation.OvershootInterpolator
-import android.widget.ImageView
import androidx.annotation.LayoutRes
import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.view.isVisible
import androidx.transition.TransitionManager
import coil.load
import com.tangem.blockchain.common.Blockchain
-import com.tangem.tangem_sdk_new.extensions.fadeIn
-import com.tangem.tangem_sdk_new.extensions.fadeOut
import com.tangem.tap.common.extensions.getDrawableCompat
import com.tangem.tap.common.extensions.stripZeroPlainString
import com.tangem.tap.common.redux.navigation.ShareElement
@@ -33,23 +28,18 @@ import com.tangem.wallet.R
class OnboardingNoteFragment : BaseOnboardingFragment() {
private var previousStep: OnboardingNoteStep = OnboardingNoteStep.None
+ private val mainBinding by lazy { binding.vMain }
private lateinit var btnRefreshBalanceWidget: RefreshBalanceWidget
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- postponeEnterTransition()
- }
-
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
addBackPressHandler(this)
- binding.onboardingTopContainer.imvFrontCard.transitionName = ShareElement.imvFrontCard
- startPostponedEnterTransition()
+ mainBinding.onboardingTopContainer.imvFrontCard.transitionName = ShareElement.imvFrontCard
binding.toolbar.setTitle(R.string.onboarding_title)
- btnRefreshBalanceWidget = RefreshBalanceWidget(binding.onboardingTopContainer.onboardingWalletContainer)
+ btnRefreshBalanceWidget = RefreshBalanceWidget(mainBinding.onboardingTopContainer.onboardingWalletContainer)
store.dispatch(OnboardingNoteAction.LoadCardArtwork)
store.dispatch(OnboardingNoteAction.DetermineStepOfScreen)
@@ -67,7 +57,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
override fun newState(state: OnboardingNoteState) {
if (activity == null || view == null) return
- binding.onboardingTopContainer.imvFrontCard.load(state.cardArtworkUrl) {
+ mainBinding.onboardingTopContainer.imvFrontCard.load(state.cardArtworkUrl) {
placeholder(R.drawable.card_placeholder_black)
error(R.drawable.card_placeholder_black)
fallback(R.drawable.card_placeholder_black)
@@ -90,7 +80,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
private fun setBalance(state: OnboardingNoteState) {
if (state.walletBalance.currency.blockchain == Blockchain.Unknown) return
- with (binding.onboardingTopContainer.onboardingTvBalance) {
+ with(mainBinding.onboardingTopContainer.onboardingTvBalance) {
if (state.balanceCriticalError == null) {
val balanceValue = state.walletBalance.value.stripZeroPlainString()
tvBalanceValue.text = balanceValue
@@ -102,7 +92,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
}
}
- private fun setupNoneState() = with(binding.onboardingActionContainer) {
+ private fun setupNoneState() = with(mainBinding.onboardingActionContainer) {
btnMainAction.isVisible = false
btnAlternativeAction.isVisible = false
btnRefreshBalanceWidget.show(false)
@@ -116,7 +106,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
}
private fun setupCreateWalletState(state: OnboardingNoteState) =
- with(binding.onboardingActionContainer) {
+ with(mainBinding.onboardingActionContainer) {
btnMainAction.setText(R.string.onboarding_create_wallet_button_create_wallet)
btnMainAction.setOnClickListener { store.dispatch(OnboardingNoteAction.CreateWallet) }
btnAlternativeAction.setText(R.string.onboarding_button_what_does_it_mean)
@@ -127,15 +117,15 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
tvHeader.setText(R.string.onboarding_create_wallet_header)
tvBody.setText(R.string.onboarding_create_wallet_body)
- binding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
- requireContext().getDrawableCompat(R.drawable.shape_circle)
+ mainBinding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
+ requireContext().getDrawableCompat(R.drawable.shape_circle),
)
updateConstraints(state.currentStep, R.layout.lp_onboarding_create_wallet)
btnAlternativeAction.isVisible = false // temporary
}
- private fun setupTopUpWalletState(state: OnboardingNoteState) = with(binding.onboardingActionContainer) {
+ private fun setupTopUpWalletState(state: OnboardingNoteState) = with(mainBinding.onboardingActionContainer) {
if (state.isBuyAllowed) {
btnMainAction.setText(R.string.onboarding_top_up_button_but_crypto)
btnMainAction.setOnClickListener {
@@ -163,7 +153,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
state.walletBalance.amountToCreateAccount?.let { amount ->
val tvBodyMessage = getString(
R.string.onboarding_top_up_body_no_account_error,
- amount, state.walletBalance.currency.currencySymbol
+ amount, state.walletBalance.currency.currencySymbol,
)
tvBody.text = tvBodyMessage
}
@@ -175,12 +165,13 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
store.dispatch(OnboardingNoteAction.Balance.Update)
}
}
- binding.onboardingTopContainer.imvCardBackground
- .setBackgroundDrawable(requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8))
+
+ val drawable = requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8)
+ mainBinding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(drawable)
updateConstraints(state.currentStep, R.layout.lp_onboarding_topup_wallet)
}
- private fun setupDoneState(state: OnboardingNoteState) = with(binding.onboardingActionContainer) {
+ private fun setupDoneState(state: OnboardingNoteState) = with(mainBinding.onboardingActionContainer) {
btnMainAction.setText(R.string.onboarding_done_button_continue)
btnMainAction.setOnClickListener {
showConfetti(false)
@@ -188,15 +179,15 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
}
btnAlternativeAction.isVisible = false
- btnAlternativeAction.setText("")
+ btnAlternativeAction.text = ""
btnAlternativeAction.setOnClickListener { }
btnRefreshBalanceWidget.mainView.setOnClickListener(null)
tvHeader.setText(R.string.onboarding_done_header)
tvBody.setText(R.string.onboarding_done_body)
- binding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
- requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8)
+ mainBinding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
+ requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8),
)
updateConstraints(state.currentStep, R.layout.lp_onboarding_done_activation)
}
@@ -204,7 +195,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
private fun updateConstraints(currentStep: OnboardingNoteStep, @LayoutRes layoutId: Int) {
if (this.previousStep == currentStep) return
- with(binding.onboardingTopContainer) {
+ with(mainBinding.onboardingTopContainer) {
val constraintSet = ConstraintSet()
constraintSet.clone(requireContext(), layoutId)
constraintSet.applyTo(onboardingWalletContainer)
@@ -213,13 +204,4 @@ class OnboardingNoteFragment : BaseOnboardingFragment() {
TransitionManager.beginDelayedTransition(onboardingWalletContainer, transition)
}
}
-}
-
-fun ImageView.swapToBitmapDrawable(bitmap: Bitmap?, duration: Long = 200) {
- if (drawable is BitmapDrawable && (drawable as BitmapDrawable).bitmap == bitmap) return
-
- fadeOut(duration) {
- setImageBitmap(bitmap)
- fadeIn(duration)
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt
index bb09b3d434..0ed23143da 100644
--- a/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt
+++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt
@@ -24,17 +24,13 @@ import com.tangem.wallet.R
*/
class OnboardingOtherCardsFragment : BaseOnboardingFragment() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- postponeEnterTransition()
- }
+ private val mainBinding by lazy { binding.vMain }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
addBackPressHandler(this)
- binding.onboardingTopContainer.imvFrontCard.transitionName = ShareElement.imvFrontCard
- startPostponedEnterTransition()
+ mainBinding.onboardingTopContainer.imvFrontCard.transitionName = ShareElement.imvFrontCard
binding.toolbar.setTitle(R.string.onboarding_title)
store.dispatch(OnboardingOtherCardsAction.LoadCardArtwork)
@@ -54,7 +50,7 @@ class OnboardingOtherCardsFragment : BaseOnboardingFragment() {
+ private val mainBinding by lazy { binding.vMain }
private var previousStep = TwinCardsStep.None
private lateinit var twinsWidget: TwinsCardWidget
@@ -47,7 +48,6 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- postponeEnterTransition()
store.dispatch(TwinCardsAction.Init)
}
@@ -66,30 +66,30 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
super.onViewCreated(view, savedInstanceState)
addBackPressHandler(this)
- reconfigureLayoutForTwins(binding.onboardingTopContainer)
+ reconfigureLayoutForTwins(mainBinding.onboardingTopContainer)
val typedValue = TypedValue()
resources.getValue(R.dimen.device_scale_factor_for_twins_welcome, typedValue, true)
val deviceScaleFactorForWelcomeState = typedValue.float
twinsWidget = TwinsCardWidget(
- LeapfrogWidget(binding.onboardingTopContainer.cardsContainer),
- deviceScaleFactorForWelcomeState
+ LeapfrogWidget(mainBinding.onboardingTopContainer.cardsContainer),
+ deviceScaleFactorForWelcomeState,
) {
285f * deviceScaleFactorForWelcomeState
}
btnRefreshBalanceWidget =
- RefreshBalanceWidget(binding.onboardingTopContainer.onboardingWalletContainer)
+ RefreshBalanceWidget(mainBinding.onboardingTopContainer.onboardingWalletContainer)
binding.toolbar.title = getText(R.string.twins_recreate_toolbar)
- binding.onboardingTopContainer.imvTwinFrontCard.load(Artwork.TWIN_CARD_1) {
+ mainBinding.onboardingTopContainer.imvTwinFrontCard.load(Artwork.TWIN_CARD_1) {
placeholder(R.drawable.card_placeholder_black)
error(R.drawable.card_placeholder_black)
fallback(R.drawable.card_placeholder_black)
}
- binding.onboardingTopContainer.imvTwinBackCard.load(Artwork.TWIN_CARD_2) {
+ mainBinding.onboardingTopContainer.imvTwinBackCard.load(Artwork.TWIN_CARD_2) {
placeholder(R.drawable.card_placeholder_white)
error(R.drawable.card_placeholder_white)
fallback(R.drawable.card_placeholder_white)
@@ -143,7 +143,7 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
private fun setBalance(state: TwinCardsState) {
if (state.walletBalance.currency.blockchain == Blockchain.Unknown) return
- with(binding.onboardingTopContainer.onboardingTvBalance) {
+ with(mainBinding.onboardingTopContainer.onboardingTvBalance) {
if (state.balanceCriticalError == null) {
val balanceValue = state.walletBalance.value.stripZeroPlainString()
tvBalanceValue.text = balanceValue
@@ -167,26 +167,26 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
}
private fun setupWelcomeState(state: TwinCardsState, mainAction: VoidCallback) =
- with(binding.onboardingActionContainer) {
- twinsWidget.toWelcome(false) { startPostponedEnterTransition() }
+ with(mainBinding.onboardingActionContainer) {
+ twinsWidget.toWelcome(false)
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.show()
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.show()
pbBinding.pbState.hide()
tvHeader.setText(R.string.twins_onboarding_subtitle)
tvBody.text = getString(
R.string.twins_onboarding_description_format,
- state.cardNumber?.pairIndexNumber()
+ state.cardNumber?.pairIndexNumber(),
)
btnMainAction.setText(R.string.common_continue)
btnMainAction.setOnClickListener { mainAction() }
}
- private fun setupWarningState(state: TwinCardsState) = with(binding.onboardingActionContainer) {
- twinsWidget.toWelcome(false) { startPostponedEnterTransition() }
+ private fun setupWarningState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ twinsWidget.toWelcome(false)
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.hide()
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.hide()
pbBinding.pbState.hide()
chbUnderstand.show()
@@ -203,184 +203,175 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
}
}
- private fun setupCreateFirstWalletState(state: TwinCardsState) =
- with(binding.onboardingActionContainer) {
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.hide()
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleLarge.hide()
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleMedium.hide()
- binding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleMin.hide()
- chbUnderstand.hide()
- pbBinding.pbState.show()
+ private fun setupCreateFirstWalletState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.root.hide()
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleLarge.hide()
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleMedium.hide()
+ mainBinding.onboardingTopContainer.onboardingTwinsWelcomeBg.bgCircleMin.hide()
+ chbUnderstand.hide()
+ pbBinding.pbState.show()
- binding.onboardingTopContainer.onboardingWalletContainer.beginDelayedTransition()
+ mainBinding.onboardingTopContainer.onboardingWalletContainer.beginDelayedTransition()
- when (previousStep) {
- TwinCardsStep.None -> {
- twinsWidget.toLeapfrog(false) {
- when (state.cardNumber) {
- TwinCardNumber.First -> startPostponedEnterTransition()
- TwinCardNumber.Second -> {
- switchToCard(
- state.cardNumber,
- false
- ) { startPostponedEnterTransition() }
- }
- }
- }
- }
- TwinCardsStep.Welcome, TwinCardsStep.Warning -> {
- twinsWidget.toLeapfrog(onEnd = { switchToCard(state.cardNumber) })
- }
- }
-
- val twinIndexNumber = state.cardNumber?.indexNumber()
- tvHeader.text = getString(R.string.twins_recreate_title_format, twinIndexNumber)
- tvBody.setText(R.string.onboarding_twins_interrupt_warning)
-
- btnMainAction.text = getString(R.string.twins_recreate_button_format, twinIndexNumber)
- btnMainAction.setOnClickListener {
- store.dispatch(
- TwinCardsAction.Wallet.LaunchFirstStep(
- Message(getString(R.string.twins_recreate_title_format, twinIndexNumber)),
- AndroidAssetReader(requireContext()),
- )
- )
- }
-
- btnAlternativeAction.isVisible = false
- btnAlternativeAction.isClickable = false
- }
-
- private fun setupCreateSecondWalletState(state: TwinCardsState) =
- with(binding.onboardingActionContainer) {
- switchToCard(state.cardNumber?.pairNumber())
-
- val twinPairIndexNumber = state.cardNumber?.pairIndexNumber()
- tvHeader.text = getString(R.string.twins_recreate_title_format, twinPairIndexNumber)
- tvBody.setText(R.string.onboarding_twins_interrupt_warning)
-
- btnMainAction.text =
- getString(R.string.twins_recreate_button_format, twinPairIndexNumber)
- btnMainAction.setOnClickListener {
- store.dispatch(
- TwinCardsAction.Wallet.LaunchSecondStep(
- Message(
- getString(
- R.string.twins_recreate_title_format,
- twinPairIndexNumber
- )
- ),
- Message(getString(R.string.twins_recreate_title_preparing)),
- Message(getString(R.string.twins_recreate_title_creating_wallet)),
- )
- )
- }
- }
-
- private fun setupCreateThirdWalletState(state: TwinCardsState) =
- with(binding.onboardingActionContainer) {
- switchToCard(state.cardNumber)
-
- val twinIndexNumber = state.cardNumber?.indexNumber()
- tvHeader.text = getString(R.string.twins_recreate_title_format, twinIndexNumber)
- tvBody.setText(R.string.onboarding_twins_interrupt_warning)
-
- btnMainAction.text = getString(R.string.twins_recreate_button_format, twinIndexNumber)
- btnMainAction.setOnClickListener {
- store.dispatch(
- TwinCardsAction.Wallet.LaunchThirdStep(
- Message(getString(R.string.twins_recreate_title_format, twinIndexNumber))
- )
- )
- }
- }
-
-
- private fun setupTopUpWalletState(state: TwinCardsState) =
- with(binding.onboardingActionContainer) {
- when (previousStep) {
- TwinCardsStep.None -> {
+ when (previousStep) {
+ TwinCardsStep.None -> {
+ twinsWidget.toLeapfrog(false) {
when (state.cardNumber) {
- TwinCardNumber.First -> {
- twinsWidget.leapfrogWidget.unfold(false) {
- twinsWidget.toActivate(false) {
- startPostponedEnterTransition()
- }
- }
- }
+ TwinCardNumber.First -> {}
TwinCardNumber.Second -> {
- switchToCard(state.cardNumber, false) {
- twinsWidget.toActivate(false)
- startPostponedEnterTransition()
- }
+ switchToCard(
+ state.cardNumber,
+ false,
+ )
}
}
}
- TwinCardsStep.CreateThirdWallet -> {
- twinsWidget.toActivate()
- }
}
-
- if (state.isBuyAllowed) {
- btnMainAction.setText(R.string.onboarding_top_up_button_but_crypto)
- btnMainAction.setOnClickListener {
- store.dispatch(TwinCardsAction.TopUp)
- }
-
- btnAlternativeAction.isVisible = true
- btnAlternativeAction.setText(R.string.onboarding_top_up_button_show_wallet_address)
- btnAlternativeAction.setOnClickListener {
- store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
- }
- } else {
- btnMainAction.setText(R.string.onboarding_button_receive_crypto)
- btnMainAction.setOnClickListener {
- store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
- }
-
- btnAlternativeAction.isVisible = false
+ TwinCardsStep.Welcome, TwinCardsStep.Warning -> {
+ twinsWidget.toLeapfrog(onEnd = { switchToCard(state.cardNumber) })
}
-
- tvHeader.setText(R.string.onboarding_top_up_header)
- tvBody.setText(R.string.onboarding_top_up_body)
-
- btnRefreshBalanceWidget.changeState(state.walletBalance.state)
- if (btnRefreshBalanceWidget.isShowing != true) {
- btnRefreshBalanceWidget.mainView.setOnClickListener {
- store.dispatch(TwinCardsAction.Balance.Update)
- }
- }
- binding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
- requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8)
- )
- updateConstraints(state.currentStep, R.layout.lp_onboarding_topup_wallet_twins)
}
- private fun setupDoneState(state: TwinCardsState) =
- with(binding.onboardingActionContainer) {
- btnMainAction.setText(R.string.onboarding_done_button_continue)
+ val twinIndexNumber = state.cardNumber?.indexNumber()
+ tvHeader.text = getString(R.string.twins_recreate_title_format, twinIndexNumber)
+ tvBody.setText(R.string.onboarding_twins_interrupt_warning)
+
+ btnMainAction.text = getString(R.string.twins_recreate_button_format, twinIndexNumber)
+ btnMainAction.setOnClickListener {
+ store.dispatch(
+ TwinCardsAction.Wallet.LaunchFirstStep(
+ Message(getString(R.string.twins_recreate_title_format, twinIndexNumber)),
+ AndroidAssetReader(requireContext()),
+ ),
+ )
+ }
+
+ btnAlternativeAction.isVisible = false
+ btnAlternativeAction.isClickable = false
+ }
+
+ private fun setupCreateSecondWalletState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ switchToCard(state.cardNumber?.pairNumber())
+
+ val twinPairIndexNumber = state.cardNumber?.pairIndexNumber()
+ tvHeader.text = getString(R.string.twins_recreate_title_format, twinPairIndexNumber)
+ tvBody.setText(R.string.onboarding_twins_interrupt_warning)
+
+ btnMainAction.text =
+ getString(R.string.twins_recreate_button_format, twinPairIndexNumber)
+ btnMainAction.setOnClickListener {
+ store.dispatch(
+ TwinCardsAction.Wallet.LaunchSecondStep(
+ Message(
+ getString(
+ R.string.twins_recreate_title_format,
+ twinPairIndexNumber,
+ ),
+ ),
+ Message(getString(R.string.twins_recreate_title_preparing)),
+ Message(getString(R.string.twins_recreate_title_creating_wallet)),
+ ),
+ )
+ }
+ }
+
+ private fun setupCreateThirdWalletState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ switchToCard(state.cardNumber)
+
+ val twinIndexNumber = state.cardNumber?.indexNumber()
+ tvHeader.text = getString(R.string.twins_recreate_title_format, twinIndexNumber)
+ tvBody.setText(R.string.onboarding_twins_interrupt_warning)
+
+ btnMainAction.text = getString(R.string.twins_recreate_button_format, twinIndexNumber)
+ btnMainAction.setOnClickListener {
+ store.dispatch(
+ TwinCardsAction.Wallet.LaunchThirdStep(
+ Message(getString(R.string.twins_recreate_title_format, twinIndexNumber)),
+ ),
+ )
+ }
+ }
+
+ private fun setupTopUpWalletState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ when (previousStep) {
+ TwinCardsStep.None -> {
+ when (state.cardNumber) {
+ TwinCardNumber.First -> {
+ twinsWidget.leapfrogWidget.unfold(false) {
+ twinsWidget.toActivate(false)
+ }
+ }
+ TwinCardNumber.Second -> {
+ switchToCard(state.cardNumber, false) {
+ twinsWidget.toActivate(false)
+ }
+ }
+ }
+ }
+ TwinCardsStep.CreateThirdWallet -> {
+ twinsWidget.toActivate()
+ }
+ }
+
+ if (state.isBuyAllowed) {
+ btnMainAction.setText(R.string.onboarding_top_up_button_but_crypto)
btnMainAction.setOnClickListener {
- store.dispatch(TwinCardsAction.Confetti.Hide)
- store.dispatch(TwinCardsAction.Done)
+ store.dispatch(TwinCardsAction.TopUp)
+ }
+
+ btnAlternativeAction.isVisible = true
+ btnAlternativeAction.setText(R.string.onboarding_top_up_button_show_wallet_address)
+ btnAlternativeAction.setOnClickListener {
+ store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
+ }
+ } else {
+ btnMainAction.setText(R.string.onboarding_button_receive_crypto)
+ btnMainAction.setOnClickListener {
+ store.dispatch(TwinCardsAction.ShowAddressInfoDialog)
}
btnAlternativeAction.isVisible = false
- btnAlternativeAction.isClickable = false
-
- tvHeader.setText(R.string.onboarding_done_header)
- tvBody.setText(R.string.onboarding_done_body)
-
- val layout = when (state.mode) {
- CreateTwinWalletMode.CreateWallet -> R.layout.lp_onboarding_done_activation_twins
- CreateTwinWalletMode.RecreateWallet -> R.layout.lp_onboarding_done
- }
- updateConstraints(state.currentStep, layout)
}
+ tvHeader.setText(R.string.onboarding_top_up_header)
+ tvBody.setText(R.string.onboarding_top_up_body)
+
+ btnRefreshBalanceWidget.changeState(state.walletBalance.state)
+ if (btnRefreshBalanceWidget.isShowing != true) {
+ btnRefreshBalanceWidget.mainView.setOnClickListener {
+ store.dispatch(TwinCardsAction.Balance.Update)
+ }
+ }
+ mainBinding.onboardingTopContainer.imvCardBackground.setBackgroundDrawable(
+ requireContext().getDrawableCompat(R.drawable.shape_rectangle_rounded_8),
+ )
+ updateConstraints(state.currentStep, R.layout.lp_onboarding_topup_wallet_twins)
+ }
+
+ private fun setupDoneState(state: TwinCardsState) = with(mainBinding.onboardingActionContainer) {
+ btnMainAction.setText(R.string.onboarding_done_button_continue)
+ btnMainAction.setOnClickListener {
+ store.dispatch(TwinCardsAction.Confetti.Hide)
+ store.dispatch(TwinCardsAction.Done)
+ }
+
+ btnAlternativeAction.isVisible = false
+ btnAlternativeAction.isClickable = false
+
+ tvHeader.setText(R.string.onboarding_done_header)
+ tvBody.setText(R.string.onboarding_done_body)
+
+ val layout = when (state.mode) {
+ CreateTwinWalletMode.CreateWallet -> R.layout.lp_onboarding_done_activation_twins
+ CreateTwinWalletMode.RecreateWallet -> R.layout.lp_onboarding_done
+ }
+ updateConstraints(state.currentStep, layout)
+ }
+
private fun updateConstraints(currentStep: TwinCardsStep, @LayoutRes layoutId: Int) {
if (this.previousStep == currentStep) return
- with(binding.onboardingTopContainer) {
+ with(mainBinding.onboardingTopContainer) {
val constraintSet = ConstraintSet()
constraintSet.clone(requireContext(), layoutId)
constraintSet.applyTo(onboardingWalletContainer)
@@ -390,11 +381,7 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
}
}
- private fun switchToCard(
- cardNumber: TwinCardNumber?,
- animate: Boolean = true,
- onEnd: VoidCallback = {}
- ) {
+ private fun switchToCard(cardNumber: TwinCardNumber?, animate: Boolean = true, onEnd: VoidCallback = {}) {
val position = cardNumber?.number ?: return
if (twinsWidget.leapfrogWidget.getViewPositionByIndex(1) != position - 1) {
@@ -405,12 +392,14 @@ class TwinsCardsFragment : BaseOnboardingFragment() {
}
override fun handleOnBackPressed() {
- store.dispatch(TwinCardsAction.Wallet.HandleOnBackPressed { should, popAction ->
- store.dispatch(TwinCardsAction.Confetti.Hide)
- showConfetti(false)
- if (should) switchToCard(TwinCardNumber.First, true, popAction)
- else popAction()
- })
+ store.dispatch(
+ TwinCardsAction.Wallet.HandleOnBackPressed { should, popAction ->
+ store.dispatch(TwinCardsAction.Confetti.Hide)
+ showConfetti(false)
+ if (should) switchToCard(TwinCardNumber.First, true, popAction)
+ else popAction()
+ },
+ )
}
}
diff --git a/app/src/main/res/layout/fragment_onboarding_main.xml b/app/src/main/res/layout/fragment_onboarding_main.xml
index 97d770d2a3..c88f910dcb 100644
--- a/app/src/main/res/layout/fragment_onboarding_main.xml
+++ b/app/src/main/res/layout/fragment_onboarding_main.xml
@@ -27,29 +27,9 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file