From 1280b71f32dcf1e880b65c00a0718b06ec6b812c Mon Sep 17 00:00:00 2001 From: pankaj Date: Wed, 28 Dec 2022 14:23:21 +0530 Subject: [PATCH 1/3] changes --- app/src/main/AndroidManifest.xml | 4 +++- .../production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 356061a..c5df2bd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ + android:exported="true" + android:windowSoftInputMode="adjustPan" + > diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index c60706b..b985978 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -191,8 +191,9 @@ class StepOneBajajFDFragment : Fragment() { private fun maturityAmountApi(tenure: Int, interest: Double) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - if (binding.edtAmount.text.toString().isNotEmpty() && interest.toString() - .isNotEmpty() && tenure.toString().isNotEmpty() + if ( + + binding.edtAmount.text.toString().isNotEmpty() && interest != 0.0 && tenure != 0 ) { val maturityAmountRequest = GetMaturityAmountRequest() maturityAmountRequest.FDProvider = getString(R.string.bajaj) From 215be17924c26236a54daf6164013f8425b01260 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 29 Dec 2022 17:42:14 +0530 Subject: [PATCH 2/3] 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 From 149f38fa9a67a02829e8de3d6dceee0624337bad Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 29 Dec 2022 20:17:49 +0530 Subject: [PATCH 3/3] title done --- .../production/bajajfd/model/GetCodes.kt | 3 ++ .../ui/fragment/StepTwoBajajFDFragment.kt | 43 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt index 55a39c7..a93541e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt @@ -7,4 +7,7 @@ data class GetCodes( override fun toString(): String { return Value } + + + } \ No newline at end of file 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 2778460..cc54d63 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 @@ -1,5 +1,6 @@ package com.nivesh.production.bajajfd.ui.fragment +import android.annotation.SuppressLint import android.app.DatePickerDialog import android.os.Bundle import android.text.Editable @@ -8,10 +9,12 @@ import android.text.InputFilter.LengthFilter import android.text.TextWatcher import android.util.Log import android.view.LayoutInflater +import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.RadioButton +import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.google.android.material.textfield.TextInputEditText @@ -690,7 +693,7 @@ class StepTwoBajajFDFragment : Fragment() { } } - + @SuppressLint("ClickableViewAccessibility") private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -708,6 +711,8 @@ class StepTwoBajajFDFragment : Fragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + + //set data in spinner listOfTitle = getCodeResponse.Response.GetCodesList if (listOfTitle.isNotEmpty()) { val adapter = ArrayAdapter( @@ -717,17 +722,45 @@ class StepTwoBajajFDFragment : Fragment() { ) binding.spTitle.setAdapter(adapter) - if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title.isNullOrEmpty()) { + val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText= "$titleText." + if (titleText.isNullOrEmpty()) { binding.spTitle.setText( adapter.getItem(0)?.Value, false ) - } else { - listOfTitle.filter { - it.Value == (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + }else{ + for (title in listOfTitle) { + + if (title.Value ==newTitleText) + { + binding.spTitle.setText(title.Value,false) + break + } + binding.spTitle.setOnTouchListener { v, event -> + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + binding.spTitle.setText( + adapter.getItem(0)?.Value, + false + ) + + } + } + + v?.onTouchEvent(event) ?: true + } + + } + } + + + + + binding.spNomineeTitle.setAdapter(adapter) binding.spNomineeTitle.setText( adapter.getItem(0)?.Value,