From 215be17924c26236a54daf6164013f8425b01260 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 29 Dec 2022 17:42:14 +0530 Subject: [PATCH] banklist adapter bank design --- .../bajajfd/adapter/BankListAdapter.kt | 117 ++++++++++++ .../production/bajajfd/model/BankList.kt | 15 ++ .../ui/fragment/StepTwoBajajFDFragment.kt | 4 +- app/src/main/res/drawable/ic_add_icon.xml | 5 + app/src/main/res/drawable/ic_select_green.xml | 5 + .../main/res/drawable/ic_select_outline.xml | 5 + .../res/layout/fragment_bajajfd_step_two.xml | 53 ++++++ .../main/res/layout/item_banklist_preview.xml | 167 ++++++++++++++++++ app/src/main/res/values-hi-rIN/strings.xml | 1 + app/src/main/res/values-night/strings.xml | 4 + app/src/main/res/values/strings.xml | 1 + 11 files changed, 374 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt create mode 100644 app/src/main/res/drawable/ic_add_icon.xml create mode 100644 app/src/main/res/drawable/ic_select_green.xml create mode 100644 app/src/main/res/drawable/ic_select_outline.xml create mode 100644 app/src/main/res/layout/item_banklist_preview.xml create mode 100644 app/src/main/res/values-night/strings.xml diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt new file mode 100644 index 0000000..80f3770 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -0,0 +1,117 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.BankList + +class BankListAdapter( private val bankList: List, + private var checkedPosition: Int = -2, + private val selectedAccount: String? = null +) + :RecyclerView.Adapter() +{ + inner class BankListViewHolder (itemView:View):RecyclerView.ViewHolder(itemView) + { + val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) + val bankName: TextView = itemView.findViewById(R.id.bankName) + val bankAcNoTV: TextView = itemView.findViewById(R.id.bankAcNoTV) + val bankIfscTV: TextView = itemView.findViewById(R.id.bankIfscTV) + val bankTypeTV: TextView = itemView.findViewById(R.id.bankTypeTV) + } + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder(LayoutInflater.from(parent.context).inflate( + R.layout.item_banklist_preview, + parent, + false + + + + )) + } + + override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { + val bankList =bankList[position] + + holder.itemView.apply { + + + + holder.bankName.text = bankList.BankName + holder.bankIfscTV.text = bankList.IFSCCode + holder.bankAcNoTV.text = bankList.AccountNumber + holder.bankTypeTV.text = bankList.AccountType + + + + if (selectedAccount == bankList.AccountNumber && checkedPosition == -2 + ) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + checkedPosition = holder.adapterPosition + } else if (checkedPosition == -1) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } else if (checkedPosition == holder.adapterPosition) + { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + } else { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } + + + + + + + + + setOnClickListener{ onItemClickListener?.let { + it(bankList) + + + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition + + } + + + } + } + + } + + + + + } + + override fun getItemCount(): Int { + return bankList.size + } + + + private var onItemClickListener:((BankList) ->Unit)?=null + + fun setOnItemClickListener(listener:(BankList) -> Unit) + { + onItemClickListener= listener + } + + + + fun getSelected(): BankList? { + return if (checkedPosition != -1) { + bankList[checkedPosition] + } else null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt new file mode 100644 index 0000000..ea6bfe9 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt @@ -0,0 +1,15 @@ +package com.nivesh.production.bajajfd.model + +import java.io.Serializable + +data class BankList( + val BankName: String?, + val IFSCCode: String?, + val AccountNumber: String?, + val BranchName: String?, + val DefaultBankFlag: String?, + val IsValBank: String?, + val AccountType: String? +): Serializable + + diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index e7bea72..e30ff9e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -34,14 +34,11 @@ import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel class StepTwoBajajFDFragment : Fragment() { - private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! - private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton - private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel companion object { @@ -87,6 +84,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) } + binding.edtPANNumber.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { diff --git a/app/src/main/res/drawable/ic_add_icon.xml b/app/src/main/res/drawable/ic_add_icon.xml new file mode 100644 index 0000000..a6bdf84 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_icon.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_select_green.xml b/app/src/main/res/drawable/ic_select_green.xml new file mode 100644 index 0000000..c3bb144 --- /dev/null +++ b/app/src/main/res/drawable/ic_select_green.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_select_outline.xml b/app/src/main/res/drawable/ic_select_outline.xml new file mode 100644 index 0000000..35bec46 --- /dev/null +++ b/app/src/main/res/drawable/ic_select_outline.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 27a05e7..46e4d73 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -772,6 +772,59 @@ android:textSize="@dimen/text_size_14" app:drawableRightCompat="@drawable/svg_down_arrow" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 3ffeedf..1e280f4 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -203,5 +203,6 @@ Once you click on PAY, your order will be placed and you will be redirected to payment gateway. Senior Citizen Non Senior Citizen + Add New Account \ No newline at end of file diff --git a/app/src/main/res/values-night/strings.xml b/app/src/main/res/values-night/strings.xml new file mode 100644 index 0000000..d495c0f --- /dev/null +++ b/app/src/main/res/values-night/strings.xml @@ -0,0 +1,4 @@ + + + Add New Account + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 67b86b6..04c6e17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -210,6 +210,7 @@ Once you click on PAY, your order will be placed and you will be redirected to payment gateway. Senior Citizen Non Senior Citizen + Add New Account