From 763badc3a938405730e450c4eb6d9b610ff4de3c Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 7 Feb 2022 15:48:59 +0300 Subject: [PATCH 1/6] Updated on 2026-08-14 --- .../com/tangem/tap/domain/tokens/CurrenciesRepository.kt | 5 +++++ .../tangem/tap/features/details/redux/DetailsMiddleware.kt | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt index 02d42e5869..ff3f478163 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt @@ -63,6 +63,11 @@ class CurrenciesRepository(val context: Application) { saveBlockchains(cardId, blockchains) } + fun removeCurrencies(cardId: String) { + saveTokens(cardId, emptyList()) + saveBlockchains(cardId, emptyList()) + } + private fun loadSavedTokens(cardId: String): List { val json = try { context.readFileText(getFileNameForTokens(cardId)) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index dfcf2c03f3..bc7e76fa5e 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -5,6 +5,7 @@ import com.tangem.common.card.FirmwareVersion import com.tangem.common.core.TangemSdkError import com.tangem.common.services.Result import com.tangem.operations.pins.CheckUserCodesResponse +import com.tangem.tap.* import com.tangem.tap.common.analytics.Analytics import com.tangem.tap.common.analytics.AnalyticsParam import com.tangem.tap.common.extensions.dispatchNotification @@ -19,10 +20,6 @@ import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsAction import com.tangem.tap.features.wallet.models.hasSendableAmountsOrPendingTransactions import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.network.coinmarketcap.CoinMarketCapService -import com.tangem.tap.preferencesStorage -import com.tangem.tap.scope -import com.tangem.tap.store -import com.tangem.tap.tangemSdkManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -115,6 +112,7 @@ class DetailsMiddleware { withContext(Dispatchers.Main) { when (result) { is CompletionResult.Success -> { + currenciesRepository.removeCurrencies(card.cardId) store.dispatch(NavigationAction.PopBackTo(AppScreen.Home)) } is CompletionResult.Failure -> { From 6a9f29d62c914394974ae0166fc886be2f7a012d Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:02:41 +0300 Subject: [PATCH 2/6] 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 + } } } From f28ebd24800129c0dacf29fd8eb071a98ea5d09e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:04:28 +0300 Subject: [PATCH 3/6] Updated on 2026-08-14 --- .../onboarding/products/wallet/ui/OnboardingWalletFragment.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index 27fe4c8eb7..da2c6abf3b 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -194,11 +194,10 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), layout_buttons_add_cards.show() layout_buttons_common.hide() + btn_add_card.text = getText(R.string.onboarding_button_add_backup_card) if (state.backupCardsNumber < state.maxBackupCards) { - btn_add_card.text = getText(R.string.onboarding_button_add_backup_card) btn_add_card.setOnClickListener { store.dispatch(BackupAction.AddBackupCard) } } else { - btn_add_card.text = "You hit the maximum" btn_add_card.isEnabled = false } From 884e1665ab7b1c2e94a6be95ce3612ac1b82af58 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:06:45 +0300 Subject: [PATCH 4/6] Updated on 2026-08-14 --- .../products/wallet/ui/OnboardingWalletFragment.kt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index da2c6abf3b..398ee44b55 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -136,7 +136,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), BackupStep.ReenterAccessCode -> showReenterAccessCode(state) is BackupStep.WritePrimaryCard -> showWritePrimaryCard(state) is BackupStep.WriteBackupCard -> showWriteBackupCard(state) - BackupStep.Finished -> showSuccess(state) + BackupStep.Finished -> showSuccess() } } @@ -330,20 +330,15 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), btn_main_action.setOnClickListener { store.dispatch(BackupAction.WriteBackupCard(cardNumber)) } } - private fun showSuccess(state: BackupState) { + private fun showSuccess() { tv_header.text = getText(R.string.onboarding_done_header) - val text = when (state.backupCardsNumber) { - 1 -> getText(R.string.onboarding_subtitle_success_backup_one_card) - 2 -> getText(R.string.onboarding_subtitle_success_backup) - else -> getText(R.string.onboarding_subtitle_success_tangem_wallet_onboarding) - } tv_header.show() tv_body.show() view_pager_backup_info.hide() tab_layout_backup_info.hide() - tv_body.text = text + tv_body.text = getText(R.string.onboarding_subtitle_success_tangem_wallet_onboarding) btn_main_action.text = getText(R.string.onboarding_button_continue_wallet) btn_alternative_action.hide() btn_main_action.setOnClickListener { From 1539ff242b4437ef3fd8e2567ae13e7d78343dfb Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:08:41 +0300 Subject: [PATCH 5/6] Updated on 2026-08-14 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d4e92b6555..47395a33b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,9 +77,9 @@ dependencies { implementation 'com.google.android.play:core-ktx:1.8.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' - implementation 'com.tangem:blockchain:develop-59' - implementation 'com.tangem.tangem-sdk-kotlin:core:develop-127' - implementation 'com.tangem.tangem-sdk-kotlin:android:develop-127' + implementation 'com.tangem:blockchain:develop-60' + implementation 'com.tangem.tangem-sdk-kotlin:core:develop-129' + implementation 'com.tangem.tangem-sdk-kotlin:android:develop-129' // WebView implementation "androidx.browser:browser:1.3.0" From 83fe3e504da339d314b157250b7deccaccd74f49 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Feb 2022 15:12:32 +0300 Subject: [PATCH 6/6] Updated on 2026-08-14 --- .../main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt | 2 +- .../main/java/com/tangem/tap/features/send/ui/SendFragment.kt | 2 +- .../java/com/tangem/tap/features/tokens/ui/AddTokensFragment.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt index 53bd278cc7..a8b65e58d9 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt @@ -92,7 +92,7 @@ class TwinCardsManager( card = card ) } - Result.failure(response.error) + Result.fromTangemSdkError(response.error) } } } diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt index 3938f9720e..be1379f6a6 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt @@ -298,7 +298,7 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { @ExperimentalCoroutinesApi fun EditText.inputtedTextAsFlow(): Flow = callbackFlow { - val watcher = addTextChangedListener { editable -> offer(editable?.toString() ?: "") } + val watcher = addTextChangedListener { editable -> trySend(editable?.toString() ?: "") } awaitClose { removeTextChangedListener(watcher) } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/AddTokensFragment.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/AddTokensFragment.kt index 38de45981b..178d8d514f 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/AddTokensFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/AddTokensFragment.kt @@ -121,7 +121,7 @@ fun SearchView.inputtedTextAsFlow(): Flow = callbackFlow { } override fun onQueryTextChange(newText: String?): Boolean { - offer(newText ?: "") + trySend(newText ?: "") return false } })