diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 95cd7e9498..41a397e283 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -313,7 +313,6 @@
Другой кошелек уже был создан на карте, которую вы пытаетесь добавить. Хотите сбросить его и использовать карту для бэкапа?
Резервная копия
Прочитать о seed-фразе
- Запишите эти 12 слов в порядке, указанном ниже, и сохраните их в надежном месте.
- Запишите эти %d слова в порядке, указанном ниже, и сохраните их в надежном месте.
diff --git a/core/res/src/main/res/values-zh-rTW/strings.xml b/core/res/src/main/res/values-zh-rTW/strings.xml
index 841f0df3bb..e0b8c69381 100644
--- a/core/res/src/main/res/values-zh-rTW/strings.xml
+++ b/core/res/src/main/res/values-zh-rTW/strings.xml
@@ -174,7 +174,6 @@
您要添加的卡上已經創建了另一個錢包。你想重置它並將卡用於新錢包嗎?
創建備份
閱讀更多關於助記詞的訊息
- 按照下面給出的順序寫下這 12 個單詞,並將它們存放在安全秘密的地方。
- 按照下面給出的順序寫下這 %d 個單詞,並將它們存放在安全秘密的地方。
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 597b184e40..11cf3d5316 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -313,7 +313,6 @@
Another wallet has already been created on the card you\'re trying to add. Do you want to reset it and use the card for a new wallet?
Creating a backup
Read more about seed phrase
- Write these 12 words down in the order given below and store them in a safe and secret place.
- Write these %d words down in the order given below and store them in a safe and secret place.
diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/buttons/segmentedbutton/SegmentedButton.kt b/core/ui/src/main/java/com/tangem/core/ui/components/buttons/segmentedbutton/SegmentedButton.kt
index 44d622f9eb..712fc8cb52 100644
--- a/core/ui/src/main/java/com/tangem/core/ui/components/buttons/segmentedbutton/SegmentedButton.kt
+++ b/core/ui/src/main/java/com/tangem/core/ui/components/buttons/segmentedbutton/SegmentedButton.kt
@@ -47,11 +47,15 @@ inline fun SegmentedButtons(
selectedColor: Color = TangemTheme.colors.background.action,
dividerColor: Color = TangemTheme.colors.stroke.primary,
showIndication: Boolean = true,
+ selectedItem: T? = null,
crossinline buttonContent: @Composable (T) -> Unit,
) {
if (config.isEmpty() || config.size == 1) return
- var selected by remember { mutableIntStateOf(0) }
+ var selected by remember {
+ val selectedIndex = if (selectedItem == null) 0 else config.indexOf(selectedItem)
+ mutableIntStateOf(selectedIndex)
+ }
Row(
modifier = modifier
diff --git a/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt b/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt
index 13ec4eb908..d835895565 100644
--- a/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt
+++ b/core/ui/src/main/java/com/tangem/core/ui/res/TangemDimens.kt
@@ -125,6 +125,7 @@ data class TangemDimens internal constructor(
val spacing56: Dp = 56.dp,
val spacing60: Dp = 60.dp,
val spacing70: Dp = 70.dp,
+ val spacing76: Dp = 76.dp,
val spacing80: Dp = 80.dp,
val spacing92: Dp = 92.dp,
val spacing94: Dp = 94.dp,
diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt
index 71ac3393b7..09bc1f8964 100644
--- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt
+++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt
@@ -4,6 +4,7 @@ import com.tangem.crypto.bip39.DefaultMnemonic
import com.tangem.crypto.bip39.EntropyLength
import com.tangem.crypto.bip39.Mnemonic
import com.tangem.crypto.bip39.Wordlist
+import com.tangem.feature.onboarding.domain.models.MnemonicType
/**
[REDACTED_AUTHOR]
@@ -20,5 +21,12 @@ class DefaultMnemonicRepository(
return DefaultMnemonic(EntropyLength.Bits128Length, bip39Wordlist)
}
+ override fun generateMnemonic(mnemonicType: MnemonicType): Mnemonic {
+ return when (mnemonicType) {
+ MnemonicType.Mnemonic12 -> DefaultMnemonic(EntropyLength.Bits128Length, bip39Wordlist)
+ MnemonicType.Mnemonic24 -> DefaultMnemonic(EntropyLength.Bits256Length, bip39Wordlist)
+ }
+ }
+
override fun createMnemonic(mnemonicString: String): Mnemonic = DefaultMnemonic(mnemonicString, bip39Wordlist)
}
\ No newline at end of file
diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/MnemonicRepository.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/MnemonicRepository.kt
index b1b7ebfa2c..389ca4d949 100644
--- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/MnemonicRepository.kt
+++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/MnemonicRepository.kt
@@ -2,6 +2,7 @@ package com.tangem.feature.onboarding.data
import com.tangem.common.core.TangemSdkError
import com.tangem.crypto.bip39.Mnemonic
+import com.tangem.feature.onboarding.domain.models.MnemonicType
/**
[REDACTED_AUTHOR]
@@ -13,6 +14,9 @@ interface MnemonicRepository {
@Throws(TangemSdkError.MnemonicException::class)
fun generateDefaultMnemonic(): Mnemonic
+ @Throws(TangemSdkError.MnemonicException::class)
+ fun generateMnemonic(mnemonicType: MnemonicType): Mnemonic
+
@Throws(TangemSdkError.MnemonicException::class)
fun createMnemonic(mnemonicString: String): Mnemonic
}
\ No newline at end of file
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 92ed7ae69c..a0ef98bf30 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.domain.models.MnemonicType
import com.tangem.feature.onboarding.presentation.wallet2.model.SeedPhraseField
import com.tangem.utils.extensions.isNotWhitespace
import kotlinx.collections.immutable.ImmutableList
@@ -13,27 +14,23 @@ import kotlinx.collections.immutable.toPersistentList
/**
[REDACTED_AUTHOR]
*/
-internal class DefaultSeedPhraseInteractor constructor(
+internal class DefaultSeedPhraseInteractor(
private val repository: MnemonicRepository,
) : SeedPhraseInteractor {
- private var currentMnemonic: Mnemonic? = null
private val partWordFinder: PartWordFinder = PartWordFinder()
override suspend fun generateMnemonic(): Result {
return runCatching {
- repository.generateDefaultMnemonic().apply {
- currentMnemonic = this
- }
+ repository.generateDefaultMnemonic()
}
}
- override suspend fun getMnemonicComponents(): Result> {
+ override suspend fun generateMnemonics(mnemonicTypes: List): Result