Updated on 2026-08-14

This commit is contained in:
Tangem 2022-02-08 15:02:41 +03:00
parent 763badc3a9
commit 6a9f29d62c
3 changed files with 23 additions and 4 deletions

View file

@ -15,6 +15,7 @@ sealed class TokensAction : Action {
data class SetAddedCurrencies(val wallets: List<WalletData>) : TokensAction()
data class ToggleShowTokensForBlockchain(val isShown: Boolean, val blockchain: Blockchain) : TokensAction()
object OpenAllTokens : TokensAction()
data class SaveChanges(val addedItems: List<CurrencyListItem>) : TokensAction()
}

View file

@ -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
}
}

View file

@ -100,6 +100,7 @@ class CurrenciesAdapter : ListAdapter<CurrencyListItem, RecyclerView.ViewHolder>
val list = mutableListOf<CurrencyListItem>()
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<CurrencyListItem, RecyclerView.ViewHolder>
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
}
}
}