Browse Source

Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
PankajBranch
Manoj 2 years ago
parent
commit
a5dda905f7
10 changed files with 281 additions and 140 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. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  5. +75
    -82
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  6. +92
    -19
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  7. +22
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  8. +15
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  9. +5
    -0
      app/src/main/res/drawable/ic_minus.xml
  10. +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(
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)
@ -27,13 +28,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,28 +55,28 @@ 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
}
}
}


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

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

@ -2,7 +2,7 @@ package com.nivesh.production.bajajfd.model
data class GetCodes(
val Label: String,
val Value: String,
var Value: String,
var isSelected : Boolean
) {
override fun toString(): String {


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

@ -4,13 +4,11 @@ import android.Manifest
import android.annotation.SuppressLint
import android.app.ActionBar.LayoutParams
import android.app.Dialog
import android.content.Intent
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.OpenableColumns
import android.util.Base64
@ -21,7 +19,6 @@ import android.view.ViewGroup
import android.widget.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider
@ -36,6 +33,7 @@ import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.ImageUtil
import com.nivesh.production.bajajfd.util.Resource
@ -45,42 +43,33 @@ import java.io.*
class StepThreeBajajFDFragment : BaseFragment() {
var bitmap: Bitmap? = null
private var bitmap: Bitmap? = null
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes>
lateinit var getCodes: GetCodes
private var docValue: String = ""
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog
private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null
private var launcher:ActivityResultLauncher<Intent>? = null
private var panString: String = ""
private var photoString: String = ""
private var docString: String = ""
private var docString2: String = ""
private var panFileExt: String? = ""
private var photoFileExt: String? = ""
private var doc1FileExt: String? = ""
private var doc2fileExt: String? = ""
private var uniqueId: String? = ""
// private var actionType: AccountCaptureType? = null
//
// enum class AccountCaptureType {
// MAIN_PAN_UPLOAD, MAIN_PHOTO_UPLOAD, FIRST_UPLOAD, SECOND_UPLOAD
// }
val MAIN_PAN_UPLOAD: Int = 1
val MAIN_PHOTO_UPLOAD: Int = 2
val FIRST_UPLOAD: Int = 3
val SECOND_UPLOAD: Int = 4
var actionType: Int = -1
private val MAIN_PAN_UPLOAD: Int = 1
private val MAIN_PHOTO_UPLOAD: Int = 2
private val FIRST_UPLOAD: Int = 3
private val SECOND_UPLOAD: Int = 4
private var actionType: Int = -1
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
@ -101,7 +90,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
return binding.root
}
@RequiresApi(Build.VERSION_CODES.P)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepThreeBajajFDViewModel = ViewModelProvider(
@ -126,27 +114,11 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
}
//
// launcher = registerForActivityResult(
// ActivityResultContracts.StartActivityForResult()
// ) { result: ActivityResult ->
// if (result.resultCode == Activity.RESULT_OK
// && result.data != null
// ) {
// val photoUri = result.data!!.data
// if (photoUri != null) {
// uploadDocument(photoUri)
// }
////use photoUri here
// }
// }
//
binding.btnNext.setOnClickListener {
if (validate()) {
uploadDocApi(
"PAN",
"data:image/.".plus(panFileExt).plus(";base64").plus(panString),
"data:image/".plus(panFileExt).plus(";base64, ").plus(panString),
1
)
}
@ -177,7 +149,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.spDocType.onItemClickListener =
AdapterView.OnItemClickListener { parent, _, position, _ ->
getCodes = parent.getItemAtPosition(position) as GetCodes
val getCodes : GetCodes = parent.getItemAtPosition(position) as GetCodes
docValue = getCodes.Value
docString = ""
docString2 = ""
when (getCodes.Label) {
@ -232,9 +205,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
Manifest.permission.READ_EXTERNAL_STORAGE
)
if (permission == PackageManager.PERMISSION_GRANTED) {
// val intent =
// Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
// launcher?.launch(intent)
selectImageIntent?.launch("image/*")
} else {
requestPermission.launch(
@ -262,7 +232,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
}
private fun setOtherUploadLayout(itemName: String) {
private fun setOtherUploadLayout(itemName: String?) {
binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
View.INVISIBLE
@ -287,77 +257,98 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.ivPan.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
panFileExt = fileExtension.extension
if(type == "c") encodedPANBase64(fileExtension)
else panString = bitmap?.let { ImageUtil.convert(it) }.toString()
panFileExt = getFileExtension(getFileName(uri))
val size : Double = Common.getFileSizeInMB(fileExtension.length())
if (size < 5){
if(type == "c") encodedPANBase64(fileExtension)
else panString = bitmap?.let { ImageUtil.convert(it) }.toString()
} else{
panString = ""
panFileExt = ""
}
}
MAIN_PHOTO_UPLOAD -> {
binding.ivPhotograph.visibility = View.VISIBLE
binding.ivPan.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
photoFileExt = fileExtension.extension
if(type == "c") encodedPhotoBase64(fileExtension)
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString()
photoFileExt = getFileExtension(getFileName(uri))
val size : Double = Common.getFileSizeInMB(fileExtension.length())
if (size < 5) {
if (type == "c") encodedPhotoBase64(fileExtension)
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString()
}else{
photoString = ""
photoFileExt = ""
}
}
FIRST_UPLOAD -> {
binding.ivAadharFront.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc1FileExt = fileExtension.extension
if(type == "c") encodedUpload1Base64(fileExtension)
else docString = bitmap?.let { ImageUtil.convert(it) }.toString()
doc1FileExt = getFileExtension(getFileName(uri))
val size : Double = Common.getFileSizeInMB(fileExtension.length())
if (size < 5) {
if (type == "c") encodedUpload1Base64(fileExtension)
else docString = bitmap?.let { ImageUtil.convert(it) }.toString()
}else{
docString = ""
doc1FileExt = ""
}
}
else -> {
binding.ivAadharBack.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc2fileExt = fileExtension.extension
if(type == "c") encodedFileToBase64(fileExtension)
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString()
doc2fileExt = getFileExtension(getFileName(uri))
val size : Double = Common.getFileSizeInMB(fileExtension.length())
if (size < 5) {
if (type == "c") encodedFileToBase64(fileExtension)
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString()
}else{
docString2 = ""
doc2fileExt = ""
}
}
}
}
private fun encodedPANBase64(fileName: File?) {
private fun encodedPANBase64(fileName: File) {
panString = try {
val bytes: ByteArray? = fileName?.let { loadFile(it) }
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' }
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "")
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedPhotoBase64(fileName: File?) {
private fun encodedPhotoBase64(fileName: File) {
photoString = try {
val bytes: ByteArray? = fileName?.let { loadFile(it) }
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' }
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "")
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedUpload1Base64(fileName: File?) {
private fun encodedUpload1Base64(fileName: File) {
docString = try {
val bytes: ByteArray? = fileName?.let { loadFile(it) }
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' }
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "")
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedFileToBase64(fileName: File?) {
private fun encodedFileToBase64(fileName: File) {
docString2 = try {
val bytes: ByteArray? = fileName?.let { loadFile(it) }
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' }
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "")
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
@ -410,22 +401,22 @@ class StepThreeBajajFDFragment : BaseFragment() {
if (uploadPosition == 1) {
uploadDocApi(
"Photograph",
"data:image/.".plus(photoFileExt).plus(";base64")
"data:image/".plus(photoFileExt).plus(";base64, ")
.plus(photoString),
2
)
} else if (uploadPosition == 2) {
uploadDocApi(
getCodes.Value,
"data:image/.".plus(doc1FileExt).plus(";base64")
docValue,
"data:image/".plus(doc1FileExt).plus(";base64, ")
.plus(docString),
3
)
} else if (uploadPosition == 3) {
if (getCodes.Value == "Aadhar") {
if (docValue == "Aadhar") {
uploadDocApi(
getCodes.Value,
"data:image/.".plus(doc2fileExt).plus(";base64")
docValue,
"data:image/".plus(doc2fileExt).plus(";base64, ")
.plus(docString2),
4
)
@ -441,7 +432,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getUploadResponse.Response.Message
getUploadResponse.Response.Errors[0].ErrorMessage
)
}
}
@ -545,7 +536,9 @@ class StepThreeBajajFDFragment : BaseFragment() {
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfDocType[0].Value)
setOtherUploadLayout(adapter.getItem(0)?.Value)
docValue = adapter.getItem(0)?.Value.toString()
}
}
// 650 -> refreshToken()
@ -592,10 +585,10 @@ class StepThreeBajajFDFragment : BaseFragment() {
} else if (docString.isEmpty()) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload " + getCodes.Value + " Image"
"Upload $docValue Image"
)
return false
} else if (getCodes.Value == "Aadhar" && docString2.isEmpty()) {
} else if (docValue == "Aadhar" && docString2.isEmpty()) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload Aadhar Back Image"


+ 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.LengthFilter
import android.text.TextWatcher
import android.util.DisplayMetrics
import android.util.Log
import android.view.LayoutInflater
import android.view.View
@ -73,6 +74,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
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?,
@ -522,7 +525,9 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener {
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 {
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(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1)
binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -763,9 +771,8 @@ 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) {
@ -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 {
return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText
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) {
val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH)
@ -942,7 +1017,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (monthOfYear.toString().length == 1) {
"0".plus(monthOfYear)
}
// edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years))
edtDOB.setText(
years.toString().plus("-").plus(monthOfYear + 1).plus("-")
.plus(dayOfMonth.toString())
@ -1162,7 +1236,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.rvPaymentMode.adapter = paymentModeAdapter
}
private fun genderApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)


+ 22
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt View File

@ -8,6 +8,7 @@ import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import android.os.Environment
import android.provider.ContactsContract
import android.text.format.DateFormat
import android.util.Patterns
@ -18,6 +19,7 @@ import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.R
import kotlinx.coroutines.CoroutineExceptionHandler
import retrofit2.HttpException
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
@ -233,5 +235,25 @@ class Common {
minAdultAge.add(Calendar.YEAR, -18)
return minAdultAge.before(userAge)
}
/* this function is used for file size in readable formate(End)*/
fun getFileSizeInMB(length: Long): Double {
// Get length of file in bytes
val fileSizeInBytes = length.toDouble()
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
val fileSizeInKB = fileSizeInBytes / 1024
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
return fileSizeInKB / 1024
}
fun getFileExtension(name: String): String {
val index = name.lastIndexOf('.')
return if (index > 0) {
name.substring(index + 1)
} else {
""
}
}
}
}

+ 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
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"
@ -895,18 +899,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>
@ -944,10 +952,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"


Loading…
Cancel
Save

Powered by TurnKey Linux.