Updated on 2026-08-14
This commit is contained in:
parent
b0cfaa4a86
commit
7e4dc3dbb4
7 changed files with 46 additions and 11 deletions
|
|
@ -65,6 +65,7 @@ sealed class BackupAction : Action {
|
|||
object StartAddingBackupCards : BackupAction()
|
||||
object AddBackupCard : BackupAction() {
|
||||
object Success : BackupAction()
|
||||
data class ChangeButtonLoading(val isLoading: Boolean) : BackupAction()
|
||||
}
|
||||
|
||||
object FinishAddingBackupCards : BackupAction()
|
||||
|
|
|
|||
|
|
@ -395,11 +395,12 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction)
|
|||
}
|
||||
}
|
||||
is BackupAction.AddBackupCard -> {
|
||||
store.dispatchOnMain(BackupAction.AddBackupCard.ChangeButtonLoading(true))
|
||||
backupService.addBackupCard { result ->
|
||||
backupService.skipCompatibilityChecks = false
|
||||
store.state.daggerGraphState.get(DaggerGraphState::cardSdkConfigRepository).sdk
|
||||
.config.filter.cardIdFilter = null
|
||||
|
||||
store.dispatchOnMain(BackupAction.AddBackupCard.ChangeButtonLoading(false))
|
||||
when (result) {
|
||||
is CompletionResult.Success -> {
|
||||
store.dispatchOnMain(BackupAction.AddBackupCard.Success)
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ private object BackupReducer {
|
|||
BackupAction.StartAddingPrimaryCard -> state.copy(backupStep = BackupStep.ScanOriginCard)
|
||||
BackupAction.StartAddingBackupCards -> state.copy(backupStep = BackupStep.AddBackupCards)
|
||||
BackupAction.AddBackupCard.Success -> state.copy(backupCardsNumber = state.backupCardsNumber + 1)
|
||||
is BackupAction.AddBackupCard.ChangeButtonLoading -> state.copy(showBtnLoading = action.isLoading)
|
||||
BackupAction.ShowAccessCodeInfoScreen -> state.copy(backupStep = BackupStep.SetAccessCode)
|
||||
BackupAction.ShowEnterAccessCodeScreen -> state.copy(
|
||||
backupStep = BackupStep.EnterAccessCode,
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ data class BackupState(
|
|||
val maxBackupCards: Int = 2,
|
||||
val canSkipBackup: Boolean = true,
|
||||
val isInterruptedBackup: Boolean = false,
|
||||
val showBtnLoading: Boolean = false,
|
||||
)
|
||||
|
||||
enum class AccessCodeError {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.tap.features.onboarding.products.wallet.ui
|
||||
|
||||
import android.content.res.ColorStateList
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.util.TypedValue
|
||||
|
|
@ -296,10 +297,26 @@ class OnboardingWalletFragment :
|
|||
|
||||
layoutButtonsAddCards.root.show()
|
||||
layoutButtonsCommon.root.hide()
|
||||
layoutButtonsAddCards.btnAddCard.text = getText(R.string.onboarding_button_add_backup_card)
|
||||
layoutButtonsAddCards.btnAddCard.setIconResource(R.drawable.ic_tangem_24)
|
||||
if (state.showBtnLoading) {
|
||||
layoutButtonsAddCards.btnAddCard.iconTint = ColorStateList.valueOf(
|
||||
resources.getColor(R.color.button_secondary),
|
||||
)
|
||||
layoutButtonsAddCards.btnAddCard.text = ""
|
||||
layoutButtonsAddCards.btnAddCard.isEnabled = false
|
||||
layoutButtonsAddCards.btnProgress.show()
|
||||
} else {
|
||||
layoutButtonsAddCards.btnAddCard.iconTint = ColorStateList.valueOf(
|
||||
resources.getColor(R.color.icon_primary_1),
|
||||
)
|
||||
layoutButtonsAddCards.btnProgress.hide()
|
||||
layoutButtonsAddCards.btnAddCard.text = getText(R.string.onboarding_button_add_backup_card)
|
||||
layoutButtonsAddCards.btnAddCard.isEnabled = true
|
||||
}
|
||||
if (state.backupCardsNumber < state.maxBackupCards) {
|
||||
layoutButtonsAddCards.btnAddCard.setOnClickListener { store.dispatch(BackupAction.AddBackupCard) }
|
||||
layoutButtonsAddCards.btnAddCard.setOnClickListener {
|
||||
store.dispatch(BackupAction.AddBackupCard)
|
||||
}
|
||||
} else {
|
||||
layoutButtonsAddCards.btnAddCard.isEnabled = false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,22 +5,37 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_add_card"
|
||||
style="@style/TapSecondaryIconButton"
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="92dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@id/btn_continue"
|
||||
app:layout_constraintStart_toStartOf="@id/btn_continue"
|
||||
tools:icon="@drawable/ic_tangem_24"
|
||||
tools:text="Add backup card" />
|
||||
app:layout_constraintStart_toStartOf="@id/btn_continue">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_add_card"
|
||||
style="@style/TapSecondaryIconButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:icon="@drawable/ic_tangem_24"
|
||||
tools:text="Add backup card" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/btn_progress"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center"
|
||||
android:elevation="18dp"
|
||||
android:visibility="gone"
|
||||
android:indeterminate="true"
|
||||
android:indeterminateTint="@color/text_primary_1" />
|
||||
</FrameLayout>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_continue"
|
||||
android:layout_width="match_parent"
|
||||
style="@style/TapPrimaryButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@
|
|||
|
||||
<color name="background_splash">#000000</color>
|
||||
<color name="transparent">#00000000</color>
|
||||
d
|
||||
|
||||
<color name="gradient_start_color">#FFFFFF</color>
|
||||
<color name="gradient_center_color">#F0FFFF</color>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue