Updated on 2026-08-14
This commit is contained in:
parent
c703edde8e
commit
8e77f5b2d3
15 changed files with 27 additions and 141 deletions
|
|
@ -396,26 +396,6 @@ internal object WalletsDomainModule {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun providesIsUpgradeWalletNotificationEnabledUseCase(
|
|
||||||
walletsRepository: WalletsRepository,
|
|
||||||
): IsUpgradeWalletNotificationEnabledUseCase {
|
|
||||||
return IsUpgradeWalletNotificationEnabledUseCase(
|
|
||||||
walletsRepository = walletsRepository,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun providesDismissUpgradeWalletNotificationUseCase(
|
|
||||||
walletsRepository: WalletsRepository,
|
|
||||||
): DismissUpgradeWalletNotificationUseCase {
|
|
||||||
return DismissUpgradeWalletNotificationUseCase(
|
|
||||||
walletsRepository = walletsRepository,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun providesUnlockHotWalletContextualUseCase(
|
fun providesUnlockHotWalletContextualUseCase(
|
||||||
|
|
|
||||||
|
|
@ -50,9 +50,6 @@ internal class DefaultWalletsRepository(
|
||||||
private val moshi: com.squareup.moshi.Moshi,
|
private val moshi: com.squareup.moshi.Moshi,
|
||||||
) : WalletsRepository {
|
) : WalletsRepository {
|
||||||
|
|
||||||
private val upgradeWalletNotificationDisabled: MutableStateFlow<Set<UserWalletId>> =
|
|
||||||
MutableStateFlow(mutableSetOf())
|
|
||||||
|
|
||||||
@Deprecated("Hot wallet feature makes app always save user wallets. Do not use this method")
|
@Deprecated("Hot wallet feature makes app always save user wallets. Do not use this method")
|
||||||
override suspend fun shouldSaveUserWalletsSync(): Boolean {
|
override suspend fun shouldSaveUserWalletsSync(): Boolean {
|
||||||
return appPreferencesStore.getSyncOrDefault(key = PreferencesKeys.SAVE_USER_WALLETS_KEY, default = false)
|
return appPreferencesStore.getSyncOrDefault(key = PreferencesKeys.SAVE_USER_WALLETS_KEY, default = false)
|
||||||
|
|
@ -339,16 +336,6 @@ internal class DefaultWalletsRepository(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isUpgradeWalletNotificationEnabled(userWalletId: UserWalletId): Flow<Boolean> {
|
|
||||||
return upgradeWalletNotificationDisabled.map {
|
|
||||||
it.contains(userWalletId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun dismissUpgradeWalletNotification(userWalletId: UserWalletId) {
|
|
||||||
upgradeWalletNotificationDisabled.update { it.plus(userWalletId) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun setWalletName(walletId: UserWalletId, walletName: String) = withContext(dispatchers.io) {
|
override suspend fun setWalletName(walletId: UserWalletId, walletName: String) = withContext(dispatchers.io) {
|
||||||
val userWallet = userWalletsStore.getSyncOrNull(key = walletId)
|
val userWallet = userWalletsStore.getSyncOrNull(key = walletId)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,10 +60,6 @@ interface WalletsRepository {
|
||||||
|
|
||||||
suspend fun setNotificationsEnabled(userWalletId: UserWalletId, isEnabled: Boolean)
|
suspend fun setNotificationsEnabled(userWalletId: UserWalletId, isEnabled: Boolean)
|
||||||
|
|
||||||
fun isUpgradeWalletNotificationEnabled(userWalletId: UserWalletId): Flow<Boolean>
|
|
||||||
|
|
||||||
suspend fun dismissUpgradeWalletNotification(userWalletId: UserWalletId)
|
|
||||||
|
|
||||||
@Throws
|
@Throws
|
||||||
suspend fun setWalletName(walletId: UserWalletId, walletName: String)
|
suspend fun setWalletName(walletId: UserWalletId, walletName: String)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
package com.tangem.domain.wallets.usecase
|
|
||||||
|
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
|
||||||
import com.tangem.domain.wallets.repository.WalletsRepository
|
|
||||||
|
|
||||||
class DismissUpgradeWalletNotificationUseCase(
|
|
||||||
private val walletsRepository: WalletsRepository,
|
|
||||||
) {
|
|
||||||
suspend operator fun invoke(userWalletId: UserWalletId) {
|
|
||||||
walletsRepository.dismissUpgradeWalletNotification(userWalletId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
package com.tangem.domain.wallets.usecase
|
|
||||||
|
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
|
||||||
import com.tangem.domain.wallets.repository.WalletsRepository
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
|
|
||||||
class IsUpgradeWalletNotificationEnabledUseCase(
|
|
||||||
private val walletsRepository: WalletsRepository,
|
|
||||||
) {
|
|
||||||
operator fun invoke(userWalletId: UserWalletId): Flow<Boolean> {
|
|
||||||
return walletsRepository.isUpgradeWalletNotificationEnabled(userWalletId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -104,7 +104,7 @@ internal fun AccessCode(
|
||||||
) {
|
) {
|
||||||
PinTextField(
|
PinTextField(
|
||||||
length = state.accessCodeLength,
|
length = state.accessCodeLength,
|
||||||
isPasswordVisual = state.isConfirmMode,
|
isPasswordVisual = true,
|
||||||
value = state.accessCode,
|
value = state.accessCode,
|
||||||
pinTextColor = state.accessCodeColor,
|
pinTextColor = state.accessCodeColor,
|
||||||
onValueChange = state.onAccessCodeChange,
|
onValueChange = state.onAccessCodeChange,
|
||||||
|
|
|
||||||
|
|
@ -38,31 +38,19 @@ internal class ForgetWalletModel @Inject constructor(
|
||||||
field = MutableStateFlow(
|
field = MutableStateFlow(
|
||||||
ForgetWalletUM(
|
ForgetWalletUM(
|
||||||
onBackClick = { router.pop() },
|
onBackClick = { router.pop() },
|
||||||
firstCheckboxChecked = false,
|
isCheckboxChecked = false,
|
||||||
secondCheckboxChecked = false,
|
onCheckboxClick = ::onCheckboxClick,
|
||||||
onFirstCheckboxClick = ::onFirstCheckboxClick,
|
|
||||||
onSecondCheckboxClick = ::onSecondCheckboxClick,
|
|
||||||
onForgetWalletClick = ::onForgetWalletClick,
|
onForgetWalletClick = ::onForgetWalletClick,
|
||||||
isForgetButtonEnabled = false,
|
isForgetButtonEnabled = false,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun onFirstCheckboxClick() {
|
private fun onCheckboxClick() {
|
||||||
uiState.update {
|
uiState.update { currentState ->
|
||||||
val newValue = !it.firstCheckboxChecked
|
val newValue = !currentState.isCheckboxChecked
|
||||||
it.copy(
|
currentState.copy(
|
||||||
firstCheckboxChecked = newValue,
|
isCheckboxChecked = newValue,
|
||||||
isForgetButtonEnabled = newValue && it.secondCheckboxChecked,
|
isForgetButtonEnabled = newValue,
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun onSecondCheckboxClick() {
|
|
||||||
uiState.update {
|
|
||||||
val newValue = !it.secondCheckboxChecked
|
|
||||||
it.copy(
|
|
||||||
secondCheckboxChecked = newValue,
|
|
||||||
isForgetButtonEnabled = it.firstCheckboxChecked && newValue,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,8 @@ package com.tangem.features.hotwallet.forgetwallet.entity
|
||||||
|
|
||||||
internal data class ForgetWalletUM(
|
internal data class ForgetWalletUM(
|
||||||
val onBackClick: () -> Unit,
|
val onBackClick: () -> Unit,
|
||||||
val firstCheckboxChecked: Boolean,
|
val isCheckboxChecked: Boolean,
|
||||||
val secondCheckboxChecked: Boolean,
|
val onCheckboxClick: () -> Unit,
|
||||||
val onFirstCheckboxClick: () -> Unit,
|
|
||||||
val onSecondCheckboxClick: () -> Unit,
|
|
||||||
val onForgetWalletClick: () -> Unit,
|
val onForgetWalletClick: () -> Unit,
|
||||||
val isForgetButtonEnabled: Boolean,
|
val isForgetButtonEnabled: Boolean,
|
||||||
)
|
)
|
||||||
|
|
@ -70,15 +70,8 @@ internal fun ForgetWalletContent(state: ForgetWalletUM, modifier: Modifier = Mod
|
||||||
Spacer(modifier = Modifier.height(48.dp))
|
Spacer(modifier = Modifier.height(48.dp))
|
||||||
CheckboxItem(
|
CheckboxItem(
|
||||||
modifier = Modifier.padding(horizontal = 16.dp),
|
modifier = Modifier.padding(horizontal = 16.dp),
|
||||||
checked = state.firstCheckboxChecked,
|
checked = state.isCheckboxChecked,
|
||||||
onCheckedChange = state.onFirstCheckboxClick,
|
onCheckedChange = state.onCheckboxClick,
|
||||||
text = stringResourceSafe(R.string.hw_remove_wallet_warning_device),
|
|
||||||
)
|
|
||||||
Spacer(modifier = Modifier.height(16.dp))
|
|
||||||
CheckboxItem(
|
|
||||||
modifier = Modifier.padding(horizontal = 16.dp),
|
|
||||||
checked = state.secondCheckboxChecked,
|
|
||||||
onCheckedChange = state.onSecondCheckboxClick,
|
|
||||||
text = stringResourceSafe(R.string.hw_remove_wallet_warning_access),
|
text = stringResourceSafe(R.string.hw_remove_wallet_warning_access),
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.height(32.dp))
|
Spacer(modifier = Modifier.height(32.dp))
|
||||||
|
|
@ -142,10 +135,8 @@ private fun PreviewForgetWalletContent() {
|
||||||
ForgetWalletContent(
|
ForgetWalletContent(
|
||||||
state = ForgetWalletUM(
|
state = ForgetWalletUM(
|
||||||
onBackClick = {},
|
onBackClick = {},
|
||||||
firstCheckboxChecked = true,
|
isCheckboxChecked = false,
|
||||||
secondCheckboxChecked = false,
|
onCheckboxClick = {},
|
||||||
onFirstCheckboxClick = {},
|
|
||||||
onSecondCheckboxClick = {},
|
|
||||||
onForgetWalletClick = {},
|
onForgetWalletClick = {},
|
||||||
isForgetButtonEnabled = false,
|
isForgetButtonEnabled = false,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -65,9 +65,7 @@ internal class PreviewWalletSettingsComponent : WalletSettingsComponent {
|
||||||
onNotificationsDescriptionClick = {},
|
onNotificationsDescriptionClick = {},
|
||||||
isNotificationsPermissionGranted = false,
|
isNotificationsPermissionGranted = false,
|
||||||
onAccessCodeClick = {},
|
onAccessCodeClick = {},
|
||||||
walletUpgradeDismissed = false,
|
|
||||||
onUpgradeWalletClick = {},
|
onUpgradeWalletClick = {},
|
||||||
onDismissUpgradeWalletClick = {},
|
|
||||||
onBackupClick = {},
|
onBackupClick = {},
|
||||||
onCardSettingsClick = {},
|
onCardSettingsClick = {},
|
||||||
accountsUM = previewAccounts(),
|
accountsUM = previewAccounts(),
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,6 @@ internal sealed class WalletSettingsItemUM {
|
||||||
val title: TextReference,
|
val title: TextReference,
|
||||||
val description: TextReference,
|
val description: TextReference,
|
||||||
val onClick: () -> Unit,
|
val onClick: () -> Unit,
|
||||||
val onDismissClick: () -> Unit,
|
|
||||||
) : WalletSettingsItemUM()
|
) : WalletSettingsItemUM()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,8 +86,6 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
private val settingsManager: SettingsManager,
|
private val settingsManager: SettingsManager,
|
||||||
private val permissionsRepository: PermissionRepository,
|
private val permissionsRepository: PermissionRepository,
|
||||||
private val notificationsRepository: NotificationsRepository,
|
private val notificationsRepository: NotificationsRepository,
|
||||||
private val isUpgradeWalletNotificationEnabledUseCase: IsUpgradeWalletNotificationEnabledUseCase,
|
|
||||||
private val dismissUpgradeWalletNotificationUseCase: DismissUpgradeWalletNotificationUseCase,
|
|
||||||
private val unlockHotWalletContextualUseCase: UnlockHotWalletContextualUseCase,
|
private val unlockHotWalletContextualUseCase: UnlockHotWalletContextualUseCase,
|
||||||
private val accountsFeatureToggles: AccountsFeatureToggles,
|
private val accountsFeatureToggles: AccountsFeatureToggles,
|
||||||
private val isAccountsModeEnabledUseCase: IsAccountsModeEnabledUseCase,
|
private val isAccountsModeEnabledUseCase: IsAccountsModeEnabledUseCase,
|
||||||
|
|
@ -140,10 +138,9 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
flow2 = getWalletNotificationsEnabledUseCase(params.userWalletId)
|
flow2 = getWalletNotificationsEnabledUseCase(params.userWalletId)
|
||||||
.distinctUntilChanged()
|
.distinctUntilChanged()
|
||||||
.conflate(),
|
.conflate(),
|
||||||
flow3 = isUpgradeWalletNotificationEnabledUseCase(params.userWalletId),
|
flow3 = walletCardItemDelegate.cardItemFlow(wallet),
|
||||||
flow4 = walletCardItemDelegate.cardItemFlow(wallet),
|
flow4 = accountItemsDelegate.loadAccount(wallet),
|
||||||
flow5 = accountItemsDelegate.loadAccount(wallet),
|
) { nftEnabled, notificationsEnabled, cardItem, accountList ->
|
||||||
) { nftEnabled, notificationsEnabled, isUpgradeNotificationEnabled, cardItem, accountList ->
|
|
||||||
val isWalletBackedUp = when (wallet) {
|
val isWalletBackedUp = when (wallet) {
|
||||||
is UserWallet.Hot -> wallet.backedUp
|
is UserWallet.Hot -> wallet.backedUp
|
||||||
is UserWallet.Cold -> true
|
is UserWallet.Cold -> true
|
||||||
|
|
@ -156,7 +153,6 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
isNFTEnabled = nftEnabled,
|
isNFTEnabled = nftEnabled,
|
||||||
isNotificationsEnabled = notificationsEnabled,
|
isNotificationsEnabled = notificationsEnabled,
|
||||||
isNotificationsPermissionGranted = isNotificationsPermissionGranted(),
|
isNotificationsPermissionGranted = isNotificationsPermissionGranted(),
|
||||||
isUpgradeNotificationEnabled = isUpgradeNotificationEnabled,
|
|
||||||
accountList = accountList,
|
accountList = accountList,
|
||||||
),
|
),
|
||||||
accountReorderUM = AccountReorderUM(
|
accountReorderUM = AccountReorderUM(
|
||||||
|
|
@ -197,7 +193,6 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
isNFTEnabled: Boolean,
|
isNFTEnabled: Boolean,
|
||||||
isNotificationsEnabled: Boolean,
|
isNotificationsEnabled: Boolean,
|
||||||
isNotificationsPermissionGranted: Boolean,
|
isNotificationsPermissionGranted: Boolean,
|
||||||
isUpgradeNotificationEnabled: Boolean,
|
|
||||||
accountList: List<WalletSettingsAccountsUM>,
|
accountList: List<WalletSettingsAccountsUM>,
|
||||||
): PersistentList<WalletSettingsItemUM> {
|
): PersistentList<WalletSettingsItemUM> {
|
||||||
val isAccountsFeatureEnabled = accountsFeatureToggles.isFeatureEnabled
|
val isAccountsFeatureEnabled = accountsFeatureToggles.isFeatureEnabled
|
||||||
|
|
@ -254,9 +249,7 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
onCheckedNotificationsChanged = ::onCheckedNotificationsChange,
|
onCheckedNotificationsChanged = ::onCheckedNotificationsChange,
|
||||||
onNotificationsDescriptionClick = ::onNotificationsDescriptionClick,
|
onNotificationsDescriptionClick = ::onNotificationsDescriptionClick,
|
||||||
onAccessCodeClick = { onAccessCodeClick(userWallet) },
|
onAccessCodeClick = { onAccessCodeClick(userWallet) },
|
||||||
walletUpgradeDismissed = isUpgradeNotificationEnabled,
|
|
||||||
onUpgradeWalletClick = { onUpgradeWalletClick() },
|
onUpgradeWalletClick = { onUpgradeWalletClick() },
|
||||||
onDismissUpgradeWalletClick = ::onDismissUpgradeWalletClick,
|
|
||||||
onBackupClick = ::onBackupClick,
|
onBackupClick = ::onBackupClick,
|
||||||
onCardSettingsClick = ::onCardSettingsClick,
|
onCardSettingsClick = ::onCardSettingsClick,
|
||||||
accountsUM = accountList,
|
accountsUM = accountList,
|
||||||
|
|
@ -411,12 +404,6 @@ internal class WalletSettingsModel @Inject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onDismissUpgradeWalletClick() {
|
|
||||||
modelScope.launch {
|
|
||||||
dismissUpgradeWalletNotificationUseCase.invoke(params.userWalletId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun onBackupClick() {
|
private fun onBackupClick() {
|
||||||
analyticsEventHandler.send(WalletSettingsAnalyticEvents.ButtonBackup())
|
analyticsEventHandler.send(WalletSettingsAnalyticEvents.ButtonBackup())
|
||||||
router.push(AppRoute.WalletBackup(params.userWalletId))
|
router.push(AppRoute.WalletBackup(params.userWalletId))
|
||||||
|
|
|
||||||
|
|
@ -281,7 +281,6 @@ private fun UpgradeWalletBlock(model: WalletSettingsItemUM.UpgradeWallet, modifi
|
||||||
iconResId = R.drawable.ic_hardware_backup_36,
|
iconResId = R.drawable.ic_hardware_backup_36,
|
||||||
iconSize = 36.dp,
|
iconSize = 36.dp,
|
||||||
onClick = model.onClick,
|
onClick = model.onClick,
|
||||||
onCloseClick = model.onDismissClick,
|
|
||||||
shouldShowArrowIcon = false,
|
shouldShowArrowIcon = false,
|
||||||
),
|
),
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
|
|
@ -493,7 +492,6 @@ private fun Preview_WalletSettingsScreen1() {
|
||||||
title = stringReference("Upgrade wallet with a hardware backup"),
|
title = stringReference("Upgrade wallet with a hardware backup"),
|
||||||
description = stringReference("Keep your crypto safe with Tangem’s best-in-class hardware wallet."),
|
description = stringReference("Keep your crypto safe with Tangem’s best-in-class hardware wallet."),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
onDismissClick = {},
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,7 @@ internal class ItemsBuilder @Inject constructor() {
|
||||||
onReferralClick: () -> Unit,
|
onReferralClick: () -> Unit,
|
||||||
onManageTokensClick: () -> Unit,
|
onManageTokensClick: () -> Unit,
|
||||||
onAccessCodeClick: () -> Unit,
|
onAccessCodeClick: () -> Unit,
|
||||||
walletUpgradeDismissed: Boolean,
|
|
||||||
onUpgradeWalletClick: () -> Unit,
|
onUpgradeWalletClick: () -> Unit,
|
||||||
onDismissUpgradeWalletClick: () -> Unit,
|
|
||||||
onBackupClick: () -> Unit,
|
onBackupClick: () -> Unit,
|
||||||
onCardSettingsClick: () -> Unit,
|
onCardSettingsClick: () -> Unit,
|
||||||
): PersistentList<WalletSettingsItemUM> = persistentListOf<WalletSettingsItemUM>()
|
): PersistentList<WalletSettingsItemUM> = persistentListOf<WalletSettingsItemUM>()
|
||||||
|
|
@ -48,9 +46,7 @@ internal class ItemsBuilder @Inject constructor() {
|
||||||
.addAll(
|
.addAll(
|
||||||
buildUpgradeWalletItem(
|
buildUpgradeWalletItem(
|
||||||
userWallet = userWallet,
|
userWallet = userWallet,
|
||||||
walletUpgradeDismissed = walletUpgradeDismissed,
|
|
||||||
onUpgradeWalletClick = onUpgradeWalletClick,
|
onUpgradeWalletClick = onUpgradeWalletClick,
|
||||||
onDismissUpgradeWalletClick = onDismissUpgradeWalletClick,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.addAll(buildAccessCodeItem(userWallet, onAccessCodeClick))
|
.addAll(buildAccessCodeItem(userWallet, onAccessCodeClick))
|
||||||
|
|
@ -122,24 +118,17 @@ internal class ItemsBuilder @Inject constructor() {
|
||||||
|
|
||||||
private fun buildUpgradeWalletItem(
|
private fun buildUpgradeWalletItem(
|
||||||
userWallet: UserWallet,
|
userWallet: UserWallet,
|
||||||
walletUpgradeDismissed: Boolean,
|
|
||||||
onUpgradeWalletClick: () -> Unit,
|
onUpgradeWalletClick: () -> Unit,
|
||||||
onDismissUpgradeWalletClick: () -> Unit,
|
|
||||||
): List<WalletSettingsItemUM> = when (userWallet) {
|
): List<WalletSettingsItemUM> = when (userWallet) {
|
||||||
is UserWallet.Cold -> emptyList()
|
is UserWallet.Cold -> emptyList()
|
||||||
is UserWallet.Hot -> if (!walletUpgradeDismissed) {
|
is UserWallet.Hot -> listOf(
|
||||||
listOf(
|
WalletSettingsItemUM.UpgradeWallet(
|
||||||
WalletSettingsItemUM.UpgradeWallet(
|
id = "upgrade_wallet",
|
||||||
id = "upgrade_wallet",
|
title = resourceReference(id = R.string.hw_upgrade_to_cold_banner_title),
|
||||||
title = resourceReference(id = R.string.hw_upgrade_to_cold_banner_title),
|
description = resourceReference(id = R.string.hw_upgrade_to_cold_banner_description),
|
||||||
description = resourceReference(id = R.string.hw_upgrade_to_cold_banner_description),
|
onClick = onUpgradeWalletClick,
|
||||||
onClick = onUpgradeWalletClick,
|
),
|
||||||
onDismissClick = onDismissUpgradeWalletClick,
|
)
|
||||||
),
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
emptyList()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildNotificationsPermissionItem() = WalletSettingsItemUM.NotificationPermission(
|
private fun buildNotificationsPermissionItem() = WalletSettingsItemUM.NotificationPermission(
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ internal fun AnimatedContentScope.WelcomeSelectWallet(state: WelcomeUM.SelectWal
|
||||||
BottomFade(modifier = Modifier.align(Alignment.BottomCenter))
|
BottomFade(modifier = Modifier.align(Alignment.BottomCenter))
|
||||||
|
|
||||||
if (state.showUnlockWithBiometricButton) {
|
if (state.showUnlockWithBiometricButton) {
|
||||||
SecondaryButton(
|
PrimaryButton(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.BottomCenter)
|
.align(Alignment.BottomCenter)
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue