From 443560a5fd0e1f9ab98d3a31e2d004e1aaf98181 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 30 Jan 2024 20:49:55 +0100 Subject: [PATCH] Updated on 2026-08-14 --- .../presentation/models/AddCustomTokenViewsModels.kt | 11 ++++++++--- .../impl/presentation/ui/AddCustomTokenPreviewData.kt | 11 +++++++++-- .../ui/components/AddCustomTokenFloatingButton.kt | 5 +++-- .../viewmodels/AddCustomTokenViewModel.kt | 10 +++++++++- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/models/AddCustomTokenViewsModels.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/models/AddCustomTokenViewsModels.kt index 965525c83e..ca7f910b83 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/models/AddCustomTokenViewsModels.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/models/AddCustomTokenViewsModels.kt @@ -313,7 +313,12 @@ internal sealed class AddCustomTokenWarning(val description: TextReference) { /** * Floating button of add custom token screen * - * @property isEnabled button availability - * @property onClick lambda be invoked when button is been pressed + * @property isEnabled button availability + * @property showProgress whether circle progress indication is enabled + * @property onClick lambda be invoked when button is been pressed */ -internal data class AddCustomTokenFloatingButton(val isEnabled: Boolean, val onClick: () -> Unit) \ No newline at end of file +internal data class AddCustomTokenFloatingButton( + val isEnabled: Boolean, + val showProgress: Boolean, + val onClick: () -> Unit +) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenPreviewData.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenPreviewData.kt index b5274e6d12..7283e0ccf9 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenPreviewData.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/AddCustomTokenPreviewData.kt @@ -91,7 +91,11 @@ internal object AddCustomTokenPreviewData { ), form = createDefaultForm(), warnings = createWarnings(), - floatingButton = AddCustomTokenFloatingButton(isEnabled = false, onClick = {}), + floatingButton = AddCustomTokenFloatingButton( + isEnabled = false, + showProgress = false, + onClick = {} + ), testBlock = AddCustomTokenTestBlock( chooseTokenButtonText = "Choose token", clearButtonText = "Clear address", @@ -112,7 +116,10 @@ internal object AddCustomTokenPreviewData { ), form = createDefaultForm(), warnings = createWarnings(), - floatingButton = AddCustomTokenFloatingButton(isEnabled = false, onClick = {}), + floatingButton = AddCustomTokenFloatingButton( + isEnabled = false, + showProgress = false, + onClick = {}), ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt index 558534f369..a55ee2f29e 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt @@ -32,6 +32,7 @@ internal fun AddCustomTokenFloatingButton(model: AddCustomTokenFloatingButton, m text = stringResource(id = R.string.custom_token_add_token), iconResId = R.drawable.ic_plus_24, enabled = model.isEnabled, + showProgress = model.showProgress, onClick = model.onClick, ) } @@ -48,7 +49,7 @@ private fun Preview_AddCustomTokenFloatingButton( private class AddCustomTokenFloatingButtonProvider : CollectionPreviewParameterProvider( listOf( - AddCustomTokenFloatingButton(isEnabled = true, onClick = {}), - AddCustomTokenFloatingButton(isEnabled = false, onClick = {}), + AddCustomTokenFloatingButton(isEnabled = true, showProgress = false, onClick = {}), + AddCustomTokenFloatingButton(isEnabled = false, showProgress = false, onClick = {}), ), ) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/viewmodels/AddCustomTokenViewModel.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/viewmodels/AddCustomTokenViewModel.kt index aedff94b31..f92b119763 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/viewmodels/AddCustomTokenViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/viewmodels/AddCustomTokenViewModel.kt @@ -142,7 +142,10 @@ internal class AddCustomTokenViewModel @Inject constructor( } private fun createFloatingButton(): AddCustomTokenFloatingButton { - return AddCustomTokenFloatingButton(isEnabled = false, onClick = actionsHandler::onAddCustomTokenClick) + return AddCustomTokenFloatingButton( + isEnabled = true, + showProgress = false, + onClick = actionsHandler::onAddCustomTokenClick) } private inner class FormStateBuilder { @@ -852,9 +855,14 @@ internal class AddCustomTokenViewModel @Inject constructor( analyticsSender.sendWhenAddTokenButtonClicked(currency) viewModelScope.launch(dispatchers.io) { + val oldButtonState = uiState.floatingButton + uiState = uiState.copySealed( + floatingButton = uiState.floatingButton.copy(isEnabled = false, showProgress = true) + ) runCatching { featureInteractor.saveToken(currency) } .onSuccess { featureRouter.openWalletScreen() } .onFailure { + uiState = uiState.copySealed(floatingButton = oldButtonState) Timber.e(it) } }