From 6a9f29d62c914394974ae0166fc886be2f7a012d Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:02:41 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/tokens/redux/TokensAction.kt | 1 + .../features/tokens/redux/TokensReducer.kt | 5 +++++ .../tokens/ui/adapters/CurrenciesAdapter.kt | 21 +++++++++++++++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt index d2b911d8b7..734cd5ce71 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt @@ -15,6 +15,7 @@ sealed class TokensAction : Action { data class SetAddedCurrencies(val wallets: List) : TokensAction() data class ToggleShowTokensForBlockchain(val isShown: Boolean, val blockchain: Blockchain) : TokensAction() + object OpenAllTokens : TokensAction() data class SaveChanges(val addedItems: List) : TokensAction() } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt index 2fb4c5dec8..c8ec09cec0 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt @@ -37,6 +37,11 @@ private fun internalReduce(action: Action, state: AppState): TokensState { tokensState.copy(shownCurrencies = shownCurrencies) } } + is TokensAction.OpenAllTokens -> { + val shownCurrencies = tokensState.currencies + shownCurrencies.forEach { if (it is CurrencyListItem.TitleListItem) it.isContentShown = true} + tokensState.copy(shownCurrencies = tokensState.currencies) + } else -> tokensState } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt index f0046353d1..142630f83d 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/adapters/CurrenciesAdapter.kt @@ -100,6 +100,7 @@ class CurrenciesAdapter : ListAdapter val list = mutableListOf() if (!query.isNullOrEmpty()) { + store.dispatch(TokensAction.OpenAllTokens) val queryNormalized = query.toString().toLowerCase(Locale.US) list.addAll( unfilteredList.filter { element -> @@ -214,18 +215,30 @@ class CurrenciesAdapter : ListAdapter if (title.blockchain != null) { view.cl_subtitle_container.setOnClickListener { - val rotation = if (title.isContentShown) -90f else 0f + val rotation = if (title.isContentShown) -90f else 90f store.dispatch(TokensAction.ToggleShowTokensForBlockchain( title.isContentShown, title.blockchain )) - view.iv_toggle_sublist_visibility.animate().rotation(rotation) + view.iv_toggle_sublist_visibility.animate().rotation(rotation).withEndAction { + showArrow(view, title.isContentShown) + } } - view.iv_toggle_sublist_visibility.show() - view.iv_toggle_sublist_visibility.setImageResource(R.drawable.ic_arrow_angle_down) + showArrow(view, title.isContentShown) } else { view.iv_toggle_sublist_visibility.hide() } } + + private fun showArrow(view: View, isContentShown: Boolean) { + view.iv_toggle_sublist_visibility.show() + val drawable = if (isContentShown) { + R.drawable.ic_arrow_angle_down + } else { + R.drawable.ic_arrow_angle_right + } + view.iv_toggle_sublist_visibility.setImageResource(drawable) + view.iv_toggle_sublist_visibility.rotation = 0f + } } }