diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt index 0cdb475..11a23eb 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsAdapter.kt @@ -3,13 +3,12 @@ package sh.sar.basedbank.ui.home import android.content.ClipData import android.content.ClipboardManager import android.content.Context -import android.graphics.Color -import android.graphics.drawable.GradientDrawable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.RecyclerView +import sh.sar.basedbank.R import sh.sar.basedbank.api.mib.MibAccount import sh.sar.basedbank.databinding.ItemAccountBinding import sh.sar.basedbank.databinding.ItemCardBinding @@ -119,13 +118,7 @@ class AccountsAdapter( private inner class CardViewHolder(private val binding: ItemCardBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(account: MibAccount) { - val brand = cardBrand(account.accountTypeName) - binding.tvCardBrand.text = brand.label - binding.tvCardBrand.background = GradientDrawable().apply { - shape = GradientDrawable.RECTANGLE - cornerRadius = 100f - setColor(Color.parseColor(brand.color)) - } + binding.ivCardBrand.setImageResource(cardBrandIcon(account.accountTypeName)) binding.tvCardName.text = account.accountBriefName binding.tvCardNumber.text = account.accountNumber binding.layoutCardBalance.visibility = View.VISIBLE @@ -170,14 +163,12 @@ class AccountsAdapter( } } - private data class Brand(val label: String, val color: String) - - private fun cardBrand(productName: String): Brand = when { + private fun cardBrandIcon(productName: String): Int = when { productName.contains("AMEX", ignoreCase = true) || - productName.contains("AMERICAN EXPRESS", ignoreCase = true) -> Brand("AMEX", "#016FD0") - productName.contains("VISA", ignoreCase = true) -> Brand("VISA", "#1A1F71") - productName.contains("MASTERCARD", ignoreCase = true) -> Brand("MC", "#FF5F00") - else -> Brand("CARD", "#555555") + productName.contains("AMERICAN EXPRESS", ignoreCase = true) -> R.drawable.americanexpress + productName.contains("VISA", ignoreCase = true) -> R.drawable.visa + productName.contains("MASTERCARD", ignoreCase = true) -> R.drawable.mastercard + else -> R.drawable.ic_nav_card } } } diff --git a/app/src/main/res/drawable/americanexpress.xml b/app/src/main/res/drawable/americanexpress.xml new file mode 100644 index 0000000..8631858 --- /dev/null +++ b/app/src/main/res/drawable/americanexpress.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/mastercard.xml b/app/src/main/res/drawable/mastercard.xml new file mode 100644 index 0000000..19ba1ed --- /dev/null +++ b/app/src/main/res/drawable/mastercard.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/visa.xml b/app/src/main/res/drawable/visa.xml new file mode 100644 index 0000000..d65592f --- /dev/null +++ b/app/src/main/res/drawable/visa.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/layout/item_card.xml b/app/src/main/res/layout/item_card.xml index 67e85aa..f0c4e7c 100644 --- a/app/src/main/res/layout/item_card.xml +++ b/app/src/main/res/layout/item_card.xml @@ -14,18 +14,14 @@ android:gravity="center_vertical" android:foreground="?attr/selectableItemBackground"> - - + + android:scaleType="fitCenter" + android:contentDescription="Card brand" />