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