From 120e0e5c852e3b70edd46ad11cc748ab836c841f Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 14:47:03 +0530 Subject: [PATCH 1/6] minor changes --- .../bajajfd/ui/fragment/StepTwoBajajFDFragment.kt | 2 +- .../production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 699f0ac..49d9df2 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 @@ -767,7 +767,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun ifscCodeCheckApi(ifsc: String) { if (ifsc.length >8) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) - stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> + stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { val getIFSCCodeListResponse = diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index eeabc61..9e724d0 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -125,14 +125,14 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } - val getifscCodeCheckMutableData: MutableLiveData> = MutableLiveData() + val getIfscCodeCheckMutableData: MutableLiveData> = MutableLiveData() fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch( Common.handleError(activity) ) { if (Common.isNetworkAvailable(activity)) { - getifscCodeCheckMutableData.postValue(Resource.Loading()) + getIfscCodeCheckMutableData.postValue(Resource.Loading()) val response = mainRepository.ifscCodeCheck(ifsc) - getifscCodeCheckMutableData.postValue(handleResponse(response)) + getIfscCodeCheckMutableData.postValue(handleResponse(response)) } } From 5311f9c41f545f53183aa354f1d8f77b5b3d6056 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 16:13:09 +0530 Subject: [PATCH 2/6] reformat code --- .../ui/fragment/StepThreeBajajFDFragment.kt | 282 +++++++++++------- 1 file changed, 176 insertions(+), 106 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 7260ac6..0abdaac 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -45,25 +45,36 @@ class StepThreeBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepThreeBinding? = null private val binding get() = _binding!! private lateinit var listOfDocType: List + lateinit var getCodes: GetCodes private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var dialog: Dialog private var takeImageResult: ActivityResultLauncher? = null private var selectImageIntent: ActivityResultLauncher? = null - private val mapImage: HashMap = HashMap() - private var front: String = "" - private var fileExt: String? = "" + 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 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 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 requestPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() @@ -109,15 +120,11 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.btnNext.setOnClickListener { if (validate()) { - var uploadPosition = 0 - for (entry in mapImage.iterator()) { - uploadPosition++ - if (entry.key.contains("Main ")) { - uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition) - } else { - uploadDocApi(entry.key, entry.value, uploadPosition) - } - } + uploadDocApi( + "PAN", + "data:image/.".plus(panFileExt).plus(";base64").plus(panString), + 1 + ) } } binding.btnBack.setOnClickListener { @@ -125,37 +132,30 @@ class StepThreeBajajFDFragment : BaseFragment() { } binding.btnPANUpload.setOnClickListener { - checkPANUploadFile = true - checkPhotoUploadFile = false - actionType = AccountCaptureType.MAIN_PAN_UPLOAD - selectImage("PAN") + actionType = MAIN_PAN_UPLOAD + selectImage() } binding.btnPhotoUpload.setOnClickListener { - checkPhotoUploadFile = true - checkPANUploadFile = false - actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD - selectImage("Photograph") + actionType = MAIN_PHOTO_UPLOAD + selectImage() } binding.btnAadhaarFrontUpload.setOnClickListener { - checkPANUploadFile = false - checkPhotoUploadFile = false - actionType = AccountCaptureType.FIRST_UPLOAD - selectImage(binding.spDocType.text.toString()) + actionType = FIRST_UPLOAD + selectImage() } binding.btnAadhaarBackUpload.setOnClickListener { - checkPANUploadFile = false - checkPhotoUploadFile = false - actionType = AccountCaptureType.SECOND_UPLOAD - selectImage(binding.spDocType.text.toString()) + actionType = SECOND_UPLOAD + selectImage() } binding.spDocType.onItemClickListener = AdapterView.OnItemClickListener { parent, _, position, _ -> - - val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes + getCodes = parent.getItemAtPosition(position) as GetCodes + docString = "" + docString2 = "" when (getCodes.Label) { resources.getString(R.string.aadhar) -> setAadhaarUploadLayout() @@ -190,8 +190,7 @@ class StepThreeBajajFDFragment : BaseFragment() { return result } - private fun selectImage(fileType: String) { - selectedImage = fileType + private fun selectImage() { dialog = Dialog(activity as BajajFdMainActivity) dialog.setContentView(R.layout.camera_gallery_layout) val ivCut: ImageView = dialog.findViewById(R.id.ivCut) @@ -256,27 +255,74 @@ class StepThreeBajajFDFragment : BaseFragment() { } private fun uploadDocument(uri: Uri) { - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - fileExt = fileExtension.extension - encodedFileToBase64(fileExtension) - if (checkPANUploadFile == true || checkPhotoUploadFile == true) { - mapImage["Main ".plus(selectedImage)] = front - } 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 ->{ + when (actionType) { + MAIN_PAN_UPLOAD -> { + binding.ivPan.visibility = View.VISIBLE + val fileDir: File = requireActivity().cacheDir + val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) + panFileExt = fileExtension.extension + encodedPANBase64(fileExtension) + } + 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 + encodedPhotoBase64(fileExtension) + } + FIRST_UPLOAD -> { + binding.ivAadharFront.visibility = View.VISIBLE + val fileDir: File = requireActivity().cacheDir + val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) + doc1FileExt = fileExtension.extension + encodedUpload1Base64(fileExtension) + } + else -> { binding.ivAadharBack.visibility = View.VISIBLE + val fileDir: File = requireActivity().cacheDir + val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) + doc2fileExt = fileExtension.extension + encodedFileToBase64(fileExtension) } } } + 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(), "") + } catch (e: Exception) { + e.printStackTrace() + "" + } + } + + 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(), "") + } catch (e: Exception) { + e.printStackTrace() + "" + } + } + + 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(), "") + } catch (e: Exception) { + e.printStackTrace() + "" + } + } + private fun encodedFileToBase64(fileName: File?) { - front = try { + docString2 = try { val bytes: ByteArray? = fileName?.let { loadFile(it) } Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") @@ -310,8 +356,7 @@ class StepThreeBajajFDFragment : BaseFragment() { du.Description = key du.DocumentType = key du.FDProvider = getString(R.string.bajaj) - du.ImageEncodeToBase64 = - "data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64" + du.ImageEncodeToBase64 = imageBase64 du.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE du.UniqueId = uniqueId @@ -330,17 +375,36 @@ class StepThreeBajajFDFragment : BaseFragment() { when (code) { 200 -> { Log.e("check_upload_res", response.message.toString()) - if (uploadPosition == mapImage.size) { - Toast.makeText( - requireActivity(), - "".plus(mapImage.size.toString() + " Last Image Uploaded ") + - uploadPosition, - Toast.LENGTH_LONG - ).show() - // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) + if (uploadPosition == 1) { + uploadDocApi( + "Photograph", + "data:image/.".plus(photoFileExt).plus(";base64") + .plus(photoString), + 2 + ) + } else if (uploadPosition == 2) { + uploadDocApi( + getCodes.Value, + "data:image/.".plus(doc1FileExt).plus(";base64") + .plus(docString), + 3 + ) + } else if (uploadPosition == 3) { + if (getCodes.Value == "Aadhar") { + uploadDocApi( + getCodes.Value, + "data:image/.".plus(doc2fileExt).plus(";base64") + .plus(docString2), + 4 + ) + } else { + createFDApi((activity as BajajFdMainActivity).createFDRequest) + } + } else if (uploadPosition == 4) { createFDApi((activity as BajajFdMainActivity).createFDRequest) } } + // 650 -> refreshToken() else -> { Common.showDialogValidation( @@ -368,51 +432,51 @@ class StepThreeBajajFDFragment : BaseFragment() { } private fun createFDApi(data: CreateFDRequest) { - stepThreeBajajFDViewModel.createFDApi( - data, - Constants.token, - activity as BajajFdMainActivity - ) - stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("createFDApi", "response--> " + response.data.toString()) - val createFDApplicationResponse: CreateFDApplicationResponse = - Gson().fromJson( - response.data?.toString(), - CreateFDApplicationResponse::class.java - ) - createFDApplicationResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - (activity as BajajFdMainActivity).stepThreeApi( - createFDApplicationResponse - ) - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - createFDApplicationResponse.Response.Errors[0].ErrorMessage - ) - } + stepThreeBajajFDViewModel.createFDApi( + data, + Constants.token, + activity as BajajFdMainActivity + ) + stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("createFDApi", "response--> " + response.data.toString()) + val createFDApplicationResponse: CreateFDApplicationResponse = + Gson().fromJson( + response.data?.toString(), + CreateFDApplicationResponse::class.java + ) + createFDApplicationResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + (activity as BajajFdMainActivity).stepThreeApi( + createFDApplicationResponse + ) + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + createFDApplicationResponse.Response.Errors[0].ErrorMessage + ) } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } - is Resource.DataError -> { + } + is Resource.DataError -> { - } } } + } } @@ -481,22 +545,28 @@ class StepThreeBajajFDFragment : BaseFragment() { private fun validate(): Boolean { - if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size < 3) { + if (panString.isEmpty()) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload PAN Document" + ) + return false + } else if (photoString.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload Aadhaar Images" + "Upload Photo" ) return false - } else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) { + } else if (docString.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload Aadhaar Images" + "Upload " + getCodes.Value + " Image" ) return false - } else if (mapImage.size < 3) { + } else if (getCodes.Value == "Aadhar" && docString2.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload All Images" + "Upload Aadhar Back Image" ) return false } From 2fd53592e8bb935a49a41cbde830130dc02d32eb Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 20:33:18 +0530 Subject: [PATCH 3/6] completed image upload --- .../production/bajajfd/model/GetCodes.kt | 2 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 156 +++++++++++------- .../nivesh/production/bajajfd/util/Common.kt | 22 +++ .../production/bajajfd/util/ImageUtil.kt | 27 +++ .../layout/fragment_bajajfd_step_three.xml | 2 +- 5 files changed, 148 insertions(+), 61 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt 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 6741a5c..0a4d577 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 @@ -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 { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 0abdaac..83f2787 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -6,6 +6,8 @@ import android.app.ActionBar.LayoutParams import android.app.Dialog import android.content.pm.PackageManager import android.database.Cursor +import android.graphics.Bitmap +import android.graphics.BitmapFactory import android.net.Uri import android.os.Bundle import android.provider.OpenableColumns @@ -31,24 +33,25 @@ 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 import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel -import java.io.File -import java.io.FileInputStream -import java.io.IOException -import java.io.InputStream +import java.io.* + class StepThreeBajajFDFragment : BaseFragment() { + 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 - 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? = null private var selectImageIntent: ActivityResultLauncher? = null @@ -57,24 +60,16 @@ class StepThreeBajajFDFragment : BaseFragment() { 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() @@ -105,7 +100,8 @@ class StepThreeBajajFDFragment : BaseFragment() { selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> if (uri != null) { - uploadDocument(uri) + bitmap = uriToBitmap(uri) + uploadDocument(uri,"g") } } @@ -113,7 +109,7 @@ class StepThreeBajajFDFragment : BaseFragment() { registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> if (isSuccess) { latestTmpUri?.let { uri -> - uploadDocument(uri) + uploadDocument(uri,"c") } } } @@ -122,7 +118,7 @@ class StepThreeBajajFDFragment : BaseFragment() { if (validate()) { uploadDocApi( "PAN", - "data:image/.".plus(panFileExt).plus(";base64").plus(panString), + "data:image/".plus(panFileExt).plus(";base64, ").plus(panString), 1 ) } @@ -153,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) { @@ -235,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 @@ -254,78 +251,104 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.btnAadhaarFrontUpload.visibility = View.VISIBLE } - private fun uploadDocument(uri: Uri) { + private fun uploadDocument(uri: Uri,type: String) { when (actionType) { MAIN_PAN_UPLOAD -> { binding.ivPan.visibility = View.VISIBLE val fileDir: File = requireActivity().cacheDir val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - panFileExt = fileExtension.extension - encodedPANBase64(fileExtension) + 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 - encodedPhotoBase64(fileExtension) + 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 - encodedUpload1Base64(fileExtension) + 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 - encodedFileToBase64(fileExtension) + 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() "" @@ -378,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 ) @@ -409,7 +432,7 @@ class StepThreeBajajFDFragment : BaseFragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getUploadResponse.Response.Message + getUploadResponse.Response.Errors[0].ErrorMessage ) } } @@ -513,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() @@ -560,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" @@ -605,4 +630,17 @@ class StepThreeBajajFDFragment : BaseFragment() { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId } + + private fun uriToBitmap(selectedFileUri: Uri): Bitmap? { + try { + val parcelFileDescriptor = requireActivity().contentResolver.openFileDescriptor(selectedFileUri, "r") + val fileDescriptor: FileDescriptor = parcelFileDescriptor!!.fileDescriptor + val image = BitmapFactory.decodeFileDescriptor(fileDescriptor) + parcelFileDescriptor.close() + return image + } catch (e: IOException) { + e.printStackTrace() + } + return null + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 9d5bc8b..779be5d 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -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 { + "" + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt new file mode 100644 index 0000000..0d1340f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt @@ -0,0 +1,27 @@ +package com.nivesh.production.bajajfd.util + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.util.Base64; +import java.io.ByteArrayOutputStream; + + +class ImageUtil { + + @Throws(IllegalArgumentException::class) + fun convert(base64Str: String): Bitmap? { + val decodedBytes: ByteArray = Base64.decode( + base64Str.substring(base64Str.indexOf(",") + 1), + Base64.DEFAULT + ) + return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size) + } + + companion object { + fun convert(bitmap: Bitmap): String? { + val outputStream = ByteArrayOutputStream() + bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream) + return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index 9467bfd..a0ef82f 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -109,7 +109,7 @@ android:textColor="@color/black" app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.925" + app:layout_constraintHorizontal_bias="0.78" app:layout_constraintStart_toEndOf="@+id/tvPAN" app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument" tools:ignore="DuplicateSpeakableTextCheck" /> From 20a3016bb6e97994c3812465b3052ca69443f8b2 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 21:36:27 +0530 Subject: [PATCH 4/6] added pankajs code --- .../bajajfd/adapter/BankListAdapter.kt | 57 +++++---- .../bajajfd/model/BankValidationApiRequest.kt | 10 +- .../bajajfd/model/ClientBanklist.kt | 14 +-- .../ui/fragment/StepTwoBajajFDFragment.kt | 111 +++++++++++++++--- .../viewModel/StepTwoBajajFDViewModel.kt | 15 +++ app/src/main/res/drawable/ic_minus.xml | 5 + .../res/layout/fragment_bajajfd_step_two.xml | 28 ++++- 7 files changed, 183 insertions(+), 57 deletions(-) create mode 100644 app/src/main/res/drawable/ic_minus.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 index 2e5f4be..45a053f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -12,7 +12,8 @@ import com.nivesh.production.bajajfd.model.ClientBanklist class BankListAdapter( private val bankList: List?, - private val selectedAccount: String? = null + private val selectedAccount: String? = null, + private val width:Double? ) : RecyclerView.Adapter() { 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 } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt index 10fca16..0b6ae56 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt @@ -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 ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt index 52e87e8..04a1ed1 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt @@ -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 ) \ 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 49d9df2..7d805e0 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 @@ -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 = 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?, 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) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 9e724d0..26f8e18 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -169,4 +169,19 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } + + + + val bankValidationApiMutableData: MutableLiveData> = 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)) + } + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_minus.xml b/app/src/main/res/drawable/ic_minus.xml new file mode 100644 index 0000000..f465978 --- /dev/null +++ b/app/src/main/res/drawable/ic_minus.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 62005a5..89496dd 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -847,7 +847,11 @@ + android:layout_height="match_parent" + android:orientation="horizontal" + + + /> + android:text="@string/savingsAccount" + /> + android:text="@string/currentAccount" + /> @@ -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" /> + + + + Date: Fri, 6 Jan 2023 11:14:56 +0530 Subject: [PATCH 5/6] added url modification and api for bank details and xml change --- app/src/main/AndroidManifest.xml | 3 +- .../bajajfd/interfaces/ApiInterface.kt | 58 +++---- .../bajajfd/model/GetIFSCCodeResponse.kt | 7 +- .../bajajfd/model/IFSCCODEServiceResult.kt | 10 ++ .../bajajfd/repositories/MainRepository.kt | 4 +- .../ui/fragment/StepTwoBajajFDFragment.kt | 150 ++++++++++-------- .../nivesh/production/bajajfd/util/Common.kt | 22 ++- .../production/bajajfd/util/Constants.kt | 2 +- .../viewModel/StepTwoBajajFDViewModel.kt | 11 +- 9 files changed, 158 insertions(+), 109 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba0157d..cff8336 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,9 +19,10 @@ android:required="false" /> - @POST("WebApi_Bajaj/api/CheckFDCKYC") + @POST("CheckFDCKYC") suspend fun checkFDKYC( @Body checkFDKYCRequest: CheckFDKYCRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/CreateFDApplication") + @POST("CreateFDApplication") suspend fun createFDApp( @Body createFDRequest: CreateFDRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/DocumentsUpload") + @POST("DocumentsUpload") suspend fun documentsUpload( @Body requestBody: DocumentUpload, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/SaveFDOtherData") + @POST("SaveFDOtherData") suspend fun saveFDOtherData( @Body requestBody: SaveFDOtherDataRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetFDDetails") + @POST("GetFDDetails") suspend fun getFDDetails( @Body requestBody: GetFDDetailsRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/UpdateFDPaymentStatus") + @POST("UpdateFDPaymentStatus") suspend fun updateFDPaymentStatus( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/FinaliseFD") + @POST("FinaliseFD") suspend fun finaliseFD( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/FinaliseKYC") + @POST("FinaliseKYC") suspend fun finaliseKYC( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/PaymentRequery") + @POST("PaymentRequery") suspend fun paymentReQuery( @Body requestBody: RequestBody, @Header("token") token: String ): Response // @FormUrlEncoded - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun getCodes( @Body requestBody: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/CalculateFDMaturityAmount") + @POST("CalculateFDMaturityAmount") suspend fun getCalculateFDMaturityAmount( @Body requestBody: GetMaturityAmountRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/PanCheck_S") + @POST("PanCheck_S") suspend fun panCheckApi( @Body panCheck: PanCheckRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/getFDStepsCount") + @POST("getFDStepsCount") suspend fun getFDStepsCount( @Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetClientDetailV2_S") + @POST("GetClientDetailV2_S") suspend fun getClientDetails( @Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun titleApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun genderApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun annualIncomeApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun relationShipApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun maritalStatusApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun occupationApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetStateMaster") + @POST("GetStateMaster") suspend fun stateApi(@Header("token") token: String): Response - @POST("WebApi_Bajaj/api/GetCity") + @POST("GetCity") suspend fun cityApi( @Body cityRequest: CityRequest, @Header("token") token: String ): Response - @GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj") + @GET("GetFDBankList?FDProvider=Bajaj") suspend fun bankListApi(@Header("token") token: String): Response - @GET("WebApi/api/GetIFSC_Autofill?") + @GET("GetIFSC_Autofill?") suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response - @GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?") - suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response + @GET("GetbankNames") + suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun payModeApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/BankValidationAPI_S") + @POST("BankValidationAPI_S") suspend fun bankValidationApi( @Body bankValidationApiRequest: BankValidationApiRequest, @Header("token") token: String diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt index e648098..21338dd 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt @@ -1,10 +1,5 @@ package com.nivesh.production.bajajfd.model data class GetIFSCCodeResponse( - val ADDRESS: String, - val BANK: String, - val BRANCH: String, - val IFSC: String, - val MICR: String, - val Response: ResponseXXXXXXXXX + val IFSCCODEServiceResult: List ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt new file mode 100644 index 0000000..717ce5f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class IFSCCODEServiceResult( + val BankBranch: String, + val BnkDescr: String, + val BnkShrtDescr: String, + val Code: String, + val IfscCode: String, + val intCustbnk_pk: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index c054d7b..5ba37a4 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun ifscCodeCheck(str: String) = apiInterface.getIFSCApi(str) - suspend fun ifscCodeDetailsCheck(str: String) = - apiInterface.getIFSCDetailsApi(str) + suspend fun ifscCodeBankDetailsCheck(str: String, token: String) = + apiInterface.getIFSCBankDetailsApi(str, token) suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = apiInterface.payModeApi(getCodeRequest, token) 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 7d805e0..d97ec40 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 @@ -525,9 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.btnAddBank.setOnClickListener { if (validateBank()) { - 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) + verifyAccountNo( + binding.edtAccountNumber.text.toString(), + binding.edtIFSC.text.toString(), + binding.edtFirstName.text.toString().plus(" ") + .plus(binding.edtMiddleName.text.toString()).plus(" ") + .plus(binding.edtLastName.text.toString()), + binding.edtMobileNumber.text.toString(), + 1 + ) } } @@ -544,18 +550,29 @@ 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) + 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) + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( + 0, + 0, + R.drawable.ic_add_icon, + 0 + ) } } titleApi() setUpRecyclerView( (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1) + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 + ) binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -772,7 +789,7 @@ class StepTwoBajajFDFragment : BaseFragment() { } private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length ==11) { + if (ifsc.length >= 10) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -796,23 +813,16 @@ class StepTwoBajajFDFragment : BaseFragment() { listOfIFSC ) binding.edtIFSC.setAdapter(adapter) - binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> if (listOfIFSC.size > 0) { - binding.edtIFSC.setText(adapter.getItem(position).toString()) + binding.edtIFSC.setText( + adapter.getItem(position).toString() + ) binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(binding.edtIFSC.toString()) + getIFSCDetailsApi(binding.edtIFSC.text.toString()) } } - - - } - - - - - } // 650 -> refreshToken() else -> { @@ -850,31 +860,20 @@ class StepTwoBajajFDFragment : BaseFragment() { ifscCode, activity as BajajFdMainActivity ) - stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> + stepTwoBajajFDViewModel.getIfscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - val getIFSCCodeResponse = - Gson().fromJson( - response.data?.toString(), + if (response.data.toString().isNotEmpty()) { + val getIFSCCodeResponse = Gson().fromJson( + response.data.toString(), GetIFSCCodeResponse::class.java ) - getIFSCCodeResponse.Response.status_code.let { code -> - when (code) { - 200 -> { - binding.edtBankName.setText(getIFSCCodeResponse.BANK) - binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH) - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getIFSCCodeResponse.Response.message - ) - } - } + binding.edtBankName.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BnkDescr) + binding.edtBankName.setSelection(binding.edtBankName.text.toString().length) + binding.edtBankBranch.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BankBranch) + binding.edtBankBranch.setSelection( binding.edtBankBranch.text.toString().length) } } - is Resource.Error -> { response.message?.let { message -> Common.showDialogValidation(activity as BajajFdMainActivity, message) @@ -886,21 +885,28 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.DataError -> { } + } - } + } } - private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) { + 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) + 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 -> { @@ -916,28 +922,38 @@ class StepTwoBajajFDFragment : BaseFragment() { 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 + 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) + setUpRecyclerView( + listOfBanks, + clientBankList.AccountNumber.toString() + ) + } else { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } } else -> { - Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } } } @@ -956,7 +972,6 @@ class StepTwoBajajFDFragment : BaseFragment() { } } } - } private fun validateBank(): Boolean { @@ -995,7 +1010,10 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun setUpRecyclerView( bankList: List?, selectedAccount: String? = null) { + private fun setUpRecyclerView( + bankList: List?, + selectedAccount: String? = null + ) { val displayMetrics = DisplayMetrics() requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) val width = displayMetrics.widthPixels.toDouble() @@ -1004,7 +1022,7 @@ class StepTwoBajajFDFragment : BaseFragment() { LinearLayoutManager.HORIZONTAL, false ) - bankListAdapter = BankListAdapter(bankList, selectedAccount,width) + bankListAdapter = BankListAdapter(bankList, selectedAccount, width) binding.rvClientBankList.adapter = bankListAdapter } @@ -1228,7 +1246,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { binding.rvPaymentMode.layoutManager = - GridLayoutManager(activity as BajajFdMainActivity,2) + GridLayoutManager(activity as BajajFdMainActivity, 2) paymentModeAdapter = PaymentModeAdapter( listOfPayMode, listOfPayMode[0].Value @@ -1896,7 +1914,11 @@ class StepTwoBajajFDFragment : BaseFragment() { getString(R.string.emptyState) ) } else if (binding.spCity.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod(binding.spCity, binding.tlCity, getString(R.string.emptyCity)) + commonSpinnerErrorMethod( + binding.spCity, + binding.tlCity, + getString(R.string.emptyCity) + ) } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtPinCode, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 779be5d..104dd0c 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -8,9 +8,9 @@ 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.Log import android.util.Patterns import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText @@ -18,8 +18,9 @@ import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R import kotlinx.coroutines.CoroutineExceptionHandler +import org.json.JSONObject import retrofit2.HttpException -import java.io.File +import retrofit2.Response import java.io.IOException import java.text.SimpleDateFormat import java.util.* @@ -207,6 +208,23 @@ class Common { return Resource.Error(response.message()) } + fun handleResponse1(response: Response): Resource { + if (response.isSuccessful && response.body() != null) { + if (response.body().toString().isNotEmpty()) { + Log.e("response", "-->$response") + val str: String = response.body().toString().replace("\r\n", "") + Log.e("str", "-->$str") + val jsonObject = JSONObject(str) + Log.e("jsonObject", "-->$jsonObject") + return Resource.Success(jsonObject.toString()) + }else { + return Resource.Error(response.message()) + } + } + return Resource.Error(response.message()) + + } + fun handleError(activity: Activity): CoroutineExceptionHandler { val handler = CoroutineExceptionHandler { _, exception -> if (exception is IOException || exception is HttpException) { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt index d7cc998..ed5ae6e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt @@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util class Constants() { companion object { - const val BASE_URL = "https://providential.in/" + const val BASE_URL = "https://providential.in/WebApi_Bajaj/api/" const val token = "636F8F63-06C4-4D95-8562-392B34025FB0" } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 26f8e18..2f957dc 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -9,6 +9,8 @@ import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse1 +import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch @@ -136,17 +138,18 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } - val getifscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() + val getIfscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch( Common.handleError(activity) ) { if (Common.isNetworkAvailable(activity)) { - getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeDetailsCheck(ifsc) - getifscCodeDetailsCheckMutableData.postValue(handleResponse(response)) + getIfscCodeDetailsCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeBankDetailsCheck(ifsc, token) + getIfscCodeDetailsCheckMutableData.postValue(handleResponse1(response)) } } + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( Common.handleError(activity) From bc9c58b2b1ad95778d411f6c7e23b62b175e3750 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Fri, 6 Jan 2023 12:06:52 +0530 Subject: [PATCH 6/6] changes related to api --- .../bajajfd/model/CreateFDApplicationRequest.kt | 4 +++- .../bajajfd/ui/activity/BajajFdMainActivity.kt | 14 ++++++++++++-- .../ui/fragment/StepThreeBajajFDFragment.kt | 15 ++++++++------- .../bajajfd/ui/fragment/StepTwoBajajFDFragment.kt | 1 + 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt index a5c8d1e..5c0e70e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt @@ -6,5 +6,7 @@ data class CreateFDApplicationRequest( var FDInvestmentDetails: FDInvestmentDetails? = null, var FdBankDetails: FdBankDetails? = null, var NomineeDetails: NomineeDetails? = null, - var NomineeGuardianDetails: NomineeGuardianDetails ? = null + var NomineeGuardianDetails: NomineeGuardianDetails ? = null, + var UniqueId: String? = "" + ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 82a5cad..01f1eab 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -31,6 +31,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* +import java.net.URLEncoder class BajajFdMainActivity : BaseActivity() { @@ -225,7 +226,7 @@ class BajajFdMainActivity : BaseActivity() { // set viewPager sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount) val viewPager: DisableAdapter = binding.viewPager - viewPager.setPagingEnabled(false) + // viewPager.setPagingEnabled(false) viewPager.adapter = sectionsPagerAdapter viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrolled( @@ -409,8 +410,17 @@ class BajajFdMainActivity : BaseActivity() { wVPay.webViewClient = MyWebViewClient() wVPay.settings.javaScriptEnabled = true wVPay.settings.domStorageEnabled = true - wVPay.loadUrl(payUrl) + // wVPay.loadUrl(payUrl) + val postData = "name=${URLEncoder.encode("msg", "UTF-8")}" + + "&value=${URLEncoder.encode(value, "UTF-8")}" + wVPay.postUrl(payUrl, postData.toByteArray()) dialogWebView.show() + +// val webView = WebView(this@BajajFdMainActivity) +// val postData = "type=${URLEncoder.encode("hidden", "UTF-8")}" + +// "name=${URLEncoder.encode("msg", "UTF-8")}" + +// "&value=${URLEncoder.encode(value, "UTF-8")}" +// webView.postUrl(payUrl, postData.toByteArray()) } class MyWebViewClient : WebViewClient() { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 83f2787..3c261be 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -115,13 +115,14 @@ class StepThreeBajajFDFragment : BaseFragment() { } binding.btnNext.setOnClickListener { - if (validate()) { - uploadDocApi( - "PAN", - "data:image/".plus(panFileExt).plus(";base64, ").plus(panString), - 1 - ) - } +// if (validate()) { +// uploadDocApi( +// "PAN", +// "data:image/".plus(panFileExt).plus(";base64, ").plus(panString), +// 1 +// ) +// } + createFDApi((activity as BajajFdMainActivity).createFDRequest) } binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 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 d97ec40..cd7f568 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 @@ -726,6 +726,7 @@ class StepTwoBajajFDFragment : BaseFragment() { (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = (activity as BajajFdMainActivity).nomineeGuardianDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.UniqueId = "" (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = (activity as BajajFdMainActivity).createFDApplicantRequest