8 Commits

Author SHA1 Message Date
  pankaj 0e2035ca57 bank detail add 2 years ago
  pankaj 63a1b584e0 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch 2 years ago
  pankaj e1b481895d commit 2 years ago
  Hemant Khadase 643f4f0ac6 added bankvalidation model class 2 years ago
  pankaj f1913d3670 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch 2 years ago
  pankaj e9d2d7a05c add 2 years ago
  Hemant Khadase 4c9c2a88b0 handled grid 2 years ago
  Hemant Khadase 4149a04b82 added code 2 years ago
18 changed files with 492 additions and 166 deletions
Split View
  1. +39
    -24
      app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt
  2. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt
  3. +11
    -14
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  4. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt
  5. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt
  6. +7
    -7
      app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt
  7. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXX.kt
  8. +5
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  9. +38
    -2
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  10. +188
    -47
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  11. +17
    -2
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  12. +6
    -0
      app/src/main/res/drawable/ic_baseline_check_24.xml
  13. +5
    -0
      app/src/main/res/drawable/ic_minus.xml
  14. +20
    -21
      app/src/main/res/layout/fragment_bajajfd_step_five.xml
  15. +57
    -10
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  16. +31
    -18
      app/src/main/res/layout/fragment_bajajfd_step_two.xml
  17. +35
    -19
      app/src/main/res/layout/item_payment_list_preview.xml
  18. +2
    -0
      app/src/main/res/values/dimens.xml

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

@ -7,18 +7,21 @@ 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
import com.nivesh.production.bajajfd.model.ClientBanklist
class BankListAdapter(
private val bankList: List<ClientBanklist>?,
private val selectedAccount: String? = null
private val selectedAccount: String? = null,
private val width:Double?
) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() {
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 tvBankAccountNumber: TextView = itemView.findViewById(R.id.tvBankAccountNumber)
val tvBankIFSC: TextView = itemView.findViewById(R.id.tvBankIFSC)
}
private var checkedPosition: Int = -2
@ -27,13 +30,23 @@ class BankListAdapter(
parent: ViewGroup,
viewType: Int
): 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) {
@ -44,30 +57,32 @@ class BankListAdapter(
holder.tvBankIFSC.text = bankList.IFSCCode
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)
checkedPosition = holder.adapterPosition
} else if (checkedPosition == -1) {
}
else if (checkedPosition == -1) {
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)
} 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
}
}
}
}
}


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

@ -16,6 +16,7 @@ class PaymentModeAdapter(
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 tvUpiMsg: TextView = itemView.findViewById(R.id.tvUpiMsg)
}
private var checkedPosition: Int = -2
@ -39,6 +40,11 @@ class PaymentModeAdapter(
if (bankList != null) {
holder.itemView.apply {
holder.tvBankName.text = bankList.Value
if (bankList.Value.equals("UPI")){
holder.tvUpiMsg.text = context.getString(R.string.upto1LakhOnly)
}else{
holder.tvUpiMsg.text = ""
}
if (selectedAccount == bankList.Value && checkedPosition == -2
) {


+ 11
- 14
app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt View File

@ -93,7 +93,7 @@ interface ApiInterface {
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi/api/GetClientDetailV2_S")
@POST("WebApi_Bajaj/api/GetClientDetailV2_S")
suspend fun getClientDetails(
@Body getClientDetailsRequest: getClientDetailsRequest,
@Header("token") token: String
@ -148,20 +148,11 @@ interface ApiInterface {
@GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj")
suspend fun bankListApi(@Header("token") token: String): Response<JsonObject>
@GET("WebApi/api/GetIFSC_Autofill")
suspend fun getIFSCApi(
@Query("prefix")
ifsc : String
@GET("WebApi/api/GetIFSC_Autofill?")
suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response<JsonObject>
): Response<JsonObject>
@GET("WebApi/api/GetBankDetailsFromIFSC?")
suspend fun getIFSCDetailsApi(
@Query("ifsc")
ifsc : String,
@Header("token")
token: String
): Response<JsonObject>
@GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?")
suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun payModeApi(
@ -169,4 +160,10 @@ interface ApiInterface {
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/BankValidationAPI_S")
suspend fun bankValidationApi(
@Body bankValidationApiRequest: BankValidationApiRequest,
@Header("token") token: String
): Response<JsonObject>
}

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

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

+ 8
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt View File

@ -0,0 +1,8 @@
package com.nivesh.production.bajajfd.model
data class BankValidationApiResponse(
val DataObject: Any,
val Message: String,
val ObjectResponse: Any,
val response: ResponseXXXXXXXXXXXXXX
)

+ 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
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
)

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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXXXXXXX(
val message: String,
val status: String,
val status_code: Int
)

+ 5
- 2
app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt View File

@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun ifscCodeCheck(str: String) =
apiInterface.getIFSCApi(str)
suspend fun ifscCodeDetailsCheck(str: String, token: String) =
apiInterface.getIFSCDetailsApi(str, token)
suspend fun ifscCodeDetailsCheck(str: String) =
apiInterface.getIFSCDetailsApi(str)
suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token)
@ -89,4 +89,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) =
apiInterface.checkFDKYC(checkFDKYCRequest, token)
suspend fun bankValidationApiRequest(bankValidationApiRequest: BankValidationApiRequest, token: String) =
apiInterface.bankValidationApi(bankValidationApiRequest, token)
}

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

@ -59,6 +59,11 @@ class StepThreeBajajFDFragment : BaseFragment() {
private var selectedImage: String? = ""
private var checkPANUploadFile: Boolean? = false
private var checkPhotoUploadFile: Boolean? = false
private var actionType: AccountCaptureType? = null
enum class AccountCaptureType {
MAIN_PAN_UPLOAD,MAIN_PHOTO_UPLOAD,FIRST_UPLOAD,SECOND_UPLOAD
}
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
@ -70,7 +75,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -123,24 +127,28 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.btnPANUpload.setOnClickListener {
checkPANUploadFile = true
checkPhotoUploadFile = false
actionType = AccountCaptureType.MAIN_PAN_UPLOAD
selectImage("PAN")
}
binding.btnPhotoUpload.setOnClickListener {
checkPhotoUploadFile = true
checkPANUploadFile = false
actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD
selectImage("Photograph")
}
binding.btnAadhaarFrontUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.FIRST_UPLOAD
selectImage(binding.spDocType.text.toString())
}
binding.btnAadhaarBackUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.SECOND_UPLOAD
selectImage(binding.spDocType.text.toString())
}
@ -148,7 +156,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
AdapterView.OnItemClickListener { parent, _, position, _ ->
val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes
when (getCodes.Value) {
when (getCodes.Label) {
resources.getString(R.string.aadhar) ->
setAadhaarUploadLayout()
else -> {
@ -257,6 +265,14 @@ class StepThreeBajajFDFragment : BaseFragment() {
} else {
selectedImage?.let { mapImage.put(it, front) }
}
when(actionType){
AccountCaptureType.MAIN_PAN_UPLOAD -> binding.ivPan.visibility = View.VISIBLE
AccountCaptureType.MAIN_PHOTO_UPLOAD -> binding.ivPhotograph.visibility = View.VISIBLE
AccountCaptureType.FIRST_UPLOAD -> binding.ivAadharFront.visibility = View.VISIBLE
else ->{
binding.ivAadharBack.visibility = View.VISIBLE
}
}
}
private fun encodedFileToBase64(fileName: File?) {
@ -465,6 +481,25 @@ class StepThreeBajajFDFragment : BaseFragment() {
private fun validate(): Boolean {
if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size < 3) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload Aadhaar Images"
)
return false
} else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload Aadhaar Images"
)
return false
} else if (mapImage.size < 3) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload All Images"
)
return false
}
return true
}
@ -501,4 +536,5 @@ class StepThreeBajajFDFragment : BaseFragment() {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
}
}

+ 188
- 47
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.LengthFilter
import android.text.TextWatcher
import android.util.DisplayMetrics
import android.util.Log
import android.view.LayoutInflater
import android.view.View
@ -17,6 +18,7 @@ import android.widget.RadioButton
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText
@ -46,18 +48,14 @@ import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel
import java.util.*
import kotlin.math.log
class StepTwoBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepTwoBinding? = null
private val binding get() = _binding!!
private lateinit var rbBank: RadioButton
private lateinit var rbPaymentMode: RadioButton
private var cal = Calendar.getInstance()
private lateinit var listOfTitle: List<GetCodes>
private lateinit var listOfGender: List<GetCodes>
private lateinit var listOfAnnualIncome: List<GetCodes>
@ -69,10 +67,13 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var listOfCities: List<DataObjectX>
private lateinit var listOfIFSC: MutableList<String>
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
private lateinit var bankListAdapter: BankListAdapter
private lateinit var paymentModeAdapter: PaymentModeAdapter
private lateinit var stateObject: DataObject
private val listOfBanks: MutableList<ClientBanklist> = mutableListOf()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -481,12 +482,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
removeError(binding.tlIFSC)
ifscCodeCheckApi(s.toString())
Log.e("ifsc", "-->" + s.toString())
}
})
binding.edtAccountNumber.addTextChangedListener(object : TextWatcher {
@ -529,6 +524,31 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener {
if (validateBank()) {
/// as
val selectedOption: Int = binding.rgBank!!.checkedRadioButtonId
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
)
// binding.radio.findViewById(selectedOption)
}
}
@ -538,6 +558,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) {
binding.llBankDetails.visibility = View.VISIBLE
} else {
binding.llBankDetails.visibility = View.GONE
}
@ -545,15 +567,25 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.addBankDetail.setOnClickListener {
if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0)
} else {
binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0)
}
}
titleApi()
// setUpRecyclerView()
setUpRecyclerView()
setUpRecyclerView(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1)
binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -572,11 +604,12 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.tvBankDetails.setOnClickListener {
if (binding.llBankDetails.visibility == View.VISIBLE) {
binding.llBankDetails.visibility = View.GONE
} else {
binding.llBankDetails.visibility = View.VISIBLE
}
}
binding.btnNext.setOnClickListener {
if (validation()) {
// Applicant Details
@ -717,11 +750,14 @@ class StepTwoBajajFDFragment : BaseFragment() {
createFDApi((activity as BajajFdMainActivity).createFDRequest)
}
}
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 0
}
}
private fun createFDApi(data: CreateFDRequest) {
@ -771,7 +807,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun ifscCodeCheckApi(ifsc: String) {
if (ifsc.length >8) {
if (ifsc.length ==11) {
stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@ -798,11 +834,9 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.edtIFSC.setOnItemClickListener { _, _, position, _ ->
if (listOfIFSC.size > 0) {
val enteredText = binding.edtIFSC.getText()
Log.d("bankifsc $enteredText",enteredText.toString())
binding.edtIFSC.setText(listOfIFSC[position])
binding.edtIFSC.setText(adapter.getItem(position).toString())
binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length)
getIFSCDetailsApi(enteredText.toString())
getIFSCDetailsApi(binding.edtIFSC.toString())
}
}
@ -846,9 +880,9 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
private fun getIFSCDetailsApi(ifscCode: String) {
stepTwoBajajFDViewModel.ifscCodeDetailsApi(
ifscCode,
token,
activity as BajajFdMainActivity
)
stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
@ -875,6 +909,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
@ -885,12 +920,96 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
is Resource.DataError -> {
response.errorCode?.let { errorCode ->
Common.showDialogValidation(activity as BajajFdMainActivity, errorCode.toString())
}
}
}
}
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 -> {
}
}
@ -898,6 +1017,9 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
private fun validateBank(): Boolean {
return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText
commonErrorAutoCompleteMethod(
@ -934,19 +1056,35 @@ 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
private fun setUpRecyclerView( bankList: List<ClientBanklist>?,
selectedAccount: String? = null) {
// This code is used to get the screen dimensions of the user's device
val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels.toDouble()
val height = displayMetrics.heightPixels
binding.rvClientBankList.layoutManager = LinearLayoutManager(
mActivity,
LinearLayoutManager.HORIZONTAL,
false
)
bankListAdapter = BankListAdapter(
bankList,
selectedAccount,width
)
binding.rvClientBankList.adapter = bankListAdapter
}
}
private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH)
@ -1056,11 +1194,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
)
binding.spTitle.setAdapter(adapter)
var titleText =
val titleText =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title
val newTitleText = "$titleText."
titleText="Mr."
if (titleText?.isEmpty()!! ) {
if (titleText.isNullOrEmpty()) {
binding.spTitle.setText(
adapter.getItem(0)?.Value,
false
@ -1071,22 +1209,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
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,
@ -1182,7 +1306,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
GridLayoutManager(activity as BajajFdMainActivity,2)
paymentModeAdapter = PaymentModeAdapter(
listOfPayMode,
listOfPayMode[0].Value
@ -1921,6 +2045,23 @@ class StepTwoBajajFDFragment : BaseFragment() {
super.onDestroyView()
_binding = null
}
// private fun showHideBankDetail() {
// if (show_bank_details.getVisibility() == View.GONE) {
// show_bank_details.setVisibility(View.VISIBLE)
// addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
// 0,
// 0,
// R.drawable.ic_minus_circle,
// 0
// )
// } else {
// show_bank_details.setVisibility(View.GONE)
// addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_add_icon, 0)
// }
// }
}

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

@ -138,12 +138,12 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
}
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String, token: String,activity : Activity) = viewModelScope.launch(
fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc, token)
val response = mainRepository.ifscCodeDetailsCheck(ifsc)
getifscCodeDetailsCheckMutableData.postValue(handleResponse(response))
}
}
@ -170,4 +170,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))
}
}
}

+ 6
- 0
app/src/main/res/drawable/ic_baseline_check_24.xml View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:height="24dp" android:tint="#64F50E"
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="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
</vector>

+ 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>

+ 20
- 21
app/src/main/res/layout/fragment_bajajfd_step_five.xml View File

@ -139,21 +139,21 @@
</androidx.core.widget.NestedScrollView>
<TextView
android:id="@+id/tvDownloadInvoice"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/margin_20"
android:backgroundTint="@color/blue"
android:text="@string/downloadInvoice"
android:textColor="@color/blue"
android:textSize="@dimen/text_size_16"
app:layout_constraintTop_toBottomOf="@+id/linearLayoutTwo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnNext"
app:layout_constraintStart_toStartOf="parent" />
<!-- <TextView-->
<!-- android:id="@+id/tvDownloadInvoice"-->
<!-- style="@style/semiBoldStyle"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center_vertical"-->
<!-- android:layout_marginTop="@dimen/margin_20"-->
<!-- android:backgroundTint="@color/blue"-->
<!-- android:text="@string/downloadInvoice"-->
<!-- android:textColor="@color/blue"-->
<!-- android:textSize="@dimen/text_size_16"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/linearLayoutTwo"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/btnNext"-->
<!-- app:layout_constraintStart_toStartOf="parent" />-->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnNext"
@ -162,13 +162,14 @@
android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_15"
android:layout_marginStart="@dimen/margin_170"
android:backgroundTint="@color/colorPrimary"
android:text="@string/viewOrder"
android:textColor="@color/white"
android:textSize="@dimen/text_size_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tvDownloadInvoice" />
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/tvRetry"
@ -179,11 +180,9 @@
android:text="@string/retry"
android:textColor="@color/white"
android:visibility="gone"
android:layout_marginStart="@dimen/margin_70"
android:layout_marginBottom="@dimen/margin_15"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnNext"
app:layout_constraintHorizontal_bias="0.607"
app:layout_constraintStart_toEndOf="@+id/tvDownloadInvoice"
app:layout_constraintTop_toTopOf="@+id/linearLayoutTwo"
app:layout_constraintVertical_bias="0.967" />
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 57
- 10
app/src/main/res/layout/fragment_bajajfd_step_three.xml View File

@ -114,6 +114,20 @@
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
tools:ignore="DuplicateSpeakableTextCheck" />
<ImageView
android:id="@+id/ivPan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:background="@drawable/ic_baseline_check_24"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/btnPANUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.384"
app:layout_constraintStart_toEndOf="@+id/btnPANUpload"
app:layout_constraintTop_toTopOf="@+id/btnPANUpload"
app:layout_constraintVertical_bias="0.333" />
<TextView
android:id="@+id/tvPhotoUpload"
style="@style/regularStyle"
@ -146,6 +160,20 @@
app:layout_constraintStart_toEndOf="@+id/tvPhotoUpload"
app:layout_constraintTop_toBottomOf="@+id/btnPANUpload" />
<ImageView
android:id="@+id/ivPhotograph"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:visibility="invisible"
android:background="@drawable/ic_baseline_check_24"
app:layout_constraintBottom_toBottomOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.384"
app:layout_constraintStart_toEndOf="@+id/btnPhotoUpload"
app:layout_constraintTop_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintVertical_bias="0.333" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/spAddressType"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
@ -191,6 +219,7 @@
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="12dp"
android:layout_marginEnd="28dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
@ -201,6 +230,20 @@
app:layout_constraintTop_toBottomOf="@+id/spAddressType"
tools:ignore="DuplicateSpeakableTextCheck" />
<ImageView
android:id="@+id/ivAadharFront"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:background="@drawable/ic_baseline_check_24"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.38"
app:layout_constraintStart_toEndOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.333" />
<Button
android:id="@+id/btnAadhaarBackUpload"
android:layout_width="wrap_content"
@ -220,6 +263,20 @@
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.0" />
<ImageView
android:id="@+id/ivAadharBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:background="@drawable/ic_baseline_check_24"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarBackUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.38"
app:layout_constraintStart_toEndOf="@+id/btnAadhaarBackUpload"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintVertical_bias="0.333" />
<TextView
android:id="@+id/tvAadhaarBack"
style="@style/regularStyle"
@ -235,16 +292,6 @@
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintVertical_bias="0.406" />
<ImageView
android:id="@+id/iv"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/bajaj_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarBackUpload" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>


+ 31
- 18
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
@ -824,6 +826,7 @@
<TextView
android:id="@+id/tvBankDetails"
style="@style/semiBoldStyle"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_5"
@ -846,7 +849,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvClientBankList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:orientation="horizontal"
/>
<TextView
android:id="@+id/addBankDetail"
@ -857,7 +864,7 @@
android:padding="@dimen/margin_5"
android:text="@string/add_new_account"
android:textColor="@color/black"
android:textSize="@dimen/text_size_18"
android:textSize="@dimen/text_size_16"
android:textStyle="bold"
app:drawableEndCompat="@drawable/ic_add_icon">
@ -894,18 +901,22 @@
android:orientation="horizontal">
<RadioButton
android:id="@+id/savingBank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:text="@string/savingsAccount" />
android:text="@string/savingsAccount"
/>
<RadioButton
android:id="@+id/currentBank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_50"
android:buttonTint="@color/black"
android:text="@string/currentAccount" />
android:text="@string/currentAccount"
/>
</RadioGroup>
@ -943,10 +954,24 @@
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="number"
android:textSize="@dimen/text_size_14" />
</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
android:id="@+id/tlBankName"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
@ -1002,6 +1027,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="@dimen/margin_5"
android:background="@color/greyColor3"
android:orientation="horizontal"
@ -1045,19 +1071,6 @@
</LinearLayout>
<TextView
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginTop="12dp"
android:layout_marginBottom="@dimen/margin_20"
android:padding="@dimen/margin_3"
android:text="@string/upto1LakhOnly"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
tools:layout_editor_absoluteX="5dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>


+ 35
- 19
app/src/main/res/layout/item_payment_list_preview.xml View File

@ -4,36 +4,52 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="3dp"
app:cardElevation="3dp"
app:cardCornerRadius="2dp"
app:cardElevation="2dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<LinearLayout
android:padding="@dimen/margin_3"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/bankSelector"
android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:contentDescription="@null" />
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/margin_2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/bankSelector"
android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_2"
android:contentDescription="@null"
android:padding="@dimen/margin_5" />
<TextView
android:id="@+id/tvBankName"
style="@style/BoldStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14" />
</LinearLayout>
<TextView
android:id="@+id/tvBankName"
android:id="@+id/tvUpiMsg"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:textStyle="bold" />
android:textSize="@dimen/text_size_12" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

+ 2
- 0
app/src/main/res/values/dimens.xml View File

@ -72,6 +72,8 @@
<dimen name="margin_100">100dp</dimen>
<dimen name="margin_120">120dp</dimen>
<dimen name="margin_150">150dp</dimen>
<dimen name="margin_160">160dp</dimen>
<dimen name="margin_170">170dp</dimen>
<dimen name="margin_290">290dp</dimen>
<dimen name="margin_300">300dp</dimen>


Loading…
Cancel
Save

Powered by TurnKey Linux.