Browse Source

added pankajs code

PankajBranch
Hemant Khadase 2 years ago
parent
commit
20a3016bb6
7 changed files with 183 additions and 57 deletions
  1. +34
    -23
      app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt
  2. +5
    -5
      app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt
  3. +7
    -7
      app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt
  4. +92
    -19
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  5. +15
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  6. +5
    -0
      app/src/main/res/drawable/ic_minus.xml
  7. +25
    -3
      app/src/main/res/layout/fragment_bajajfd_step_two.xml

+ 34
- 23
app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt View File

@ -12,7 +12,8 @@ import com.nivesh.production.bajajfd.model.ClientBanklist
class BankListAdapter( class BankListAdapter(
private val bankList: List<ClientBanklist>?, private val bankList: List<ClientBanklist>?,
private val selectedAccount: String? = null
private val selectedAccount: String? = null,
private val width:Double?
) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() { ) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
@ -27,13 +28,23 @@ class BankListAdapter(
parent: ViewGroup, parent: ViewGroup,
viewType: Int viewType: Int
): BankListViewHolder { ): BankListViewHolder {
return BankListViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.item_bank_list_preview,
parent,
false
)
)
// return BankListViewHolder(
// LayoutInflater.from(parent.context).inflate(
// R.layout.item_bank_list_preview,
// parent,
// false
// )
// )
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_bank_list_preview, parent, false);
view.layoutParams = width?.div(1.35)
?.let { ViewGroup.LayoutParams(it.toInt(),ViewGroup.LayoutParams.WRAP_CONTENT) }
return BankListViewHolder(view)
} }
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
@ -44,28 +55,28 @@ class BankListAdapter(
holder.tvBankIFSC.text = bankList.IFSCCode holder.tvBankIFSC.text = bankList.IFSCCode
holder.tvBankAccountNumber.text = bankList.AccountNumber holder.tvBankAccountNumber.text = bankList.AccountNumber
if (selectedAccount == bankList.AccountNumber && checkedPosition == -2
) {
if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2))
{
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition checkedPosition = holder.adapterPosition
} else if (checkedPosition == -1) {
}
else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
} else if (checkedPosition == holder.adapterPosition) {
}
else if (checkedPosition == holder.adapterPosition) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) 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
else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
}
holder.itemView.setOnClickListener {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
} }
} }
} }


+ 5
- 5
app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt View File

@ -2,9 +2,9 @@ package com.nivesh.production.bajajfd.model
data class BankValidationApiRequest( data class BankValidationApiRequest(
var BankAccountNo: String?="", var BankAccountNo: String?="",
val BankNo: Int?= 0,
val IFSC: String?= "",
val Name: String? = "",
val PhoneNo: String? = "",
val RoleId: Int? = 0
var BankNo: Int?= 0,
var IFSC: String?= "",
var Name: String? = "",
var PhoneNo: String? = "",
var RoleId: Int? = 0
) )

+ 7
- 7
app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt View File

@ -1,11 +1,11 @@
package com.nivesh.production.bajajfd.model package com.nivesh.production.bajajfd.model
data class ClientBanklist( data class ClientBanklist(
val AccountNumber: String?,
val AccountType: String?,
val BankName: String?,
val BranchName: String?,
val DefaultBankFlag: String?,
val IFSCCode: String?,
val IsValBank: Int? = 0
var AccountNumber: String?="",
var AccountType: String?="",
var BankName: String?="",
var BranchName: String?="",
val DefaultBankFlag: String?="",
var IFSCCode: String?="",
var IsValBank: Int? = 0
) )

+ 92
- 19
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt View File

@ -7,6 +7,7 @@ import android.text.Editable
import android.text.InputFilter import android.text.InputFilter
import android.text.InputFilter.LengthFilter import android.text.InputFilter.LengthFilter
import android.text.TextWatcher import android.text.TextWatcher
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
@ -73,6 +74,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var bankListAdapter: BankListAdapter private lateinit var bankListAdapter: BankListAdapter
private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter
private lateinit var stateObject: DataObject private lateinit var stateObject: DataObject
private val listOfBanks: MutableList<ClientBanklist> = mutableListOf()
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?,
@ -522,7 +525,9 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener { binding.btnAddBank.setOnClickListener {
if (validateBank()) { if (validateBank()) {
/// as
val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString())
verifyAccountNo(
binding.edtAccountNumber.text.toString(), binding.edtIFSC.text.toString(), fullName, binding.edtMobileNumber.text.toString(), 1)
} }
} }
@ -539,15 +544,18 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.addBankDetail.setOnClickListener { binding.addBankDetail.setOnClickListener {
if (binding.llBankDetails.visibility == View.GONE) { if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE binding.llBankDetails.visibility = View.VISIBLE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0)
} else { } else {
binding.llBankDetails.visibility = View.GONE binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0)
} }
} }
titleApi() titleApi()
setUpRecyclerView()
setUpRecyclerView(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1)
binding.tvPersonalDetails.setOnClickListener { binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) { if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -763,9 +771,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
private fun ifscCodeCheckApi(ifsc: String) { private fun ifscCodeCheckApi(ifsc: String) {
if (ifsc.length >8) {
if (ifsc.length ==11) {
stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
@ -884,6 +891,74 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) {
val bankValidationApiRequest = BankValidationApiRequest()
bankValidationApiRequest.BankAccountNo=bankAccount
bankValidationApiRequest.IFSC=Ifsc
bankValidationApiRequest.Name=name
bankValidationApiRequest.PhoneNo=phoneNumber
bankValidationApiRequest.RoleId=5
bankValidationApiRequest.BankNo=bankNo
stepTwoBajajFDViewModel.bankValidationApi(bankValidationApiRequest, token, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getBankValidationApiResponse =
Gson().fromJson(
response.data?.toString(),
BankValidationApiResponse::class.java
)
getBankValidationApiResponse.response.status_code.let { code ->
if (binding.tvAcVerify.visibility == View.GONE) {
binding.tvAcVerify.visibility = View.VISIBLE
}
when (code) {
200 -> {
if(getBankValidationApiResponse.Message=="Account verified") {
val clientBankList =ClientBanklist()
clientBankList.AccountNumber=bankAccount
clientBankList.AccountType="sb"
clientBankList.BankName=binding.edtBankName.text.toString()
clientBankList.BranchName=binding.edtBankBranch.text.toString()
clientBankList.IFSCCode=Ifsc
clientBankList.IsValBank=1
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let {
listOfBanks.addAll(
it
)
}
listOfBanks.add(clientBankList)
setUpRecyclerView(listOfBanks , clientBankList.AccountNumber.toString())
}
else {
Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
}
}
else -> {
Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
private fun validateBank(): Boolean { private fun validateBank(): Boolean {
return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText
commonErrorAutoCompleteMethod( commonErrorAutoCompleteMethod(
@ -920,19 +995,19 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
private fun setUpRecyclerView() {
if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isNotEmpty()!!) {
binding.rvClientBankList.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
bankListAdapter = BankListAdapter(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1
)
binding.rvClientBankList.adapter = bankListAdapter
}
private fun setUpRecyclerView( bankList: List<ClientBanklist>?, selectedAccount: String? = null) {
val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels.toDouble()
binding.rvClientBankList.layoutManager = LinearLayoutManager(
mActivity,
LinearLayoutManager.HORIZONTAL,
false
)
bankListAdapter = BankListAdapter(bankList, selectedAccount,width)
binding.rvClientBankList.adapter = bankListAdapter
} }
private fun datePicker(edtDOB: TextInputEditText) { private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR) val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH) val month = cal.get(Calendar.MONTH)
@ -942,7 +1017,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (monthOfYear.toString().length == 1) { if (monthOfYear.toString().length == 1) {
"0".plus(monthOfYear) "0".plus(monthOfYear)
} }
// edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years))
edtDOB.setText( edtDOB.setText(
years.toString().plus("-").plus(monthOfYear + 1).plus("-") years.toString().plus("-").plus(monthOfYear + 1).plus("-")
.plus(dayOfMonth.toString()) .plus(dayOfMonth.toString())
@ -1162,7 +1236,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.rvPaymentMode.adapter = paymentModeAdapter binding.rvPaymentMode.adapter = paymentModeAdapter
} }
private fun genderApi() { private fun genderApi() {
val getCodeRequest = GetCodeRequest() val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD) getCodeRequest.ProductName = getString(R.string.bajajFD)


+ 15
- 0
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt View File

@ -169,4 +169,19 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
} }
} }
val bankValidationApiMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun bankValidationApi(bankValidationApiRequest : BankValidationApiRequest,token:String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
bankValidationApiMutableData.postValue(Resource.Loading())
val response = mainRepository.bankValidationApiRequest(bankValidationApiRequest,token)
bankValidationApiMutableData.postValue(handleResponse(response))
}
}
} }

+ 5
- 0
app/src/main/res/drawable/ic_minus.xml View File

@ -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="M7,11v2h10v-2L7,11zM12,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>

+ 25
- 3
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -847,7 +847,11 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvClientBankList" android:id="@+id/rvClientBankList"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:orientation="horizontal"
/>
<TextView <TextView
android:id="@+id/addBankDetail" android:id="@+id/addBankDetail"
@ -895,18 +899,22 @@
android:orientation="horizontal"> android:orientation="horizontal">
<RadioButton <RadioButton
android:id="@+id/savingBank"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/black" android:buttonTint="@color/black"
android:checked="true" android:checked="true"
android:text="@string/savingsAccount" />
android:text="@string/savingsAccount"
/>
<RadioButton <RadioButton
android:id="@+id/currentBank"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_50" android:layout_marginStart="@dimen/margin_50"
android:buttonTint="@color/black" android:buttonTint="@color/black"
android:text="@string/currentAccount" />
android:text="@string/currentAccount"
/>
</RadioGroup> </RadioGroup>
@ -944,10 +952,24 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15" android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15" android:paddingBottom="@dimen/margin_15"
android:inputType="number"
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvAcVerify"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/margin_15"
android:textColor="@color/greyColor2"
android:textSize="@dimen/text_size_10"
android:visibility="gone" />
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlBankName" android:id="@+id/tlBankName"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"


Loading…
Cancel
Save

Powered by TurnKey Linux.