From f31f68b8790274380e078a560aa0d3e5682e20e8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 21 Jan 2022 17:02:23 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../features/onboarding/OnboardingManager.kt | 19 ---------------- .../wallet/redux/OnboardingWalletAction.kt | 3 +-- .../redux/OnboardingWalletMiddleware.kt | 17 +++++++++----- .../wallet/redux/OnboardingWalletReducer.kt | 2 +- .../wallet/redux/OnboardingWalletState.kt | 3 +-- .../wallet/ui/OnboardingWalletFragment.kt | 17 +++++++++++++- .../res/layout/fragment_onboarding_wallet.xml | 22 ++++++++++++++----- 7 files changed, 46 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt index 3aa671c5c3..9c3037a33c 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt @@ -37,25 +37,6 @@ class OnboardingManager( return scanResponse.card.getOrLoadCardArtworkUrl(cardInfo) } -// suspend fun loadArtwork(): Artwork { -// cardInfo = OnlineCardVerifier().getCardInfo(scanResponse.card.cardId, scanResponse.card.cardPublicKey) -// return loadArtwork(scanResponse.card.getOrLoadCardArtworkUrl(cardInfo)) -// } -// -// suspend fun loadArtwork(url: String): Artwork { -// return withContext(Dispatchers.Main) { -// suspendCoroutine { continuation -> -// UrlBitmapLoader().loadBitmap(url) { -// val result = when (it) { -// is Result.Success -> Artwork(url, it.data) -// is Result.Failure -> Artwork(url, null) -// } -// continuation.resume(result) -// } -// } -// } -// } - suspend fun updateBalance(walletManager: WalletManager): OnboardingWalletBalance { val balance = when (val result = walletManager.safeUpdate()) { is Result.Success -> { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt index 9bfdaaf381..57ede6fd8a 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt @@ -1,7 +1,6 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.graphics.Bitmap -import com.tangem.tap.features.wallet.redux.Artwork import org.rekotlin.Action sealed class OnboardingWalletAction : Action { @@ -14,7 +13,7 @@ sealed class OnboardingWalletAction : Action { object ProceedBackup : OnboardingWalletAction() object LoadArtwork : OnboardingWalletAction() - class SetArtworkUrl(val artwork: Artwork) : OnboardingWalletAction() + class SetArtworkUrl(val artworkUrl: String?) : OnboardingWalletAction() object OnBackPressed : OnboardingWalletAction() } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index 1816465f6e..cdccf7265a 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -14,8 +14,8 @@ import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.extensions.hasWallets import com.tangem.tap.domain.tasks.product.ScanResponse import com.tangem.tap.features.home.redux.HomeAction -import com.tangem.tap.features.onboarding.products.note.redux.OnboardingNoteAction import com.tangem.tap.features.onboarding.products.wallet.redux.OnboardingWalletMiddleware.Companion.BUY_WALLET_URL +import com.tangem.tap.features.wallet.redux.Artwork import kotlinx.coroutines.launch import org.rekotlin.Action import org.rekotlin.Middleware @@ -61,11 +61,16 @@ private fun handleWalletAction(action: Action) { } store.dispatch(action) } - is OnboardingNoteAction.LoadCardArtwork -> { -// scope.launch { -// val artwork = onboardingManager.loadArtwork() -// store.dispatchOnMain(OnboardingWalletAction.SetArtworkUrl(artwork)) -// } + is OnboardingWalletAction.LoadArtwork -> { + scope.launch { + val artwork = onboardingManager?.loadArtworkUrl() + val cardArtwork = if (artwork == Artwork.DEFAULT_IMG_URL) { + null + } else { + artwork + } + store.dispatchOnMain(OnboardingWalletAction.SetArtworkUrl(cardArtwork)) + } } is OnboardingWalletAction.CreateWallet -> { scope.launch { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt index 89542c532e..ce0c07b3c6 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt @@ -24,7 +24,7 @@ private fun internalReduce(action: Action, appState: AppState): OnboardingWallet OnboardingWalletState(step = OnboardingWalletStep.CreateWallet) is OnboardingWalletAction.ProceedBackup -> state.copy(step = OnboardingWalletStep.Backup) is OnboardingWalletAction.SetArtworkUrl -> { - state.copy(artwork = action.artwork) + state.copy(cardArtworkUrl = action.artworkUrl) } is OnboardingWalletAction.Done -> state.copy(step = OnboardingWalletStep.Done) else -> state diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt index a048261a6d..7aaa0fe88f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt @@ -2,7 +2,6 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.graphics.Bitmap import com.tangem.tap.common.redux.StateDialog -import com.tangem.tap.features.wallet.redux.Artwork import org.rekotlin.StateType /** @@ -11,7 +10,7 @@ import org.rekotlin.StateType data class OnboardingWalletState( val step: OnboardingWalletStep = OnboardingWalletStep.None, val backupState: BackupState = BackupState(), - val artwork: Artwork? = null, + val cardArtworkUrl: String? = null, val showConfetti: Boolean = false, ) : StateType { 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 5a1ccf6684..b550b82a5b 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 @@ -2,12 +2,14 @@ package com.tangem.tap.features.onboarding.products.wallet.ui import android.os.Bundle import android.view.* +import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.transition.TransitionInflater import androidx.transition.TransitionManager import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.tabs.TabLayoutMediator +import com.squareup.picasso.Picasso import com.tangem.common.CardIdFormatter import com.tangem.common.core.CardIdDisplayFormat import com.tangem.tap.common.extensions.dispatchOpenUrl @@ -62,6 +64,8 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), store.dispatch(OnboardingWalletAction.Init) toolbar.setNavigationOnClickListener { activity?.onBackPressed() } + store.dispatch(OnboardingWalletAction.LoadArtwork) + addBackPressHandler(this) } @@ -84,7 +88,10 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), requireActivity().invalidateOptionsMenu() - state.artwork?.artwork?.let { imv_front_card.setImageBitmap(it) } + loadImageIntoImageView(state.cardArtworkUrl, imv_front_card) + loadImageIntoImageView(state.cardArtworkUrl, imv_first_backup_card) + loadImageIntoImageView(state.cardArtworkUrl, imv_second_backup_card) + pb_state.max = 6 pb_state.progress = state.getProgressStep() @@ -99,6 +106,14 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), } } + private fun loadImageIntoImageView(url: String?, view: ImageView) { + Picasso.get() + .load(url) + .error(R.drawable.card_placeholder_black) + .placeholder(R.drawable.card_placeholder_black) + ?.into(view) + } + private fun setupCreateWalletState() { btn_main_action.setText(R.string.onboarding_create_wallet_button_create_wallet) btn_main_action.setOnClickListener { store.dispatch(OnboardingWalletAction.CreateWallet) } diff --git a/app/src/main/res/layout/fragment_onboarding_wallet.xml b/app/src/main/res/layout/fragment_onboarding_wallet.xml index 7f004c814d..e29397b2bb 100644 --- a/app/src/main/res/layout/fragment_onboarding_wallet.xml +++ b/app/src/main/res/layout/fragment_onboarding_wallet.xml @@ -78,28 +78,38 @@