From 36c84f0483d6f4b4a9d6721466c8ee6120adebec Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 27 Nov 2024 17:14:29 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../organizetokens/OrganizeTokensScreen.kt | 6 +++--- .../organizetokens/OrganizeTokensViewModel.kt | 13 +++++-------- .../organizetokens/model/OrganizeTokensListState.kt | 10 +--------- .../organizetokens/utils/dnd/DragAndDropAdapter.kt | 4 ++-- 4 files changed, 11 insertions(+), 22 deletions(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt index 15a4f2250e..1c79fc38cd 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt @@ -246,6 +246,7 @@ private fun TopBar( horizontalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing8), ) { RoundedActionButton( + modifier = Modifier.weight(1f), config = ActionButtonConfig( text = TextReference.Res(id = R.string.organize_tokens_sort_by_balance), iconResId = R.drawable.ic_sort_24, @@ -253,10 +254,10 @@ private fun TopBar( onClick = config.onSortClick, dimContent = config.isSortedByBalance, ), - modifier = Modifier.weight(1f), color = TangemTheme.colors.background.primary, ) RoundedActionButton( + modifier = Modifier.weight(1f), config = ActionButtonConfig( text = TextReference.Res( id = if (config.isGrouped) { @@ -265,11 +266,10 @@ private fun TopBar( R.string.organize_tokens_group }, ), - enabled = config.isEnabled, iconResId = R.drawable.ic_group_24, + enabled = config.isEnabled, onClick = config.onGroupClick, ), - modifier = Modifier.weight(1f), color = TangemTheme.colors.background.primary, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensViewModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensViewModel.kt index 93c0aab777..a27f15bdab 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensViewModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensViewModel.kt @@ -23,11 +23,9 @@ import com.tangem.feature.wallet.presentation.organizetokens.utils.dnd.DragAndDr import com.tangem.feature.wallet.presentation.router.InnerWalletRouter import com.tangem.feature.wallet.presentation.router.WalletRoute import com.tangem.utils.Provider -import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import javax.inject.Inject @Suppress("LongParameterList") @@ -40,7 +38,6 @@ internal class OrganizeTokensViewModel @Inject constructor( private val getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase, private val getBalanceHidingSettingsUseCase: GetBalanceHidingSettingsUseCase, private val analyticsEventsHandler: AnalyticsEventHandler, - private val dispatchers: CoroutineDispatcherProvider, savedStateHandle: SavedStateHandle, ) : ViewModel(), DefaultLifecycleObserver, OrganizeTokensIntents { @@ -95,7 +92,7 @@ internal class OrganizeTokensViewModel @Inject constructor( analyticsEventsHandler.send(PortfolioOrganizeTokensAnalyticsEvent.ByBalance) - viewModelScope.launch(dispatchers.default) { + viewModelScope.launch { toggleTokenListSortingUseCase(list).fold( ifLeft = stateHolder::updateStateWithError, ifRight = { @@ -111,7 +108,7 @@ internal class OrganizeTokensViewModel @Inject constructor( analyticsEventsHandler.send(PortfolioOrganizeTokensAnalyticsEvent.Group) - viewModelScope.launch(dispatchers.default) { + viewModelScope.launch { toggleTokenListGroupingUseCase(list).fold( ifLeft = stateHolder::updateStateWithError, ifRight = { @@ -123,7 +120,7 @@ internal class OrganizeTokensViewModel @Inject constructor( } override fun onApplyClick() { - viewModelScope.launch(dispatchers.default) { + viewModelScope.launch { stateHolder.updateStateToDisplayProgress() val listState = uiState.value.itemsState @@ -147,8 +144,8 @@ internal class OrganizeTokensViewModel @Inject constructor( result.fold( ifLeft = stateHolder::updateStateWithError, ifRight = { + router.popBackStack() stateHolder.updateStateToHideProgress() - withContext(dispatchers.main) { router.popBackStack() } }, ) } @@ -161,7 +158,7 @@ internal class OrganizeTokensViewModel @Inject constructor( } private fun bootstrapTokenList() { - viewModelScope.launch(dispatchers.default) { + viewModelScope.launch { val tokenList = getTokenList() ?: return@launch stateHolder.updateStateWithTokenList(tokenList) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/model/OrganizeTokensListState.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/model/OrganizeTokensListState.kt index 2bc9fe9dd9..111a8b5211 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/model/OrganizeTokensListState.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/model/OrganizeTokensListState.kt @@ -16,15 +16,7 @@ internal sealed class OrganizeTokensListState { override val items: PersistentList, ) : OrganizeTokensListState() - object Empty : OrganizeTokensListState() { + data object Empty : OrganizeTokensListState() { override val items: PersistentList = persistentListOf() } - - fun copySealed(items: PersistentList = this.items): OrganizeTokensListState { - return when (this) { - is GroupedByNetwork -> copy(items = items) - is Ungrouped -> copy(items = items) - is Empty -> Empty - } - } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/utils/dnd/DragAndDropAdapter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/utils/dnd/DragAndDropAdapter.kt index c567a63a5d..39d8295da6 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/utils/dnd/DragAndDropAdapter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/utils/dnd/DragAndDropAdapter.kt @@ -167,9 +167,9 @@ internal class DragAndDropAdapter( sealed class Type { - object Start : Type() + data object Start : Type() - object Dragged : Type() + data object Dragged : Type() data class End(val isItemsOrderChanged: Boolean) : Type() }