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/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/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/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/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 6a850ad..2aea3b4 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() { @@ -230,7 +231,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( @@ -414,8 +415,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 3431105..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 @@ -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,39 +33,43 @@ 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 + 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 - 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 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() @@ -94,7 +100,8 @@ class StepThreeBajajFDFragment : BaseFragment() { selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> if (uri != null) { - uploadDocument(uri) + bitmap = uriToBitmap(uri) + uploadDocument(uri,"g") } } @@ -102,60 +109,51 @@ class StepThreeBajajFDFragment : BaseFragment() { registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> if (isSuccess) { latestTmpUri?.let { uri -> - uploadDocument(uri) + uploadDocument(uri,"c") } } } 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) - } - } - } +// 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 } 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 + val getCodes : GetCodes = parent.getItemAtPosition(position) as GetCodes + docValue = getCodes.Value + docString = "" + docString2 = "" when (getCodes.Label) { resources.getString(R.string.aadhar) -> setAadhaarUploadLayout() @@ -190,8 +188,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) @@ -236,7 +233,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 @@ -255,31 +252,104 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.btnAadhaarFrontUpload.visibility = View.VISIBLE } - 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 ->{ + 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 = 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 = 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 = 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 = 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 encodedFileToBase64(fileName: File?) { - front = try { - val bytes: ByteArray? = fileName?.let { loadFile(it) } - Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } - .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + + + private fun encodedPANBase64(fileName: File) { + panString = try { + 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) { + photoString = try { + 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) { + docString = try { + 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) { + docString2 = try { + val bytes: ByteArray = loadFile(fileName) + Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") } catch (e: Exception) { e.printStackTrace() "" @@ -310,8 +380,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,22 +399,41 @@ 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( + docValue, + "data:image/".plus(doc1FileExt).plus(";base64, ") + .plus(docString), + 3 + ) + } else if (uploadPosition == 3) { + if (docValue == "Aadhar") { + uploadDocApi( + docValue, + "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( activity as BajajFdMainActivity, - getUploadResponse.Response.Message + getUploadResponse.Response.Errors[0].ErrorMessage ) } } @@ -368,51 +456,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 -> { - } } } + } } @@ -449,7 +537,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() @@ -481,22 +571,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 $docValue Image" ) return false - } else if (mapImage.size < 3) { + } else if (docValue == "Aadhar" && docString2.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload All Images" + "Upload Aadhar Back Image" ) return false } @@ -536,5 +632,16 @@ class StepThreeBajajFDFragment : BaseFragment() { 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/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index f2b8c79..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 @@ -44,7 +44,6 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidName import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.removeError -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.StepTwoBajajFDViewModel @@ -52,11 +51,14 @@ import java.util.* class StepTwoBajajFDFragment : BaseFragment() { + private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! + private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton private var cal = Calendar.getInstance() + private lateinit var listOfTitle: List private lateinit var listOfGender: List private lateinit var listOfAnnualIncome: List @@ -68,7 +70,6 @@ class StepTwoBajajFDFragment : BaseFragment() { private lateinit var listOfCities: List private lateinit var listOfIFSC: MutableList - private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var bankListAdapter: BankListAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter @@ -524,32 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.btnAddBank.setOnClickListener { if (validateBank()) { - /// as - - val selectedOption: Int = binding.rgBank!!.checkedRadioButtonId - - val fullName:String= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString()) - verifyAccountNo( + verifyAccountNo( binding.edtAccountNumber.text.toString(), binding.edtIFSC.text.toString(), - fullName, + binding.edtFirstName.text.toString().plus(" ") + .plus(binding.edtMiddleName.text.toString()).plus(" ") + .plus(binding.edtLastName.text.toString()), binding.edtMobileNumber.text.toString(), - 1 - - ) - - - - - - - - - - // binding.radio.findViewById(selectedOption) - - - + 1 + ) } } @@ -559,29 +543,36 @@ class StepTwoBajajFDFragment : BaseFragment() { if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) { binding.llBankDetails.visibility = View.VISIBLE - - } else { binding.llBankDetails.visibility = View.GONE } binding.addBankDetail.setOnClickListener { - if (bankListAdapter.itemCount == 5) { - showDialogValidation(mActivity, "You Can Not Add More Than Five Account") + if (binding.llBankDetails.visibility == View.GONE) { + binding.llBankDetails.visibility = View.VISIBLE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( + 0, + 0, + R.drawable.ic_minus, + 0 + ) + } else { - showHideBankDetail() + 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) + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 + ) binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -600,12 +591,11 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.tvBankDetails.setOnClickListener { if (binding.llBankDetails.visibility == View.VISIBLE) { binding.llBankDetails.visibility = View.GONE - } else { binding.llBankDetails.visibility = View.VISIBLE - } } + binding.btnNext.setOnClickListener { if (validation()) { // Applicant Details @@ -736,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 @@ -746,14 +737,11 @@ class StepTwoBajajFDFragment : BaseFragment() { createFDApi((activity as BajajFdMainActivity).createFDRequest) } } + binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 0 } - - - - } private fun createFDApi(data: CreateFDRequest) { @@ -801,11 +789,10 @@ 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 -> + stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { val getIFSCCodeListResponse = @@ -827,23 +814,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 -> { @@ -881,31 +861,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) @@ -917,27 +886,27 @@ 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 - - + 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) { @@ -954,48 +923,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) + listOfBanks.add(clientBankList) setUpRecyclerView( - listOfBanks , - clientBanklist.AccountNumber.toString()) - showHideBankDetail() - - - } - else { - - showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) - showHideBankDetail() - + listOfBanks, + clientBankList.AccountNumber.toString() + ) + } else { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } - } else -> { - showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) - - showHideBankDetail() - - - - - - - + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } } } @@ -1014,12 +973,8 @@ class StepTwoBajajFDFragment : BaseFragment() { } } } - } - - - private fun validateBank(): Boolean { return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText commonErrorAutoCompleteMethod( @@ -1056,35 +1011,22 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun setUpRecyclerView( bankList: List?, - selectedAccount: String? = null) { - - - // This code is used to get the screen dimensions of the user's device + private fun setUpRecyclerView( + bankList: List?, + selectedAccount: String? = null + ) { val displayMetrics = DisplayMetrics() requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) val width = displayMetrics.widthPixels.toDouble() - val height = displayMetrics.heightPixels - - binding.rvClientBankList.layoutManager = LinearLayoutManager( mActivity, LinearLayoutManager.HORIZONTAL, false ) - - - bankListAdapter = BankListAdapter( - bankList, - selectedAccount,width - ) - binding.rvClientBankList.adapter = bankListAdapter + 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) @@ -1094,7 +1036,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()) @@ -1306,7 +1247,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 @@ -1314,7 +1255,6 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.rvPaymentMode.adapter = paymentModeAdapter } - private fun genderApi() { val getCodeRequest = GetCodeRequest() getCodeRequest.ProductName = getString(R.string.bajajFD) @@ -1975,7 +1915,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, @@ -2045,25 +1989,6 @@ class StepTwoBajajFDFragment : BaseFragment() { super.onDestroyView() _binding = null } - - - private fun showHideBankDetail() { - 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) - } - - - - - - - } - } 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..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 @@ -10,6 +10,7 @@ import android.net.NetworkCapabilities import android.os.Build 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 @@ -17,7 +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 retrofit2.Response import java.io.IOException import java.text.SimpleDateFormat import java.util.* @@ -205,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) { @@ -233,5 +253,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/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/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/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index c6cb96a..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 @@ -125,29 +127,29 @@ 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)) } } - 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) 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" />