Browse Source

payment list

pankaj 2 years ago
parent
commit
b882c1462c
8 changed files with 91 additions and 36 deletions
  1. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt
  2. +34
    -29
      app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt
  3. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  4. +15
    -2
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  5. +18
    -1
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  6. +12
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/MyObseravble.kt
  7. +4
    -3
      app/src/main/res/layout/item_payment_list_preview.xml
  8. +1
    -1
      app/src/main/res/values/strings.xml

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

@ -39,6 +39,7 @@ class BankListAdapter(
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position) val bankList = bankList?.get(position)
if (bankList != null) { if (bankList != null) {
holder.itemView.apply { holder.itemView.apply {
holder.tvBankName.text = bankList.BankName holder.tvBankName.text = bankList.BankName
holder.tvBankIFSC.text = bankList.IFSCCode holder.tvBankIFSC.text = bankList.IFSCCode


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

@ -1,22 +1,25 @@
package com.nivesh.production.bajajfd.adapter
package com.nivesh.production .bajajfd.adapter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.cardview.widget.CardView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.GetCodes import com.nivesh.production.bajajfd.model.GetCodes
class PaymentModeAdapter( class PaymentModeAdapter(
private val bankList: List<GetCodes>?,
private val selectedAccount: String? = null
private val listOfPayMode: List<GetCodes>?,
private val selectedAmount: String? = null
) : RecyclerView.Adapter<PaymentModeAdapter.BankListViewHolder>() { ) : RecyclerView.Adapter<PaymentModeAdapter.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 tvBankName: TextView = itemView.findViewById(R.id.tvBankName)
val paymentSelector: ImageView = itemView.findViewById(R.id.paymentSelector)
val paymentMethod: TextView = itemView.findViewById(R.id.paymentMethod)
val tvUpiMsg: TextView = itemView.findViewById(R.id.tvUpiMsg) val tvUpiMsg: TextView = itemView.findViewById(R.id.tvUpiMsg)
val cardView:CardView=itemView.findViewById(R.id.cardView)
} }
private var checkedPosition: Int = -2 private var checkedPosition: Int = -2
@ -36,38 +39,40 @@ class PaymentModeAdapter(
} }
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position)
if (bankList != null) {
val listOfPayMode = listOfPayMode?.get(position)
if (listOfPayMode != null) {
holder.itemView.apply { holder.itemView.apply {
holder.tvBankName.text = bankList.Value
if (bankList.Value.equals("UPI")){
holder.paymentMethod.text = listOfPayMode.Value
if((selectedAmount!!.toDouble()) >= 100000.0 && listOfPayMode.Value == "UPI")
{
holder.cardView.visibility =View.GONE
}
Toast.makeText(context,"val $selectedAmount",Toast.LENGTH_SHORT).show()
if (listOfPayMode.Value.equals("UPI")){
holder.tvUpiMsg.text = context.getString(R.string.upto1LakhOnly) holder.tvUpiMsg.text = context.getString(R.string.upto1LakhOnly)
}else{ }else{
holder.tvUpiMsg.text = "" holder.tvUpiMsg.text = ""
} }
if (selectedAccount == bankList.Value && 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)
if (checkedPosition == -1) {
holder.paymentSelector.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.paymentSelector.setBackgroundResource(R.drawable.ic_select_green)
} else { } else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
holder.paymentSelector.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
}
holder.itemView.setOnClickListener {
holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
} }
} }
} }
@ -75,7 +80,7 @@ class PaymentModeAdapter(
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {
return bankList?.size!!
return listOfPayMode?.size!!
} }
private var onItemClickListener: ((GetCodes) -> Unit)? = null private var onItemClickListener: ((GetCodes) -> Unit)? = null
@ -87,7 +92,7 @@ class PaymentModeAdapter(
fun getSelected(): GetCodes? { fun getSelected(): GetCodes? {
return if (checkedPosition != -1) { return if (checkedPosition != -1) {
bankList?.get(checkedPosition)
listOfPayMode?.get(checkedPosition)
} else null } else null
} }

+ 6
- 0
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt View File

@ -7,6 +7,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
@ -18,6 +19,7 @@ import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.MyObseravble
class StepFourBajajFDFragment : Fragment() { class StepFourBajajFDFragment : Fragment() {
@ -93,6 +95,10 @@ class StepFourBajajFDFragment : Fragment() {
} }
} }
binding.btnBack.setOnClickListener { binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
} }


+ 15
- 2
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt View File

@ -13,6 +13,8 @@ import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.RadioButton import android.widget.RadioButton
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.get
import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView.LayoutManager import androidx.recyclerview.widget.RecyclerView.LayoutManager
@ -27,6 +29,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.removeError import com.nivesh.production.bajajfd.util.Common.Companion.removeError
import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.MyObseravble
class StepOneBajajFDFragment : Fragment() { class StepOneBajajFDFragment : Fragment() {
@ -42,6 +45,8 @@ class StepOneBajajFDFragment : Fragment() {
private var tenure: Int = 0 private var tenure: Int = 0
private var interest: Double = 0.0 private var interest: Double = 0.0
private lateinit var observerViewModel: MyObseravble
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
@ -112,11 +117,19 @@ class StepOneBajajFDFragment : Fragment() {
Log.e("Maturity", "-->" + rgMaturity.text) Log.e("Maturity", "-->" + rgMaturity.text)
} }
observerViewModel = activity?.run {
ViewModelProvider(this)[MyObseravble::class.java]
} ?: throw Exception("Invalid Activity")
// Next Button // Next Button
binding.btnNext.setOnClickListener { binding.btnNext.setOnClickListener {
if (validation()) { if (validation()) {
(activity as BajajFdMainActivity).fdInvestmentDetails.FDAmount =
binding.edtAmount.text.toString().toDouble()
(activity as BajajFdMainActivity).fdInvestmentDetails.FDAmount = binding.edtAmount.text.toString().toDouble()
observerViewModel.data.value = binding.edtAmount.text.toString()
(activity as BajajFdMainActivity).fdInvestmentDetails.Frequency = (activity as BajajFdMainActivity).fdInvestmentDetails.Frequency =
binding.spInterestPayout.text.toString() binding.spInterestPayout.text.toString()
(activity as BajajFdMainActivity).fdInvestmentDetails.Tenure = tenure (activity as BajajFdMainActivity).fdInvestmentDetails.Tenure = tenure


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

@ -18,6 +18,7 @@ import android.widget.RadioButton
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -43,6 +44,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.removeError
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.MyObseravble
import java.util.* import java.util.*
@ -69,6 +71,10 @@ class StepTwoBajajFDFragment : Fragment() {
private lateinit var rbBank: RadioButton private lateinit var rbBank: RadioButton
private lateinit var rbPaymentMode: RadioButton private lateinit var rbPaymentMode: RadioButton
private lateinit var observerViewModel: MyObseravble
private var amountEntered:String="0"
private var cal = Calendar.getInstance() private var cal = Calendar.getInstance()
@ -94,6 +100,17 @@ class StepTwoBajajFDFragment : Fragment() {
stateObject = DataObject() stateObject = DataObject()
rbPaymentMode = RadioButton(activity as BajajFdMainActivity) rbPaymentMode = RadioButton(activity as BajajFdMainActivity)
observerViewModel = activity?.run {
ViewModelProvider(this)[MyObseravble::class.java]
} ?: throw Exception("Invalid Activity")
observerViewModel.data.observe(viewLifecycleOwner) {
amountEntered = observerViewModel.data.value.toString()
}
// Personal Details // Personal Details
binding.edtMobileNumber.filters = arrayOf<InputFilter>(LengthFilter(10)) binding.edtMobileNumber.filters = arrayOf<InputFilter>(LengthFilter(10))
binding.edtPANNumber.filters = arrayOf<InputFilter>(LengthFilter(10)) binding.edtPANNumber.filters = arrayOf<InputFilter>(LengthFilter(10))
@ -1243,7 +1260,7 @@ class StepTwoBajajFDFragment : Fragment() {
GridLayoutManager(activity as BajajFdMainActivity, 2) GridLayoutManager(activity as BajajFdMainActivity, 2)
paymentModeAdapter = PaymentModeAdapter( paymentModeAdapter = PaymentModeAdapter(
listOfPayMode, listOfPayMode,
listOfPayMode[0].Value
amountEntered
) )
binding.rvPaymentMode.adapter = paymentModeAdapter binding.rvPaymentMode.adapter = paymentModeAdapter
} }


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

@ -0,0 +1,12 @@
package com.nivesh.production.bajajfd.viewModel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
open class MyObseravble : ViewModel()
{
val data = MutableLiveData<String>()
fun data(item: String) {
data.value = item
}
}

+ 4
- 3
app/src/main/res/layout/item_payment_list_preview.xml View File

@ -8,7 +8,8 @@
app:cardElevation="2dp" app:cardElevation="2dp"
app:cardMaxElevation="1dp" app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true" app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
app:cardUseCompatPadding="true"
android:id="@+id/cardView">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -22,7 +23,7 @@
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/bankSelector"
android:id="@+id/paymentSelector"
android:layout_width="@dimen/margin_25" android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25" android:layout_height="@dimen/margin_25"
android:layout_marginStart="@dimen/margin_10" android:layout_marginStart="@dimen/margin_10"
@ -32,7 +33,7 @@
android:padding="@dimen/margin_5" /> android:padding="@dimen/margin_5" />
<TextView <TextView
android:id="@+id/tvBankName"
android:id="@+id/paymentMethod"
style="@style/BoldStyle" style="@style/BoldStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"


+ 1
- 1
app/src/main/res/values/strings.xml View File

@ -126,7 +126,7 @@
<string name="paymentMode">Payment Mode</string> <string name="paymentMode">Payment Mode</string>
<string name="Upi">UPI</string> <string name="Upi">UPI</string>
<string name="netBanking">NetBanking</string> <string name="netBanking">NetBanking</string>
<string name="upto1LakhOnly">Upto Rs. 1 Lakh Only</string>
<string name="upto1LakhOnly">Upto Rs. 1 lakh only for UPI</string>
<string name="eligibleBankOption">Eligible Bank Option</string> <string name="eligibleBankOption">Eligible Bank Option</string>
<string name="paymentModeCategory">PaymentMode</string> <string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string> <string name="customerCategory">CustomerCategory</string>


Loading…
Cancel
Save

Powered by TurnKey Linux.