forked from thijooree/android
optimze mib cards loading
This commit is contained in:
@@ -101,7 +101,9 @@ class CardSettingsFragment : Fragment() {
|
||||
tvCardOwner.text = card.cardHolderName
|
||||
tvCardNumber.text = PayWithCardFragment.formatMasked(card.maskedCardNumber)
|
||||
tvCardType.text = card.cardTypeDesc
|
||||
PayWithCardFragment.loadCardImage(ivCardImage, PayWithCardFragment.cardImageAsset(card))
|
||||
val assetPath = PayWithCardFragment.cardImageAsset(card)
|
||||
if (assetPath != null) PayWithCardFragment.loadCardImage(ivCardImage, assetPath)
|
||||
else ivCardImage.setImageDrawable(null)
|
||||
val wip = View.OnClickListener {
|
||||
Toast.makeText(context, R.string.work_in_progress, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ import sh.sar.basedbank.api.mib.MibFinanceDeal
|
||||
import sh.sar.basedbank.util.AccountCache
|
||||
import sh.sar.basedbank.util.ContactsCache
|
||||
import sh.sar.basedbank.util.CredentialStore
|
||||
import sh.sar.basedbank.util.CardsCache
|
||||
import sh.sar.basedbank.util.FinancingCache
|
||||
import sh.sar.basedbank.util.ForeignLimitsCache
|
||||
|
||||
@@ -1011,6 +1012,7 @@ fun applyNavLabelVisibility() {
|
||||
existing.removeAll { it.loginTag == "mib_$loginId" }
|
||||
existing += cards
|
||||
viewModel.mibCards.postValue(existing)
|
||||
CardsCache.save(this@HomeActivity, existing)
|
||||
}
|
||||
} catch (_: Exception) { }
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import sh.sar.basedbank.R
|
||||
import sh.sar.basedbank.api.mib.MibCard
|
||||
import sh.sar.basedbank.databinding.FragmentPayWithCardBinding
|
||||
import sh.sar.basedbank.util.CardsCache
|
||||
|
||||
class PayWithCardFragment : Fragment() {
|
||||
|
||||
@@ -57,10 +58,13 @@ class PayWithCardFragment : Fragment() {
|
||||
binding.recyclerView.visibility = if (cards.isEmpty()) View.GONE else View.VISIBLE
|
||||
}
|
||||
|
||||
if (viewModel.mibCards.value == null) {
|
||||
val cached = CardsCache.load(requireContext())
|
||||
if (cached.isNotEmpty()) {
|
||||
viewModel.mibCards.value = cached
|
||||
} else {
|
||||
binding.loadingView.visibility = View.VISIBLE
|
||||
(activity as? HomeActivity)?.triggerRefreshCards()
|
||||
}
|
||||
(activity as? HomeActivity)?.triggerRefreshCards()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -101,7 +105,9 @@ class PayWithCardFragment : Fragment() {
|
||||
tvCardOwner.text = card.cardHolderName
|
||||
tvCardNumber.text = formatMasked(card.maskedCardNumber)
|
||||
tvCardType.text = card.cardTypeDesc
|
||||
loadCardImage(ivCardImage, cardImageAsset(card))
|
||||
val assetPath = cardImageAsset(card)
|
||||
if (assetPath != null) loadCardImage(ivCardImage, assetPath)
|
||||
else ivCardImage.setImageDrawable(null)
|
||||
btnPayQr.setOnClickListener {
|
||||
Toast.makeText(context, R.string.work_in_progress, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
@@ -113,13 +119,11 @@ class PayWithCardFragment : Fragment() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun cardImageAsset(card: MibCard): String {
|
||||
val desc = card.cardTypeDesc.lowercase()
|
||||
return when {
|
||||
"corporate" in desc || "business" in desc -> "cards/mib/visa_business.jpg"
|
||||
"platinum" in desc -> "cards/mib/cards-platinum-bg-w-logo-1.jpg"
|
||||
else -> "cards/mib/cards-blue-bg-w-logo-1.jpg"
|
||||
}
|
||||
fun cardImageAsset(card: MibCard): String? = when (card.cardType) {
|
||||
"53" -> "cards/mib/visa_black_platinum.jpg"
|
||||
"57" -> "cards/mib/visa_blue_everyday.jpg"
|
||||
"70" -> "cards/mib/visa_business.jpg"
|
||||
else -> null
|
||||
}
|
||||
|
||||
fun loadCardImage(imageView: ImageView, assetPath: String) {
|
||||
@@ -129,7 +133,7 @@ class PayWithCardFragment : Fragment() {
|
||||
}
|
||||
imageView.setImageBitmap(bitmap)
|
||||
} catch (_: Exception) {
|
||||
imageView.setImageResource(android.R.color.darker_gray)
|
||||
imageView.setImageDrawable(null)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user