From 0ec583301e566019d5ad096044057bd123064cd4 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 14 Aug 2023 13:39:12 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../onboarding/domain/DefaultSeedPhraseInteractor.kt | 5 +++-- .../feature/onboarding/domain/SeedPhraseInteractor.kt | 3 ++- .../onboarding/presentation/wallet2/model/UiActions.kt | 8 ++++---- .../presentation/wallet2/viewmodel/SeedPhraseViewModel.kt | 8 +++++--- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/DefaultSeedPhraseInteractor.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/DefaultSeedPhraseInteractor.kt index a63b4bccea..a8748d1664 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/DefaultSeedPhraseInteractor.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/DefaultSeedPhraseInteractor.kt @@ -4,6 +4,7 @@ import com.tangem.common.core.TangemSdkError import com.tangem.crypto.bip39.Mnemonic import com.tangem.crypto.bip39.MnemonicErrorResult import com.tangem.feature.onboarding.data.MnemonicRepository +import com.tangem.feature.onboarding.presentation.wallet2.model.SeedPhraseField import com.tangem.utils.extensions.isNotWhitespace import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -36,8 +37,8 @@ internal class DefaultSeedPhraseInteractor constructor( } } - override suspend fun isWordMatch(word: String): Boolean { - return repository.getWordsDictionary().contains(word) + override suspend fun isWordMatch(mnemonicComponents: List?, field: SeedPhraseField, word: String): Boolean { + return mnemonicComponents?.get(field.index) == word } override suspend fun validateMnemonicString(text: String): Result> { diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/SeedPhraseInteractor.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/SeedPhraseInteractor.kt index 2c0f319c19..d9420a9def 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/SeedPhraseInteractor.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/domain/SeedPhraseInteractor.kt @@ -1,6 +1,7 @@ package com.tangem.feature.onboarding.domain import com.tangem.crypto.bip39.Mnemonic +import com.tangem.feature.onboarding.presentation.wallet2.model.SeedPhraseField import kotlinx.collections.immutable.ImmutableList /** @@ -9,7 +10,7 @@ import kotlinx.collections.immutable.ImmutableList interface SeedPhraseInteractor { suspend fun generateMnemonic(): Result suspend fun getMnemonicComponents(): Result> - suspend fun isWordMatch(word: String): Boolean + suspend fun isWordMatch(mnemonicComponents: List?, field: SeedPhraseField, word: String): Boolean suspend fun validateMnemonicString(text: String): Result> suspend fun getSuggestions(text: String, hasSelection: Boolean, cursorPosition: Int): ImmutableList suspend fun insertSuggestionWord(text: String, suggestion: String, cursorPosition: Int): InsertSuggestionResult diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/model/UiActions.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/model/UiActions.kt index 5a63039118..dec0e444b9 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/model/UiActions.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/model/UiActions.kt @@ -50,8 +50,8 @@ data class TextFieldUiAction( -enum class SeedPhraseField { - Second, - Seventh, - Eleventh, +enum class SeedPhraseField(val index: Int) { + Second(index = 1), + Seventh(index = 6), + Eleventh(index = 10), } \ No newline at end of file diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseViewModel.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseViewModel.kt index c7d9c234ba..69a68a2b7b 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseViewModel.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseViewModel.kt @@ -161,12 +161,15 @@ class SeedPhraseViewModel @Inject constructor( val fieldState = field.getState(uiState) if (fieldState.textFieldValue.text.isEmpty()) { - updateUi { uiBuilder.checkSeedPhrase.updateTextFieldError(uiState, field, hasError = false) } + updateUi { + val mediate = uiBuilder.checkSeedPhrase.updateTextFieldError(uiState, field, hasError = false) + uiBuilder.checkSeedPhrase.updateCreateWalletButton(mediate, enabled = false) + } return@launchSingle } createOrGetDebouncer(field.name).debounce(viewModelScope, context = dispatchers.io) { - val hasError = !interactor.isWordMatch(textFieldValue.text) + val hasError = !interactor.isWordMatch(generatedMnemonicComponents, field, textFieldValue.text) if (fieldState.isError != hasError) { updateUi { uiBuilder.checkSeedPhrase.updateTextFieldError(uiState, field, hasError) } } @@ -278,7 +281,6 @@ class SeedPhraseViewModel @Inject constructor( is CompletionResult.Success -> { isFinished = true } - is CompletionResult.Failure -> { // errors shows on the TangemSdk bottom sheet dialog }