From 4c9c2a88b06e4fad3659eea1ba4d8644d1be2db3 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 13:37:43 +0530 Subject: [PATCH 1/4] handled grid --- .../bajajfd/adapter/PaymentModeAdapter.kt | 6 +++ .../bajajfd/interfaces/ApiInterface.kt | 8 +-- .../bajajfd/repositories/MainRepository.kt | 4 +- .../ui/fragment/StepTwoBajajFDFragment.kt | 29 ++++++---- .../viewModel/StepTwoBajajFDViewModel.kt | 4 +- .../res/layout/fragment_bajajfd_step_five.xml | 41 +++++++------- .../res/layout/item_payment_list_preview.xml | 54 ++++++++++++------- app/src/main/res/values/dimens.xml | 2 + 8 files changed, 91 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt index 0bada10..bde88fd 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt @@ -16,6 +16,7 @@ class PaymentModeAdapter( inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + val tvUpiMsg: TextView = itemView.findViewById(R.id.tvUpiMsg) } private var checkedPosition: Int = -2 @@ -39,6 +40,11 @@ class PaymentModeAdapter( if (bankList != null) { holder.itemView.apply { holder.tvBankName.text = bankList.Value + if (bankList.Value.equals("UPI")){ + holder.tvUpiMsg.text = context.getString(R.string.upto1LakhOnly) + }else{ + holder.tvUpiMsg.text = "" + } if (selectedAccount == bankList.Value && checkedPosition == -2 ) { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index c253c17..6c5c891 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -148,11 +148,11 @@ interface ApiInterface { @GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj") suspend fun bankListApi(@Header("token") token: String): Response - @GET("WebApi/api/GetIFSC_Autofill?prefix={prefix}") - suspend fun getIFSCApi(@Path("prefix") ifsc : String): Response + @GET("WebApi/api/GetIFSC_Autofill?") + suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response - @GET("WebApi/api/GetBankDetailsFromIFSC?") - suspend fun getIFSCDetailsApi(@Query("ifsc") ifsc : String,@Header("token") token: String): Response + @GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?") + suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response @POST("WebApi_Bajaj/api/GetCodes") suspend fun payModeApi( 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 0b1ba2c..18113e3 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, token: String) = - apiInterface.getIFSCDetailsApi(str, token) + suspend fun ifscCodeDetailsCheck(str: String) = + apiInterface.getIFSCDetailsApi(str) suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = apiInterface.payModeApi(getCodeRequest, token) 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 5e0c24a..d2ea3ed 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 @@ -17,6 +17,7 @@ import android.widget.RadioButton import android.widget.TextView import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.textfield.TextInputEditText @@ -764,7 +765,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length == 11) { + if (ifsc.length >8) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -788,15 +789,26 @@ class StepTwoBajajFDFragment : BaseFragment() { listOfIFSC ) binding.edtIFSC.setAdapter(adapter) - } - binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> - if (listOfIFSC.size > 0) { - binding.edtIFSC.setText(listOfIFSC[position]) - binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(listOfIFSC[position]) + + binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> + if (listOfIFSC.size > 0) { + val enteredText = binding.edtIFSC.getText() + Log.d("bankifsc $enteredText",enteredText.toString()) + // binding.edtIFSC.setText(listOfIFSC[position]) + binding.edtIFSC.setText(adapter.getItem(position).toString()) + binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) + getIFSCDetailsApi(enteredText.toString()) + } } + + + } + + + + } // 650 -> refreshToken() else -> { @@ -832,7 +844,6 @@ class StepTwoBajajFDFragment : BaseFragment() { stepTwoBajajFDViewModel.ifscCodeDetailsApi( ifscCode, - token, activity as BajajFdMainActivity ) stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> @@ -1159,7 +1170,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { binding.rvPaymentMode.layoutManager = - LinearLayoutManager(activity as BajajFdMainActivity) + GridLayoutManager(activity as BajajFdMainActivity,2) paymentModeAdapter = PaymentModeAdapter( listOfPayMode, listOfPayMode[0].Value 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 db2e02e..eeabc61 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 @@ -137,12 +137,12 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } val getifscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() - fun ifscCodeDetailsApi(ifsc : String, token: String,activity : Activity) = viewModelScope.launch( + fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch( Common.handleError(activity) ) { if (Common.isNetworkAvailable(activity)) { getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeDetailsCheck(ifsc, token) + val response = mainRepository.ifscCodeDetailsCheck(ifsc) getifscCodeDetailsCheckMutableData.postValue(handleResponse(response)) } } diff --git a/app/src/main/res/layout/fragment_bajajfd_step_five.xml b/app/src/main/res/layout/fragment_bajajfd_step_five.xml index 56ca8b1..effefb9 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_five.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_five.xml @@ -139,21 +139,21 @@ - + + + + + + + + + + + + + + + + app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_payment_list_preview.xml b/app/src/main/res/layout/item_payment_list_preview.xml index 0e095ca..a43261e 100644 --- a/app/src/main/res/layout/item_payment_list_preview.xml +++ b/app/src/main/res/layout/item_payment_list_preview.xml @@ -4,36 +4,52 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:cardBackgroundColor="@color/white" - app:cardCornerRadius="3dp" - app:cardElevation="3dp" + app:cardCornerRadius="2dp" + app:cardElevation="2dp" app:cardMaxElevation="1dp" app:cardPreventCornerOverlap="true" app:cardUseCompatPadding="true"> - - + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="@dimen/margin_2"> + + + + + + + + + + android:textSize="@dimen/text_size_12" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index bd762f5..4f369e9 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -72,6 +72,8 @@ 100dp 120dp 150dp + 160dp + 170dp 290dp 300dp From 643f4f0ac6d6e4cd2d6227c566661f2f35e05d4a Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 14:09:02 +0530 Subject: [PATCH 2/4] added bankvalidation model class --- .../bajajfd/interfaces/ApiInterface.kt | 8 ++++++- .../bajajfd/model/BankValidationApiRequest.kt | 10 +++++++++ .../model/BankValidationApiResponse.kt | 8 +++++++ .../bajajfd/model/ResponseXXXXXXXXXXXXXX.kt | 7 ++++++ .../bajajfd/repositories/MainRepository.kt | 3 +++ .../ui/fragment/StepTwoBajajFDFragment.kt | 22 +++---------------- .../res/layout/fragment_bajajfd_step_two.xml | 17 +++----------- 7 files changed, 41 insertions(+), 34 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXX.kt diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 6c5c891..23566a7 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -93,7 +93,7 @@ interface ApiInterface { @Header("token") token: String ): Response - @POST("WebApi/api/GetClientDetailV2_S") + @POST("WebApi_Bajaj/api/GetClientDetailV2_S") suspend fun getClientDetails( @Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String @@ -160,4 +160,10 @@ interface ApiInterface { @Header("token") token: String ): Response + @POST("WebApi_Bajaj/api/BankValidationAPI_S") + suspend fun bankValidationApi( + @Body bankValidationApiRequest: BankValidationApiRequest, + @Header("token") token: String + ): Response + } \ No newline at end of file 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 new file mode 100644 index 0000000..10fca16 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt @@ -0,0 +1,10 @@ +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 +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt new file mode 100644 index 0000000..ef516a9 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiResponse.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class BankValidationApiResponse( + val DataObject: Any, + val Message: String, + val ObjectResponse: Any, + val response: ResponseXXXXXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXX.kt new file mode 100644 index 0000000..e470814 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXX.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXXXXX( + val message: String, + val status: String, + val status_code: Int +) \ 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 18113e3..c054d7b 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 @@ -89,4 +89,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) = apiInterface.checkFDKYC(checkFDKYCRequest, token) + suspend fun bankValidationApiRequest(bankValidationApiRequest: BankValidationApiRequest, token: String) = + apiInterface.bankValidationApi(bankValidationApiRequest, token) + } \ 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 d2ea3ed..699f0ac 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 @@ -792,12 +792,9 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> if (listOfIFSC.size > 0) { - val enteredText = binding.edtIFSC.getText() - Log.d("bankifsc $enteredText",enteredText.toString()) - // binding.edtIFSC.setText(listOfIFSC[position]) binding.edtIFSC.setText(adapter.getItem(position).toString()) binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(enteredText.toString()) + getIFSCDetailsApi(binding.edtIFSC.toString()) } } @@ -1048,7 +1045,8 @@ class StepTwoBajajFDFragment : BaseFragment() { val titleText = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title val newTitleText = "$titleText." - if (titleText?.isEmpty()!!) { + + if (titleText.isNullOrEmpty()) { binding.spTitle.setText( adapter.getItem(0)?.Value, false @@ -1059,22 +1057,8 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.spTitle.setText(title.Value, false) break } -// binding.spTitle.setOnTouchListener { v, event -> -// when (event?.action) { -// MotionEvent.ACTION_DOWN -> { -// binding.spTitle.setText( -// adapter.getItem(0)?.Value, -// false -// ) -// -// } -// } -// -// v?.onTouchEvent(event) ?: true -// } } } - binding.spNomineeTitle.setAdapter(adapter) binding.spNomineeTitle.setText( adapter.getItem(0)?.Value, 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 20c5ec9..62005a5 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -824,6 +824,7 @@ @@ -1002,6 +1003,7 @@ - - From 120e0e5c852e3b70edd46ad11cc748ab836c841f Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 14:47:03 +0530 Subject: [PATCH 3/4] 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 4/4] 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 }