Browse Source

banner changes

new_design
Mohan Shiwakoti 1 year ago
parent
commit
0801072823
  1. 34
      app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/BannerViewAdapter.kt
  2. 6
      app/src/main/java/com/remit/jmecustomer/utils/Utils.java
  3. 28
      app/src/main/res/drawable/icon_banner_placeholder.xml

34
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.Context
import android.content.Intent import android.content.Intent
import android.graphics.Outline
import android.net.Uri import android.net.Uri
import android.os.Build
import android.util.DisplayMetrics import android.util.DisplayMetrics
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewOutlineProvider
import androidx.annotation.RequiresApi
import androidx.core.content.res.ResourcesCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.RequestOptions
import com.remit.jmecustomer.R
import com.remit.jmecustomer.databinding.BannerItemBinding import com.remit.jmecustomer.databinding.BannerItemBinding
import com.remit.jmecustomer.features.beneficiaryDetail.adapters.SendMethodAdapter import com.remit.jmecustomer.features.beneficiaryDetail.adapters.SendMethodAdapter
import com.remit.jmecustomer.features.home.model.BannerImage import com.remit.jmecustomer.features.home.model.BannerImage
import com.remit.jmecustomer.features.homeV3.models.BannerModel 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.features.recipientmanagement.model.recipientlistingV3.PaymentMethodV3Model
import com.remit.jmecustomer.utils.Utils
class BannerViewAdapter( class BannerViewAdapter(
data: List<BannerImage>, data: List<BannerImage>,
@ -43,9 +52,21 @@ class BannerViewAdapter(
override fun onBindViewHolder(holder: BannerItemViewHolder, position: Int) { override fun onBindViewHolder(holder: BannerItemViewHolder, position: Int) {
val imageURl: String = data[position].filePath 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!!) Glide.with(mContext!!)
.load(imageURl).diskCacheStrategy(DiskCacheStrategy.ALL) .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) .into(holder.bindings.offerItemImgView)
holder.bindings.offerItemImgView.setOnClickListener { holder.bindings.offerItemImgView.setOnClickListener {
val url = data[position].redirectURL val url = data[position].redirectURL
@ -55,6 +76,17 @@ class BannerViewAdapter(
mContext?.startActivity(intent) 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
} }

6
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.MediaStore;
import android.provider.Settings; import android.provider.Settings;
import android.util.Base64; import android.util.Base64;
import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -675,4 +676,9 @@ public class Utils {
return MultipartBody.Part.createFormData(key, file.getName() + ".jpeg", idImageRequest); 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));
}
} }

28
app/src/main/res/drawable/icon_banner_placeholder.xml

@ -0,0 +1,28 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="358dp"
android:height="108dp"
android:viewportWidth="358"
android:viewportHeight="108">
<group>
<clip-path
android:pathData="M0,0h358v107.3h-358z"/>
<path
android:pathData="M10,0L348,0A10,10 0,0 1,358 10L358,97.3A10,10 0,0 1,348 107.3L10,107.3A10,10 0,0 1,0 97.3L0,10A10,10 0,0 1,10 0z"
android:fillColor="#F7F7F7"/>
<path
android:pathData="M195.33,35.33H162.67C158.8,35.33 155.67,38.47 155.67,42.33V65.67C155.67,69.53 158.8,72.67 162.67,72.67H195.33C199.2,72.67 202.33,69.53 202.33,65.67V42.33C202.33,38.47 199.2,35.33 195.33,35.33Z"
android:strokeAlpha="0.35"
android:fillColor="#000000"
android:fillAlpha="0.35"/>
<path
android:pathData="M190.67,49.33C193.24,49.33 195.33,47.24 195.33,44.67C195.33,42.09 193.24,40 190.67,40C188.09,40 186,42.09 186,44.67C186,47.24 188.09,49.33 190.67,49.33Z"
android:strokeAlpha="0.37"
android:fillColor="#000000"
android:fillAlpha="0.37"/>
<path
android:pathData="M160.33,63.33C160.33,63.95 160.58,64.55 161.02,64.98C161.45,65.42 162.05,65.67 162.67,65.67H195.33C195.95,65.67 196.55,65.42 196.98,64.98C197.42,64.55 197.67,63.95 197.67,63.33C197.67,60.15 193.73,56.33 191.83,56.33C189.94,56.33 188.22,58.67 183.67,58.67C177.97,58.67 174.33,47 169.67,47C165,47 160.33,57.18 160.33,63.33Z"
android:strokeAlpha="0.37"
android:fillColor="#000000"
android:fillAlpha="0.37"/>
</group>
</vector>
Loading…
Cancel
Save