| @ -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<BankList>, | |||||
| private var checkedPosition: Int = -2, | |||||
| private val selectedAccount: String? = null | |||||
| ) | |||||
| :RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() | |||||
| { | |||||
| 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 | |||||
| } | |||||
| } | |||||
| @ -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 | |||||
| @ -0,0 +1,5 @@ | |||||
| <vector android:height="24dp" android:tint="#6D6B6B" | |||||
| android:viewportHeight="24" android:viewportWidth="24" | |||||
| android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> | |||||
| <path android:fillColor="@android:color/white" android:pathData="M13,7h-2v4L7,11v2h4v4h2v-4h4v-2h-4L13,7zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/> | |||||
| </vector> | |||||
| @ -0,0 +1,5 @@ | |||||
| <vector android:height="24dp" android:tint="#69F324" | |||||
| android:viewportHeight="24" android:viewportWidth="24" | |||||
| android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> | |||||
| <path android:fillColor="@android:color/white" android:pathData="M12,6c3.31,0 6,2.69 6,6s-2.69,6 -6,6 -6,-2.69 -6,-6 2.69,-6 6,-6m0,-2c-4.42,0 -8,3.58 -8,8s3.58,8 8,8 8,-3.58 8,-8 -3.58,-8 -8,-8z"/> | |||||
| </vector> | |||||
| @ -0,0 +1,5 @@ | |||||
| <vector android:height="24dp" android:tint="#403D3D" | |||||
| android:viewportHeight="24" android:viewportWidth="24" | |||||
| android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> | |||||
| <path android:fillColor="@android:color/white" android:pathData="M12,6c3.31,0 6,2.69 6,6s-2.69,6 -6,6 -6,-2.69 -6,-6 2.69,-6 6,-6m0,-2c-4.42,0 -8,3.58 -8,8s3.58,8 8,8 8,-3.58 8,-8 -3.58,-8 -8,-8z"/> | |||||
| </vector> | |||||
| @ -0,0 +1,167 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <androidx.cardview.widget.CardView | |||||
| xmlns:android="http://schemas.android.com/apk/res/android" | |||||
| xmlns:app="http://schemas.android.com/apk/res-auto" | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:layout_margin="4dp" | |||||
| app:cardBackgroundColor="@color/white" | |||||
| app:cardCornerRadius="8dp" | |||||
| app:cardElevation="8dp" | |||||
| app:cardMaxElevation="10dp" | |||||
| app:cardPreventCornerOverlap="true" | |||||
| app:cardUseCompatPadding="true"> | |||||
| <!-- In the above cardview widget cardelevation property will give elevation to your card view | |||||
| card corner radius will provide radius to your card view card background color will give | |||||
| background color to your card view card max elevation will give the cardview maximum | |||||
| elevation card prevent corner overlap will add padding to CardView on v20 and before to | |||||
| prevent intersections between the Card content and rounded corners. Card use compact padding | |||||
| will add padding in API v21+ as well to have the same measurements with previous versions --> | |||||
| <RelativeLayout | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content"> | |||||
| <!-- ImageVIew to display our Course Image --> | |||||
| <ImageView | |||||
| android:id="@+id/bankSelector" | |||||
| android:layout_width="50dp" | |||||
| android:layout_height="50dp" | |||||
| android:layout_marginStart="10dp" | |||||
| android:layout_marginEnd="10dp" | |||||
| android:layout_marginBottom="10dp" | |||||
| android:layout_centerVertical="true" | |||||
| android:padding="5dp" | |||||
| /> | |||||
| <LinearLayout | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:orientation="vertical" | |||||
| android:layout_toEndOf="@id/bankSelector" | |||||
| > | |||||
| <!-- Text View to display Course Name --> | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankName" | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:layout_marginTop="8dp" | |||||
| android:text="" | |||||
| android:textColor="@color/black" | |||||
| android:textSize="18sp" | |||||
| android:textStyle="bold" /> | |||||
| <!-- Text VIew to display Course Rating --> | |||||
| <!-- Image used in present in drawable folder --> | |||||
| <LinearLayout | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:orientation="horizontal" | |||||
| android:layout_marginTop="8dp" | |||||
| android:layout_marginBottom="8dp" | |||||
| > | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankAcNo" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="A/c No: " | |||||
| /> | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankAcNoTV" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="" | |||||
| /> | |||||
| </LinearLayout> | |||||
| <LinearLayout | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:orientation="horizontal" | |||||
| android:layout_marginTop="8dp" | |||||
| android:layout_marginBottom="8dp" | |||||
| > | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankIfsc" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="A/c IFSC : " | |||||
| /> | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankIfscTV" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="" | |||||
| /> | |||||
| </LinearLayout> | |||||
| <LinearLayout | |||||
| android:layout_width="match_parent" | |||||
| android:layout_height="wrap_content" | |||||
| android:orientation="horizontal" | |||||
| android:layout_marginTop="8dp" | |||||
| android:layout_marginBottom="8dp" | |||||
| > | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankType" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="A/c Type : " | |||||
| /> | |||||
| <androidx.appcompat.widget.AppCompatTextView | |||||
| android:id="@+id/bankTypeTV" | |||||
| android:layout_width="wrap_content" | |||||
| android:layout_height="wrap_content" | |||||
| android:drawablePadding="2dp" | |||||
| android:text="" | |||||
| /> | |||||
| </LinearLayout> | |||||
| </LinearLayout> | |||||
| </RelativeLayout> | |||||
| </androidx.cardview.widget.CardView> | |||||
| @ -0,0 +1,4 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <resources> | |||||
| <string name="add_new_account">Add New Account</string> | |||||
| </resources> | |||||
Powered by TurnKey Linux.