Browse Source

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

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
pankaj 2 years ago
parent
commit
9034b7b4fe
15 changed files with 461 additions and 342 deletions
  1. +2
    -1
      app/src/main/AndroidManifest.xml
  2. +29
    -29
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  3. +3
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt
  4. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  5. +1
    -6
      app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt
  6. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt
  7. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  8. +12
    -2
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  9. +232
    -125
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  10. +90
    -165
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  11. +40
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  12. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  13. +27
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt
  14. +10
    -8
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  15. +1
    -1
      app/src/main/res/layout/fragment_bajajfd_step_three.xml

+ 2
- 1
app/src/main/AndroidManifest.xml View File

@ -19,9 +19,10 @@
android:required="false" /> android:required="false" />
<application <application
android:allowBackup="true"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules" android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules" android:fullBackupContent="@xml/backup_rules"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/appName" android:label="@string/appName"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"


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

@ -8,159 +8,159 @@ import retrofit2.http.*
interface ApiInterface { interface ApiInterface {
@POST("WebApi_Bajaj/api/GetRates")
@POST("GetRates")
suspend fun getRates( suspend fun getRates(
@Body getRatesRequest: GetRatesRequest, @Body getRatesRequest: GetRatesRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/CheckFDCKYC")
@POST("CheckFDCKYC")
suspend fun checkFDKYC( suspend fun checkFDKYC(
@Body checkFDKYCRequest: CheckFDKYCRequest, @Body checkFDKYCRequest: CheckFDKYCRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/CreateFDApplication")
@POST("CreateFDApplication")
suspend fun createFDApp( suspend fun createFDApp(
@Body createFDRequest: CreateFDRequest, @Body createFDRequest: CreateFDRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/DocumentsUpload")
@POST("DocumentsUpload")
suspend fun documentsUpload( suspend fun documentsUpload(
@Body requestBody: DocumentUpload, @Body requestBody: DocumentUpload,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/SaveFDOtherData")
@POST("SaveFDOtherData")
suspend fun saveFDOtherData( suspend fun saveFDOtherData(
@Body requestBody: SaveFDOtherDataRequest, @Body requestBody: SaveFDOtherDataRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetFDDetails")
@POST("GetFDDetails")
suspend fun getFDDetails( suspend fun getFDDetails(
@Body requestBody: GetFDDetailsRequest, @Body requestBody: GetFDDetailsRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/UpdateFDPaymentStatus")
@POST("UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus( suspend fun updateFDPaymentStatus(
@Body requestBody: RequestBody, @Body requestBody: RequestBody,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseFD")
@POST("FinaliseFD")
suspend fun finaliseFD( suspend fun finaliseFD(
@Body requestBody: RequestBody, @Body requestBody: RequestBody,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseKYC")
@POST("FinaliseKYC")
suspend fun finaliseKYC( suspend fun finaliseKYC(
@Body requestBody: RequestBody, @Body requestBody: RequestBody,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/PaymentRequery")
@POST("PaymentRequery")
suspend fun paymentReQuery( suspend fun paymentReQuery(
@Body requestBody: RequestBody, @Body requestBody: RequestBody,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
// @FormUrlEncoded // @FormUrlEncoded
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun getCodes( suspend fun getCodes(
@Body requestBody: GetCodeRequest, @Body requestBody: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/CalculateFDMaturityAmount")
@POST("CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount( suspend fun getCalculateFDMaturityAmount(
@Body requestBody: GetMaturityAmountRequest, @Body requestBody: GetMaturityAmountRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/PanCheck_S")
@POST("PanCheck_S")
suspend fun panCheckApi( suspend fun panCheckApi(
@Body panCheck: PanCheckRequest, @Body panCheck: PanCheckRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/getFDStepsCount")
@POST("getFDStepsCount")
suspend fun getFDStepsCount( suspend fun getFDStepsCount(
@Body fdStepsCountRequest: FDStepsCountRequest, @Body fdStepsCountRequest: FDStepsCountRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetClientDetailV2_S")
@POST("GetClientDetailV2_S")
suspend fun getClientDetails( suspend fun getClientDetails(
@Body getClientDetailsRequest: getClientDetailsRequest, @Body getClientDetailsRequest: getClientDetailsRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun titleApi( suspend fun titleApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun genderApi( suspend fun genderApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun annualIncomeApi( suspend fun annualIncomeApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun relationShipApi( suspend fun relationShipApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun maritalStatusApi( suspend fun maritalStatusApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun occupationApi( suspend fun occupationApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetStateMaster")
@POST("GetStateMaster")
suspend fun stateApi(@Header("token") token: String): Response<JsonObject> suspend fun stateApi(@Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCity")
@POST("GetCity")
suspend fun cityApi( suspend fun cityApi(
@Body cityRequest: CityRequest, @Body cityRequest: CityRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj")
@GET("GetFDBankList?FDProvider=Bajaj")
suspend fun bankListApi(@Header("token") token: String): Response<JsonObject> suspend fun bankListApi(@Header("token") token: String): Response<JsonObject>
@GET("WebApi/api/GetIFSC_Autofill?")
@GET("GetIFSC_Autofill?")
suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response<JsonObject> suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response<JsonObject>
@GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?")
suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response<JsonObject>
@GET("GetbankNames")
suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response<String>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun payModeApi( suspend fun payModeApi(
@Body getCodeRequest: GetCodeRequest, @Body getCodeRequest: GetCodeRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/BankValidationAPI_S")
@POST("BankValidationAPI_S")
suspend fun bankValidationApi( suspend fun bankValidationApi(
@Body bankValidationApiRequest: BankValidationApiRequest, @Body bankValidationApiRequest: BankValidationApiRequest,
@Header("token") token: String @Header("token") token: String


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

@ -6,5 +6,7 @@ data class CreateFDApplicationRequest(
var FDInvestmentDetails: FDInvestmentDetails? = null, var FDInvestmentDetails: FDInvestmentDetails? = null,
var FdBankDetails: FdBankDetails? = null, var FdBankDetails: FdBankDetails? = null,
var NomineeDetails: NomineeDetails? = null, var NomineeDetails: NomineeDetails? = null,
var NomineeGuardianDetails: NomineeGuardianDetails ? = null
var NomineeGuardianDetails: NomineeGuardianDetails ? = null,
var UniqueId: String? = ""
) )

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

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


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

@ -1,10 +1,5 @@
package com.nivesh.production.bajajfd.model package com.nivesh.production.bajajfd.model
data class GetIFSCCodeResponse( data class GetIFSCCodeResponse(
val ADDRESS: String,
val BANK: String,
val BRANCH: String,
val IFSC: String,
val MICR: String,
val Response: ResponseXXXXXXXXX
val IFSCCODEServiceResult: List<IFSCCODEServiceResult>
) )

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

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

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

@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun ifscCodeCheck(str: String) = suspend fun ifscCodeCheck(str: String) =
apiInterface.getIFSCApi(str) 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) = suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token) apiInterface.payModeApi(getCodeRequest, token)


+ 12
- 2
app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt View File

@ -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.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.* import com.nivesh.production.bajajfd.viewModel.*
import java.net.URLEncoder
class BajajFdMainActivity : BaseActivity() { class BajajFdMainActivity : BaseActivity() {
@ -230,7 +231,7 @@ class BajajFdMainActivity : BaseActivity() {
// set viewPager // set viewPager
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount) sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: DisableAdapter = binding.viewPager val viewPager: DisableAdapter = binding.viewPager
viewPager.setPagingEnabled(false)
// viewPager.setPagingEnabled(false)
viewPager.adapter = sectionsPagerAdapter viewPager.adapter = sectionsPagerAdapter
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled( override fun onPageScrolled(
@ -414,8 +415,17 @@ class BajajFdMainActivity : BaseActivity() {
wVPay.webViewClient = MyWebViewClient() wVPay.webViewClient = MyWebViewClient()
wVPay.settings.javaScriptEnabled = true wVPay.settings.javaScriptEnabled = true
wVPay.settings.domStorageEnabled = 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() 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() { class MyWebViewClient : WebViewClient() {


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

@ -6,6 +6,8 @@ import android.app.ActionBar.LayoutParams
import android.app.Dialog import android.app.Dialog
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.OpenableColumns 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.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common 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.Constants
import com.nivesh.production.bajajfd.util.ImageUtil
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel 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() { class StepThreeBajajFDFragment : BaseFragment() {
private var bitmap: Bitmap? = null
private var latestTmpUri: Uri? = null private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes> private lateinit var listOfDocType: List<GetCodes>
private var docValue: String = ""
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog private lateinit var dialog: Dialog
private var takeImageResult: ActivityResultLauncher<Uri>? = null private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null private var selectImageIntent: ActivityResultLauncher<String>? = null
private val mapImage: HashMap<String, String> = 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 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( private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission() ActivityResultContracts.RequestPermission()
@ -94,7 +100,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? -> { uri: Uri? ->
if (uri != null) { if (uri != null) {
uploadDocument(uri)
bitmap = uriToBitmap(uri)
uploadDocument(uri,"g")
} }
} }
@ -102,60 +109,51 @@ class StepThreeBajajFDFragment : BaseFragment() {
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) { if (isSuccess) {
latestTmpUri?.let { uri -> latestTmpUri?.let { uri ->
uploadDocument(uri)
uploadDocument(uri,"c")
} }
} }
} }
binding.btnNext.setOnClickListener { 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 { binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1
} }
binding.btnPANUpload.setOnClickListener { binding.btnPANUpload.setOnClickListener {
checkPANUploadFile = true
checkPhotoUploadFile = false
actionType = AccountCaptureType.MAIN_PAN_UPLOAD
selectImage("PAN")
actionType = MAIN_PAN_UPLOAD
selectImage()
} }
binding.btnPhotoUpload.setOnClickListener { binding.btnPhotoUpload.setOnClickListener {
checkPhotoUploadFile = true
checkPANUploadFile = false
actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD
selectImage("Photograph")
actionType = MAIN_PHOTO_UPLOAD
selectImage()
} }
binding.btnAadhaarFrontUpload.setOnClickListener { binding.btnAadhaarFrontUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.FIRST_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = FIRST_UPLOAD
selectImage()
} }
binding.btnAadhaarBackUpload.setOnClickListener { binding.btnAadhaarBackUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.SECOND_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = SECOND_UPLOAD
selectImage()
} }
binding.spDocType.onItemClickListener = binding.spDocType.onItemClickListener =
AdapterView.OnItemClickListener { parent, _, position, _ -> 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) { when (getCodes.Label) {
resources.getString(R.string.aadhar) -> resources.getString(R.string.aadhar) ->
setAadhaarUploadLayout() setAadhaarUploadLayout()
@ -190,8 +188,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
return result return result
} }
private fun selectImage(fileType: String) {
selectedImage = fileType
private fun selectImage() {
dialog = Dialog(activity as BajajFdMainActivity) dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout) dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut) val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
@ -236,7 +233,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) 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 *") binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
View.INVISIBLE View.INVISIBLE
@ -255,31 +252,104 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.btnAadhaarFrontUpload.visibility = View.VISIBLE 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 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) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
"" ""
@ -310,8 +380,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
du.Description = key du.Description = key
du.DocumentType = key du.DocumentType = key
du.FDProvider = getString(R.string.bajaj) du.FDProvider = getString(R.string.bajaj)
du.ImageEncodeToBase64 =
"data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64"
du.ImageEncodeToBase64 = imageBase64
du.NiveshClientCode = du.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
du.UniqueId = uniqueId du.UniqueId = uniqueId
@ -330,22 +399,41 @@ class StepThreeBajajFDFragment : BaseFragment() {
when (code) { when (code) {
200 -> { 200 -> {
Log.e("check_upload_res", response.message.toString()) 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) createFDApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getUploadResponse.Response.Message
getUploadResponse.Response.Errors[0].ErrorMessage
) )
} }
} }
@ -368,51 +456,51 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
private fun createFDApi(data: CreateFDRequest) { 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, adapter.getItem(0)?.Value,
false false
) )
setOtherUploadLayout(listOfDocType[0].Value)
setOtherUploadLayout(adapter.getItem(0)?.Value)
docValue = adapter.getItem(0)?.Value.toString()
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
@ -481,22 +571,28 @@ class StepThreeBajajFDFragment : BaseFragment() {
private fun validate(): Boolean { 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( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload Aadhaar Images"
"Upload Photo"
) )
return false return false
} else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) {
} else if (docString.isEmpty()) {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload Aadhaar Images"
"Upload $docValue Image"
) )
return false return false
} else if (mapImage.size < 3) {
} else if (docValue == "Aadhar" && docString2.isEmpty()) {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload All Images"
"Upload Aadhar Back Image"
) )
return false return false
} }
@ -536,5 +632,16 @@ class StepThreeBajajFDFragment : BaseFragment() {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId 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
}
} }

+ 90
- 165
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt View File

@ -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.isValidName
import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan 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.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.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel
@ -52,11 +51,14 @@ import java.util.*
class StepTwoBajajFDFragment : BaseFragment() { class StepTwoBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepTwoBinding? = null private var _binding: FragmentBajajfdStepTwoBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var rbBank: RadioButton private lateinit var rbBank: RadioButton
private lateinit var rbPaymentMode: RadioButton private lateinit var rbPaymentMode: RadioButton
private var cal = Calendar.getInstance() private var cal = Calendar.getInstance()
private lateinit var listOfTitle: List<GetCodes> private lateinit var listOfTitle: List<GetCodes>
private lateinit var listOfGender: List<GetCodes> private lateinit var listOfGender: List<GetCodes>
private lateinit var listOfAnnualIncome: List<GetCodes> private lateinit var listOfAnnualIncome: List<GetCodes>
@ -68,7 +70,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var listOfCities: List<DataObjectX> private lateinit var listOfCities: List<DataObjectX>
private lateinit var listOfIFSC: MutableList<String> private lateinit var listOfIFSC: MutableList<String>
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
private lateinit var bankListAdapter: BankListAdapter private lateinit var bankListAdapter: BankListAdapter
private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter
@ -524,32 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener { binding.btnAddBank.setOnClickListener {
if (validateBank()) { 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.edtAccountNumber.text.toString(),
binding.edtIFSC.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(), 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()!!) { if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) {
binding.llBankDetails.visibility = View.VISIBLE binding.llBankDetails.visibility = View.VISIBLE
} else { } else {
binding.llBankDetails.visibility = View.GONE binding.llBankDetails.visibility = View.GONE
} }
binding.addBankDetail.setOnClickListener { 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 { } else {
showHideBankDetail()
binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_add_icon,
0
)
} }
} }
titleApi() titleApi()
// setUpRecyclerView()
setUpRecyclerView( setUpRecyclerView(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, (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 { binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) { if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -600,12 +591,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.tvBankDetails.setOnClickListener { binding.tvBankDetails.setOnClickListener {
if (binding.llBankDetails.visibility == View.VISIBLE) { if (binding.llBankDetails.visibility == View.VISIBLE) {
binding.llBankDetails.visibility = View.GONE binding.llBankDetails.visibility = View.GONE
} else { } else {
binding.llBankDetails.visibility = View.VISIBLE binding.llBankDetails.visibility = View.VISIBLE
} }
} }
binding.btnNext.setOnClickListener { binding.btnNext.setOnClickListener {
if (validation()) { if (validation()) {
// Applicant Details // Applicant Details
@ -736,6 +726,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails =
(activity as BajajFdMainActivity).nomineeGuardianDetails (activity as BajajFdMainActivity).nomineeGuardianDetails
(activity as BajajFdMainActivity).createFDApplicantRequest.UniqueId = ""
(activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest =
(activity as BajajFdMainActivity).createFDApplicantRequest (activity as BajajFdMainActivity).createFDApplicantRequest
@ -746,14 +737,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
createFDApi((activity as BajajFdMainActivity).createFDRequest) createFDApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
binding.btnBack.setOnClickListener { binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 0 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 0
} }
} }
private fun createFDApi(data: CreateFDRequest) { private fun createFDApi(data: CreateFDRequest) {
@ -801,11 +789,10 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
private fun ifscCodeCheckApi(ifsc: String) { private fun ifscCodeCheckApi(ifsc: String) {
if (ifsc.length ==11) {
if (ifsc.length >= 10) {
stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
val getIFSCCodeListResponse = val getIFSCCodeListResponse =
@ -827,23 +814,16 @@ class StepTwoBajajFDFragment : BaseFragment() {
listOfIFSC listOfIFSC
) )
binding.edtIFSC.setAdapter(adapter) binding.edtIFSC.setAdapter(adapter)
binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> binding.edtIFSC.setOnItemClickListener { _, _, position, _ ->
if (listOfIFSC.size > 0) { 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) binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length)
getIFSCDetailsApi(binding.edtIFSC.toString())
getIFSCDetailsApi(binding.edtIFSC.text.toString())
} }
} }
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
@ -881,31 +861,20 @@ class StepTwoBajajFDFragment : BaseFragment() {
ifscCode, ifscCode,
activity as BajajFdMainActivity activity as BajajFdMainActivity
) )
stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
stepTwoBajajFDViewModel.getIfscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
is Resource.Success -> { 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::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 -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message) Common.showDialogValidation(activity as BajajFdMainActivity, message)
@ -917,27 +886,27 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.DataError -> { 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() 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( stepTwoBajajFDViewModel.bankValidationApi(
bankValidationApiRequest, bankValidationApiRequest,
token, token,
activity as BajajFdMainActivity activity as BajajFdMainActivity
) )
stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response -> stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
@ -954,48 +923,38 @@ class StepTwoBajajFDFragment : BaseFragment() {
when (code) { when (code) {
200 -> { 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 { (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let {
listOfBanks.addAll( listOfBanks.addAll(
it it
) )
} }
listOfBanks.add(clientBanklist)
listOfBanks.add(clientBankList)
setUpRecyclerView( 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 -> { 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 { private fun validateBank(): Boolean {
return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText
commonErrorAutoCompleteMethod( commonErrorAutoCompleteMethod(
@ -1056,35 +1011,22 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
private fun setUpRecyclerView( bankList: List<ClientBanklist>?,
selectedAccount: String? = null) {
// This code is used to get the screen dimensions of the user's device
private fun setUpRecyclerView(
bankList: List<ClientBanklist>?,
selectedAccount: String? = null
) {
val displayMetrics = DisplayMetrics() val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels.toDouble() val width = displayMetrics.widthPixels.toDouble()
val height = displayMetrics.heightPixels
binding.rvClientBankList.layoutManager = LinearLayoutManager( binding.rvClientBankList.layoutManager = LinearLayoutManager(
mActivity, mActivity,
LinearLayoutManager.HORIZONTAL, LinearLayoutManager.HORIZONTAL,
false false
) )
bankListAdapter = BankListAdapter(
bankList,
selectedAccount,width
)
binding.rvClientBankList.adapter = bankListAdapter
bankListAdapter = BankListAdapter(bankList, selectedAccount, width)
binding.rvClientBankList.adapter = bankListAdapter
} }
private fun datePicker(edtDOB: TextInputEditText) { private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR) val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH) val month = cal.get(Calendar.MONTH)
@ -1094,7 +1036,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (monthOfYear.toString().length == 1) { if (monthOfYear.toString().length == 1) {
"0".plus(monthOfYear) "0".plus(monthOfYear)
} }
// edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years))
edtDOB.setText( edtDOB.setText(
years.toString().plus("-").plus(monthOfYear + 1).plus("-") years.toString().plus("-").plus(monthOfYear + 1).plus("-")
.plus(dayOfMonth.toString()) .plus(dayOfMonth.toString())
@ -1306,7 +1247,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager = binding.rvPaymentMode.layoutManager =
GridLayoutManager(activity as BajajFdMainActivity,2)
GridLayoutManager(activity as BajajFdMainActivity, 2)
paymentModeAdapter = PaymentModeAdapter( paymentModeAdapter = PaymentModeAdapter(
listOfPayMode, listOfPayMode,
listOfPayMode[0].Value listOfPayMode[0].Value
@ -1314,7 +1255,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.rvPaymentMode.adapter = paymentModeAdapter binding.rvPaymentMode.adapter = paymentModeAdapter
} }
private fun genderApi() { private fun genderApi() {
val getCodeRequest = GetCodeRequest() val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD) getCodeRequest.ProductName = getString(R.string.bajajFD)
@ -1975,7 +1915,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
getString(R.string.emptyState) getString(R.string.emptyState)
) )
} else if (binding.spCity.text.toString().isEmpty()) { // EditText } 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 } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText
commonErrorMethod( commonErrorMethod(
binding.edtPinCode, binding.edtPinCode,
@ -2045,25 +1989,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
super.onDestroyView() super.onDestroyView()
_binding = null _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)
}
}
} }

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

@ -10,6 +10,7 @@ import android.net.NetworkCapabilities
import android.os.Build import android.os.Build
import android.provider.ContactsContract import android.provider.ContactsContract
import android.text.format.DateFormat import android.text.format.DateFormat
import android.util.Log
import android.util.Patterns import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText 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.google.gson.JsonObject
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineExceptionHandler
import org.json.JSONObject
import retrofit2.HttpException import retrofit2.HttpException
import retrofit2.Response
import java.io.IOException import java.io.IOException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@ -205,6 +208,23 @@ class Common {
return Resource.Error(response.message()) return Resource.Error(response.message())
} }
fun handleResponse1(response: Response<String>): Resource<String> {
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 { fun handleError(activity: Activity): CoroutineExceptionHandler {
val handler = CoroutineExceptionHandler { _, exception -> val handler = CoroutineExceptionHandler { _, exception ->
if (exception is IOException || exception is HttpException) { if (exception is IOException || exception is HttpException) {
@ -233,5 +253,25 @@ class Common {
minAdultAge.add(Calendar.YEAR, -18) minAdultAge.add(Calendar.YEAR, -18)
return minAdultAge.before(userAge) 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 {
""
}
}
} }
} }

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

@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util
class Constants() { class Constants() {
companion object { 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" const val token = "636F8F63-06C4-4D95-8562-392B34025FB0"
} }
} }

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

@ -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)
}
}
}

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

@ -9,6 +9,8 @@ import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse 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 com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -125,29 +127,29 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
} }
} }
val getifscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getIfscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch( fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity) Common.handleError(activity)
) { ) {
if (Common.isNetworkAvailable(activity)) { if (Common.isNetworkAvailable(activity)) {
getifscCodeCheckMutableData.postValue(Resource.Loading())
getIfscCodeCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeCheck(ifsc) val response = mainRepository.ifscCodeCheck(ifsc)
getifscCodeCheckMutableData.postValue(handleResponse(response))
getIfscCodeCheckMutableData.postValue(handleResponse(response))
} }
} }
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getIfscCodeDetailsCheckMutableData: MutableLiveData<Resource<String>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch( fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity) Common.handleError(activity)
) { ) {
if (Common.isNetworkAvailable(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<Resource<JsonObject>> = MutableLiveData() val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity) Common.handleError(activity)


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

@ -109,7 +109,7 @@
android:textColor="@color/black" android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload" app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="parent" 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_constraintStart_toEndOf="@+id/tvPAN"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument" app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
tools:ignore="DuplicateSpeakableTextCheck" /> tools:ignore="DuplicateSpeakableTextCheck" />


Loading…
Cancel
Save

Powered by TurnKey Linux.