From 08010728239467a0db16b6b32af7fb7494918fc1 Mon Sep 17 00:00:00 2001 From: Mohan Shiwakoti Date: Tue, 16 May 2023 17:18:47 +0545 Subject: [PATCH] banner changes --- .../homeV3/adpaters/BannerViewAdapter.kt | 34 ++++++++++++++++++- .../com/remit/jmecustomer/utils/Utils.java | 6 ++++ .../res/drawable/icon_banner_placeholder.xml | 28 +++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable/icon_banner_placeholder.xml diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/BannerViewAdapter.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/BannerViewAdapter.kt index 99aa478a..a0080472 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/BannerViewAdapter.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/BannerViewAdapter.kt @@ -2,21 +2,30 @@ package com.remit.jmecustomer.features.homeV3.adpaters import android.content.Context import android.content.Intent +import android.graphics.Outline import android.net.Uri +import android.os.Build import android.util.DisplayMetrics import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import android.view.ViewOutlineProvider +import androidx.annotation.RequiresApi +import androidx.core.content.res.ResourcesCompat import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions +import com.remit.jmecustomer.R import com.remit.jmecustomer.databinding.BannerItemBinding import com.remit.jmecustomer.features.beneficiaryDetail.adapters.SendMethodAdapter import com.remit.jmecustomer.features.home.model.BannerImage import com.remit.jmecustomer.features.homeV3.models.BannerModel +import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3 import com.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.PaymentMethodV3Model +import com.remit.jmecustomer.utils.Utils class BannerViewAdapter( data: List, @@ -43,9 +52,21 @@ class BannerViewAdapter( override fun onBindViewHolder(holder: BannerItemViewHolder, position: Int) { val imageURl: String = data[position].filePath + val displayMetrics = DisplayMetrics() + (mContext as HomeActivityV3).windowManager.defaultDisplay.getMetrics(displayMetrics) + var screenWidth = displayMetrics.widthPixels + if (screenWidth != 0) { + val params: ViewGroup.LayoutParams = holder.bindings.offerItemImgViewParent.layoutParams + val width = screenWidth.toString().split("\\.".toRegex()).toTypedArray() + val height = (width[0].toInt() * 0.4f).toString().split("\\.".toRegex()).toTypedArray() + + params.width = width[0].toInt() + params.height = height[0].toInt() + } Glide.with(mContext!!) .load(imageURl).diskCacheStrategy(DiskCacheStrategy.ALL) - .transform(CenterCrop(), RoundedCorners(dpToPx(8, mContext!!))) + .placeholder(R.drawable.icon_banner_placeholder) +// .transform(CenterCrop(), RoundedCorners(dpToPx(8, mContext!!))) .into(holder.bindings.offerItemImgView) holder.bindings.offerItemImgView.setOnClickListener { val url = data[position].redirectURL @@ -55,6 +76,17 @@ class BannerViewAdapter( mContext?.startActivity(intent) } } + val curveRadius = 24F + + holder.bindings.offerItemImgView.outlineProvider = object : ViewOutlineProvider() { + + override fun getOutline(view: View?, outline: Outline?) { + outline?.setRoundRect(0, 0, view!!.width, (view.height).toInt(), curveRadius) + } + } + + holder.bindings.offerItemImgView.clipToOutline = true + holder.bindings.offerItemImgViewParent.clipToOutline = true } diff --git a/app/src/main/java/com/remit/jmecustomer/utils/Utils.java b/app/src/main/java/com/remit/jmecustomer/utils/Utils.java index 8e71cf70..08805e9f 100644 --- a/app/src/main/java/com/remit/jmecustomer/utils/Utils.java +++ b/app/src/main/java/com/remit/jmecustomer/utils/Utils.java @@ -12,6 +12,7 @@ import android.os.Environment; import android.provider.MediaStore; import android.provider.Settings; import android.util.Base64; +import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -675,4 +676,9 @@ public class Utils { return MultipartBody.Part.createFormData(key, file.getName() + ".jpeg", idImageRequest); } + public static int dpToPx(int dp, Context context) { + DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); + return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); + } + } diff --git a/app/src/main/res/drawable/icon_banner_placeholder.xml b/app/src/main/res/drawable/icon_banner_placeholder.xml new file mode 100644 index 00000000..7fc7f951 --- /dev/null +++ b/app/src/main/res/drawable/icon_banner_placeholder.xml @@ -0,0 +1,28 @@ + + + + + + + + +