45 Commits

Author SHA1 Message Date
  pankaj 1286889b39 assest file 2 years ago
  pankaj e8f0706ef4 Merge branch 'ManojBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch 2 years ago
  pankaj fddc000526 commit 2 years ago
  Manoj 171e6ece53 Dialog Change 2 years ago
  pankaj 40ea018b55 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch 2 years ago
  pankaj 70bb45fa8e commit 2 years ago
  Hemant Khadase dba9f6658b added bank in list 2 years ago
  Hemant Khadase 0ba5c14a40 minor changes 2 years ago
  Manoj 6bb3c38c43 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Hemant Khadase f8d58f7d6a added manoj's code 2 years ago
  pankaj b0f9e53ac1 merge 2 years ago
  Hemant Khadase 151e860030 added missing code 2 years ago
  Manoj 796006e48d Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 59a0774c11 upload issue 2 years ago
  pankaj 9034b7b4fe Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch 2 years ago
  pankaj 0a6e06166c commit 2 years ago
  Hemant Khadase bc9c58b2b1 changes related to api 2 years ago
  Hemant Khadase 756a86ba8d added url modification and api for bank details and xml change 2 years ago
  Manoj a5dda905f7 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Hemant Khadase 20a3016bb6 added pankajs code 2 years ago
  Hemant Khadase 2fd53592e8 completed image upload 2 years ago
  Manoj 9dc951a852 Gallery Bitmap issue 2 years ago
  Manoj 8a5be1f4c3 bitmap check 2 years ago
  Manoj 298021edf4 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Hemant Khadase 5311f9c41f reformat code 2 years ago
  Hemant Khadase 120e0e5c85 minor changes 2 years ago
  Manoj 166b7fbdc7 validation push 2 years ago
  Manoj cb65496ba2 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 9e6ffe5706 upload check 2 years ago
  Manoj 13cca65437 add upload validation 2 years ago
  Manoj 8eb5a90386 after upload changes 2 years ago
  Manoj dfe32f366f Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 5123585a9f upload changes 2 years ago
  Manoj 55a3656439 camera or gallery upload 2 years ago
  Manoj 6591570ec2 upload 2 years ago
  Manoj 591e1464da Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 938a3811fe pull request 2 years ago
  Manoj 245c2e7607 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 366f37aff0 upload push 2 years ago
  Manoj 25831fa81e Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 1cf6ec7774 pull request 2 years ago
  Manoj f096391c06 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj dfa2401668 pull request 2 years ago
  Manoj 5a7d2d1fe3 Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch 2 years ago
  Manoj 5d7e7b35e8 error pull 2 years ago
22 changed files with 698 additions and 450 deletions
Unified View
  1. +1
    -1
      app/src/main/AndroidManifest.xml
  2. +14
    -0
      app/src/main/assets/paymentpageform.html
  3. +9
    -31
      app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt
  4. +29
    -29
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  5. +3
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt
  6. +1
    -4
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  7. +1
    -6
      app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt
  8. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt
  9. +2
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt
  10. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  11. +107
    -21
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  12. +274
    -159
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  13. +120
    -186
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  14. +40
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  15. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  16. +27
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt
  17. +10
    -8
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  18. +1
    -1
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  19. +35
    -0
      app/src/main/res/raw/my_certificate.cer
  20. +5
    -0
      app/src/main/res/values-hi-rIN/strings.xml
  21. +1
    -0
      app/src/main/res/values-night/strings.xml
  22. +5
    -0
      app/src/main/res/values/strings.xml

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

@ -19,7 +19,7 @@
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:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"


+ 14
- 0
app/src/main/assets/paymentpageform.html View File

@ -0,0 +1,14 @@
<form name="frm" action="https://payment.bajajfinserv.in/payments/FD_Payment.aspx" method="post">
<input type="hidden" name="msg" value="cus">
</form>
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script> -->
<script type="text/javascript">
document.forms["frm"].submit();
</script>

+ 9
- 31
app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt View File

@ -12,7 +12,7 @@ import com.nivesh.production.bajajfd.model.ClientBanklist
class BankListAdapter( class BankListAdapter(
private val bankList: List<ClientBanklist>?, private val bankList: List<ClientBanklist>?,
private val selectedAccount: String? = null, private val selectedAccount: String? = null,
private val width:Double?
private val width: Double?
) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() { ) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
@ -25,52 +25,33 @@ class BankListAdapter(
} }
private var checkedPosition: Int = -2 private var checkedPosition: Int = -2
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int viewType: Int
): BankListViewHolder { ): BankListViewHolder {
// return BankListViewHolder(
// LayoutInflater.from(parent.context).inflate(
// R.layout.item_bank_list_preview,
// parent,
// false
// )
// )
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_bank_list_preview, parent, false);
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_bank_list_preview, parent, false);
view.layoutParams = width?.div(1.35) view.layoutParams = width?.div(1.35)
?.let { ViewGroup.LayoutParams(it.toInt(),ViewGroup.LayoutParams.WRAP_CONTENT) }
?.let { ViewGroup.LayoutParams(it.toInt(), ViewGroup.LayoutParams.WRAP_CONTENT) }
return BankListViewHolder(view) return BankListViewHolder(view)
} }
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position) val bankList = bankList?.get(position)
if (bankList !=null) {
if (bankList != null) {
holder.itemView.apply { holder.itemView.apply {
holder.tvBankName.text = bankList.BankName holder.tvBankName.text = bankList.BankName
holder.tvBankIFSC.text = bankList.IFSCCode holder.tvBankIFSC.text = bankList.IFSCCode
holder.tvBankAccountNumber.text = bankList.AccountNumber holder.tvBankAccountNumber.text = bankList.AccountNumber
if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2))
{
if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2)) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition checkedPosition = holder.adapterPosition
}
else if (checkedPosition == -1) {
} else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
else if (checkedPosition == holder.adapterPosition) {
} else if (checkedPosition == holder.adapterPosition) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
}
else {
} else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
} }
@ -81,8 +62,6 @@ class BankListAdapter(
checkedPosition = holder.adapterPosition checkedPosition = holder.adapterPosition
} }
} }
} }
} }
} }
@ -97,7 +76,6 @@ class BankListAdapter(
onItemClickListener = listener onItemClickListener = listener
} }
fun getSelected(): ClientBanklist? { fun getSelected(): ClientBanklist? {
return if (checkedPosition != -1) { return if (checkedPosition != -1) {
bankList?.get(checkedPosition) bankList?.get(checkedPosition)


+ 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
- 4
app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt View File

@ -2,13 +2,10 @@ 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 {
return Label return Label
} }
} }

+ 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
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt View File

@ -1,5 +1,7 @@
package com.nivesh.production.bajajfd.model package com.nivesh.production.bajajfd.model
import com.nivesh.production.bajajfd.util.Resource
data class ResponseXXXXXXXXXXXX( data class ResponseXXXXXXXXXXXX(
val Errors: List<Errors>, val Errors: List<Errors>,
val FDDataResponse: FDDataResponse, val FDDataResponse: FDDataResponse,


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


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

@ -2,13 +2,11 @@ package com.nivesh.production.bajajfd.ui.activity
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog import android.app.Dialog
import android.graphics.Bitmap
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.WindowManager import android.view.WindowManager
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -31,6 +29,9 @@ 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.io.BufferedReader
import java.io.InputStream
import java.io.InputStreamReader
class BajajFdMainActivity : BaseActivity() { class BajajFdMainActivity : BaseActivity() {
@ -57,6 +58,8 @@ class BajajFdMainActivity : BaseActivity() {
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
private lateinit var fragments: Array<Fragment> private lateinit var fragments: Array<Fragment>
var valur:String=""
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
init() init()
@ -86,7 +89,7 @@ class BajajFdMainActivity : BaseActivity() {
if (Common.isNetworkAvailable(this)) { if (Common.isNetworkAvailable(this)) {
val fdStepsCount = FDStepsCountRequest() val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj) fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "60476"
fdStepsCount.NiveshClientCode = "8872"
//hemant client code =8872 /60476 //hemant client code =8872 /60476
viewModel.getStepsCount(fdStepsCount, token, this) viewModel.getStepsCount(fdStepsCount, token, this)
@ -139,11 +142,11 @@ class BajajFdMainActivity : BaseActivity() {
private fun getClientDetailsApi(stepsCount: Int) { private fun getClientDetailsApi(stepsCount: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest() val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "60476"
getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = getString(R.string.app) getClientDetailsRequest.AppOrWeb = getString(R.string.app)
getClientDetailsRequest.sub_broker_code = "3435"
getClientDetailsRequest.sub_broker_code = "1038"
//hemant 8872/1038
//hemant 8872/1038//
val userRequest = UserRequest() val userRequest = UserRequest()
@ -389,6 +392,9 @@ class BajajFdMainActivity : BaseActivity() {
// step 4 response // step 4 response
fun stepFourApi(payUrl: String, value: String) { fun stepFourApi(payUrl: String, value: String) {
valur=value
paymentDialog(payUrl, value) paymentDialog(payUrl, value)
} }
@ -411,26 +417,106 @@ class BajajFdMainActivity : BaseActivity() {
lp.height = WindowManager.LayoutParams.MATCH_PARENT lp.height = WindowManager.LayoutParams.MATCH_PARENT
dialogWebView.window?.attributes = lp dialogWebView.window?.attributes = lp
val wVPay = dialogWebView.findViewById<WebView>(R.id.wVPay) val wVPay = dialogWebView.findViewById<WebView>(R.id.wVPay)
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)
dialogWebView.show()
}
// val postData = "name=${URLEncoder.encode("msg", "UTF-8")}" +
// "&value=${URLEncoder.encode(value, "UTF-8")}"
// wVPay.postUrl(payUrl, postData.toByteArray())
class MyWebViewClient : WebViewClient() {
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
Log.e("onPageStarted", "-->$url")
if (url.isNotEmpty() && url.contains("CustomerPaymentResponse")) {
// val webView = WebView(this@BajajFdMainActivity)
// setContentView(webView)
// val postData = "msg=${URLEncoder.encode(value, "UTF-8")}"
//
// Log.e("valueee", "-->$postData")
//
//
// webView.postUrl(payUrl, postData.toByteArray())
//
//
//
}
}
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
}
val iss: InputStream = assets.open("paymentpageform.html")
val size: Int = iss.available()
val buffer = ByteArray(size)
iss.read(buffer)
var str = String(buffer)
str = str.replace("cus", value)
// val br = BufferedReader(
// InputStreamReader(
// iss.getInputStream()
// )
// )
//
// while ((str = br.readLine()) != null) {
// response += line;
// }
iss.close()
wVPay.loadUrl("file:///android_asset/paymentpageform.html")
// wVPay.setWebViewClient(object : WebViewClient() {
// override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
// super.onPageStarted(view, url, favicon)
// Log.e("onPageStarted", "-->$url")
//
//
// wVPay.loadUrl("file:///android_asset/paymentpageform.html")
//
// val link1 = "pp"
// val link2 = valur
// view.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('$link1', '$link2')})()")
//
//
//
// if (url.isNotEmpty() && url.contains("CustomerPaymentResponse")) {
//
// }
// }
//
// })
// wVPay.loadUrl("file:///android_asset/paymentpageform.html")
// wVPay.loadDataWithBaseURL("file:///android_asset/", str,"text/html", "UTF-8",null);
// wVPay.loadData(str, "text/html; charset=utf-8", "UTF-8");
// dialogWebView.show()
}
// class MyWebViewClient : WebViewClient() {
// override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
// super.onPageStarted(view, url, favicon)
// Log.e("onPageStarted", "-->$url")
//
// val link1 = "pp"
// val link2 = valur
// view.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('$link1', '$link2')})()")
//
// if (url.isNotEmpty() && url.contains("CustomerPaymentResponse")) {
//
// }
// }
//
// override fun onPageFinished(view: WebView, url: String) {
// super.onPageFinished(view, url)
// }
} }
}

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

@ -4,10 +4,15 @@ import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.ActionBar.LayoutParams import android.app.ActionBar.LayoutParams
import android.app.Dialog import android.app.Dialog
import android.content.DialogInterface
import android.content.Intent
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.MediaStore
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.util.Base64 import android.util.Base64
import android.util.Log import android.util.Log
@ -17,6 +22,7 @@ import android.view.ViewGroup
import android.widget.* import android.widget.*
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -31,39 +37,46 @@ 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 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
private var docValue: String = ""
private val mainPANUpload: Int = 1
private val mainPhotoUpload: Int = 2
private val firstDocUpload: Int = 3
private val secondDocUpload: Int = 4
private var actionType: Int = -1
enum class AccountCaptureType {
MAIN_PAN_UPLOAD,MAIN_PHOTO_UPLOAD,FIRST_UPLOAD,SECOND_UPLOAD
}
private val mapImage: HashMap<String, String> = HashMap()
private lateinit var listOfDocType: List<GetCodes>
private val check = arrayOf<CharSequence>("Take Photo", "Choose from Gallery", "Cancel")
private val requestPermission = registerForActivityResult( private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission() ActivityResultContracts.RequestPermission()
@ -94,7 +107,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,21 +116,33 @@ 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()) { if (validate()) {
if (panString.isNotEmpty()) {
mapImage["PAN"] = "data:image/".plus(panFileExt)
.plus(";base64, ").plus(panString)
}
if (photoString.isNotEmpty()) {
mapImage["Photograph"] = "data:image/".plus(photoFileExt)
.plus(";base64, ").plus(photoString)
}
if (docString.isNotEmpty()) {
mapImage["docValue"] = "data:image/".plus(doc1FileExt)
.plus(";base64, ").plus(docString)
}
if (docString2.isNotEmpty()) {
mapImage["Aadhar"] = "data:image/".plus(doc2fileExt)
.plus(";base64, ").plus(docString2)
}
var uploadPosition = 0 var uploadPosition = 0
for (entry in mapImage.iterator()) { for (entry in mapImage.iterator()) {
uploadPosition++ uploadPosition++
if (entry.key.contains("Main ")) {
uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition)
} else {
uploadDocApi(entry.key, entry.value, uploadPosition)
}
uploadDocApi(entry.key, entry.value, uploadPosition)
} }
} }
} }
@ -125,37 +151,31 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
binding.btnPANUpload.setOnClickListener { binding.btnPANUpload.setOnClickListener {
checkPANUploadFile = true
checkPhotoUploadFile = false
actionType = AccountCaptureType.MAIN_PAN_UPLOAD
selectImage("PAN")
actionType = mainPANUpload
selectImage()
} }
binding.btnPhotoUpload.setOnClickListener { binding.btnPhotoUpload.setOnClickListener {
checkPhotoUploadFile = true
checkPANUploadFile = false
actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD
selectImage("Photograph")
actionType = mainPhotoUpload
selectImage()
} }
binding.btnAadhaarFrontUpload.setOnClickListener { binding.btnAadhaarFrontUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.FIRST_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = firstDocUpload
selectImage()
} }
binding.btnAadhaarBackUpload.setOnClickListener { binding.btnAadhaarBackUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.SECOND_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = secondDocUpload
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,53 +210,60 @@ class StepThreeBajajFDFragment : BaseFragment() {
return result return result
} }
private fun selectImage(fileType: String) {
selectedImage = fileType
dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
val tvGallery: TextView = dialog.findViewById(R.id.tvGallery)
val tvCamera: TextView = dialog.findViewById(R.id.tvCamera)
ivCut.setOnClickListener {
dialog.cancel()
}
tvGallery.setOnClickListener {
dialog.cancel()
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
)
if (permission == PackageManager.PERMISSION_GRANTED) {
selectImageIntent?.launch("image/*")
} else {
requestPermission.launch(
private fun selectImage() {
val builder = AlertDialog.Builder(
mActivity!!
)
builder.setTitle("Add Photo!")
builder.setItems(check
) { dialog: DialogInterface, item: Int ->
if (check[item] == "Take Photo") {
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
)
if (permission == PackageManager.PERMISSION_GRANTED) {
takeImage()
} else {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
dialog.dismiss()
} else if (check[item] == "Choose from Gallery") {
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE Manifest.permission.READ_EXTERNAL_STORAGE
) )
}
}
if (permission == PackageManager.PERMISSION_GRANTED) {
selectImageIntent?.launch("image/*")
tvCamera.setOnClickListener {
dialog.cancel()
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
)
if (permission == PackageManager.PERMISSION_GRANTED) {
takeImage()
} else {
requestPermission.launch(
Manifest.permission.CAMERA
)
} else {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
} else if (check[item] == "Cancel") {
dialog.dismiss()
} }
} }
dialog.show()
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
builder.show()
} }
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 +282,106 @@ 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) {
mainPANUpload -> {
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 = ""
}
}
mainPhotoUpload -> {
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 = ""
}
}
firstDocUpload -> {
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 +412,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
@ -333,11 +434,9 @@ class StepThreeBajajFDFragment : BaseFragment() {
if (uploadPosition == mapImage.size) { if (uploadPosition == mapImage.size) {
Toast.makeText( Toast.makeText(
requireActivity(), requireActivity(),
"".plus(mapImage.size.toString() + " Last Image Uploaded ") +
uploadPosition,
Toast.LENGTH_LONG
"Documents Uploaded Successfully",
Toast.LENGTH_SHORT
).show() ).show()
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
createFDApi((activity as BajajFdMainActivity).createFDRequest) createFDApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
@ -345,7 +444,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
else -> { else -> {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getUploadResponse.Response.Message
getUploadResponse.Response.Errors[0].ErrorMessage
) )
} }
} }
@ -368,56 +467,54 @@ 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 -> {
}
} }
} }
}
} }
private fun docTypeApi() { private fun docTypeApi() {
val getCodeRequest = GetCodeRequest() val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD) getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType) getCodeRequest.Category = getString(R.string.docType)
@ -449,7 +546,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()
@ -479,24 +578,29 @@ 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( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload Aadhaar Images"
getString(R.string.uploadPanDoc)
) )
return false return false
} else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) {
} else if (photoString.isEmpty()) {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload Aadhaar Images"
getString(R.string.uploadPhotoDoc)
) )
return false return false
} else if (mapImage.size < 3) {
} else if (docString.isEmpty()) {
Common.showDialogValidation( Common.showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
"Upload All Images"
"Upload $docValue Document"
)
return false
} else if (docValue == "Aadhar" && docString2.isEmpty()) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getString(R.string.uploadAadharBackDoc)
) )
return false return false
} }
@ -526,15 +630,26 @@ class StepThreeBajajFDFragment : BaseFragment() {
) )
} }
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
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
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
} }

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

@ -33,7 +33,6 @@ 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.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepTwoModelProviderFactory import com.nivesh.production.bajajfd.ui.providerfactory.StepTwoModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorAutoCompleteMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorAutoCompleteMethod
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.commonSpinnerErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonSpinnerErrorMethod
@ -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= 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,23 @@ 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) { if (bankListAdapter.itemCount == 5) {
showDialogValidation(mActivity, "You Can Not Add More Than Five Account")
showDialogValidation(mActivity, getString(R.string.fiveAccountValidation))
} else { } else {
showHideBankDetail() showHideBankDetail()
} }
} }
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 +578,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
@ -708,8 +685,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress1 = (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress1 =
binding.edtGuardianAddress.text.toString() binding.edtGuardianAddress.text.toString()
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = "" (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = ""
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress3 =
binding.spGuardianRelation.text.toString()
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress3 = ""
// Applicant Bank Details // Applicant Bank Details
(activity as BajajFdMainActivity).fdBankDetails.AccountType = (activity as BajajFdMainActivity).fdBankDetails.AccountType =
@ -736,6 +712,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 +723,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) {
@ -777,7 +751,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage createFDApplicationResponse.Response.Errors[0].ErrorMessage
) )
@ -788,7 +762,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -801,11 +775,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,27 +800,20 @@ 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 -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getIFSCCodeListResponse.Response.message getIFSCCodeListResponse.Response.message
) )
@ -858,7 +824,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
message message
) )
@ -881,34 +847,23 @@ 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)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -917,27 +872,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) {
@ -951,51 +906,43 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (binding.tvAcVerify.visibility == View.GONE) { if (binding.tvAcVerify.visibility == View.GONE) {
binding.tvAcVerify.visibility = View.VISIBLE binding.tvAcVerify.visibility = View.VISIBLE
} }
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())
listOfBanks,
clientBankList.AccountNumber.toString()
)
showHideBankDetail() showHideBankDetail()
}
else {
showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
} else {
showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
showHideBankDetail() showHideBankDetail()
} }
} }
else -> { else -> {
showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
showHideBankDetail() showHideBankDetail()
} }
} }
} }
@ -1003,7 +950,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1014,12 +961,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 +999,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 +1024,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())
@ -1156,7 +1085,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1228,7 +1157,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1239,7 +1168,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1279,7 +1208,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1290,7 +1219,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1306,7 +1235,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 +1243,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)
@ -1351,7 +1279,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1362,7 +1290,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1418,7 +1346,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1429,7 +1357,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1479,7 +1407,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1490,7 +1418,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1532,14 +1460,14 @@ class StepTwoBajajFDFragment : BaseFragment() {
) )
binding.spOccupation.setAdapter(adapter) binding.spOccupation.setAdapter(adapter)
binding.spOccupation.setText( binding.spOccupation.setText(
adapter.getItem(0)?.Value,
adapter.getItem(0)?.Label,
false false
) )
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1550,7 +1478,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1599,7 +1527,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage getCodeResponse.Response.Errors[0].ErrorMessage
) )
@ -1610,7 +1538,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1671,7 +1599,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
stateListResponse.response.message stateListResponse.response.message
) )
@ -1682,7 +1610,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1749,7 +1677,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
cityListResponse.response.message cityListResponse.response.message
) )
@ -1760,7 +1688,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1793,7 +1721,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getFDBankListResponse.Response.Errors[0].ErrorMessage getFDBankListResponse.Response.Errors[0].ErrorMessage
) )
@ -1804,7 +1732,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -1975,7 +1903,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,
@ -2041,29 +1973,31 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
private fun showHideBankDetail() { private fun showHideBankDetail() {
if (binding.llBankDetails.visibility == View.GONE) { if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE binding.llBankDetails.visibility = View.VISIBLE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_minus,
0
)
} else { } else {
binding.llBankDetails.visibility = View.GONE binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_add_icon,
0
)
} }
} }
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
} }

+ 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" />


+ 35
- 0
app/src/main/res/raw/my_certificate.cer View File

@ -0,0 +1,35 @@
-----BEGIN CERTIFICATE-----
MIIGLDCCBRSgAwIBAgIRAOC8oou3uiOKidLRgPxPMbIwDQYJKoZIhvcNAQELBQAw
gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
QTAeFw0yMTEyMTAwMDAwMDBaFw0yMzAxMTAyMzU5NTlaMBcxFTATBgNVBAMMDCou
bml2ZXNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN6WeYgq
GOpEvmY7KJKAi4mcdnH7L/2+Cxe2gVlq9vpFmnqFiPZS1JXCo2L8xSq6/Hxkiwkw
JMvGTCK+fhN4Zs/eYQ3fWeWv+AkRCs5/H6LxtsNuOxLiNNSUPqyT5yWkA7KK8uyo
ocE2qmOikqZWuWGjHoY+LiWE0Vb+iK8+XiP7EE+hrqB3UrW6WytxNF4yMmmNPmof
Cqhxh66DV1C6YhC4PMuqjtS811r9tfLp9GP2zwWAEFmUFP29UiNGuqp5r2Js5Vn8
tJbVo5NKl+paCSRRqWt94iBn9iaVeKaaKd0vgXzD4KhXPAn3SkTutRjS14uSHIxu
2rDreclJrv1ylZECAwEAAaOCAvgwggL0MB8GA1UdIwQYMBaAFI2MXsRUrYrhd+mb
+ZsF4bgBjWHhMB0GA1UdDgQWBBSEO7RmJP+bzz6mTVBA+XsF6a/7vTAOBgNVHQ8B
Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
BQUHAwIwSQYDVR0gBEIwQDA0BgsrBgEEAbIxAQICBzAlMCMGCCsGAQUFBwIBFhdo
dHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBAgEwgYQGCCsGAQUFBwEBBHgw
djBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNB
RG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYX
aHR0cDovL29jc3Auc2VjdGlnby5jb20wIwYDVR0RBBwwGoIMKi5uaXZlc2guY29t
ggpuaXZlc2guY29tMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdgCt9776fP8Q
yIudPZwePhhqtGcpXc+xDCTKhYY069yCigAAAX2i87C2AAAEAwBHMEUCIQDHdsDn
kA3ktyMxce/FRtb61TpIkZQjhMDFoRzVMOSghgIgcawr75bc9bnT5RzuPVd8es1R
8euvGvaIUWveW3LNmFIAdQB6MoxU2LcttiDqOOBSHumEFnAyE4VNO9IrwTpXo1Lr
UgAAAX2i87B0AAAEAwBGMEQCIA75W33zs9u3tKLjTiFOAclYDaWbOS/GoE179wr2
d4jKAiBZp0TnvFa1+I4jC9faot83PqClumyl3QRwR3CeAfMgsQB1AOg+0No+9QY1
MudXKLyJa8kD08vREWvs62nhd31tBr1uAAABfaLzsE8AAAQDAEYwRAIgOitVc+nj
J5gkft/VKRP0w2ZxChHC0yEgPJzMC8KmnQMCIBcRmGBcpN+vQXL0t7gSTrIGTjAJ
jxJptQfLsPXJ3/sBMA0GCSqGSIb3DQEBCwUAA4IBAQCq2CbjmPky6ISXzM86kD2n
7lakrVoo5QpJhopWhr0bp+Bf3+I2l2ZIEtCP9/z1zVIGfPXxEGsvYB+gxi4t0YDy
8v+tiNxzOG6rhHSgs9SVhfFb/iFp3n2RtD4iezvGsiSjp7KiSCaV1gknlQlC09eJ
b6mNk2cDHaABfyRFIDZRvZ69rn9pRKHGWdIoGcrFNovWOaOeN+I46G54Vfy3VS+3
PeVBU6ziRGIQ0oq0kPWbv8wKYz+dTKsO/NhhRXwr5LFLd2HdAXKnGTqSgcjXGqar
n9MRJA9rm6+fKz7sRaGd4daJIKRb5QDAv46tpzKYoLt3/hrn0mZwiiiu0kp7XuOQ
-----END CERTIFICATE-----

+ 5
- 0
app/src/main/res/values-hi-rIN/strings.xml View File

@ -240,6 +240,11 @@
<string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string> <string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="aadhar">Aadhar</string> <string name="aadhar">Aadhar</string>
<string name="uploadPanDoc">Upload PAN Document</string>
<string name="uploadPhotoDoc">Upload Photo Document</string>
<string name="uploadAadharBackDoc">Upload Aadhar Back Document</string>
<string name="fiveAccountValidation">You can not add more than five accounts</string>
</resources> </resources>

+ 1
- 0
app/src/main/res/values-night/strings.xml View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="add_new_account">Add New Account</string> <string name="add_new_account">Add New Account</string>
<string name="aadhar">Aadhar</string>
</resources> </resources>

+ 5
- 0
app/src/main/res/values/strings.xml View File

@ -198,6 +198,7 @@
<string name="selectOption">Select Option</string> <string name="selectOption">Select Option</string>
<string name="gallery">Gallery</string> <string name="gallery">Gallery</string>
<string name="camera">Camera</string> <string name="camera">Camera</string>
<string name="panLabel">PAN</string>
<!-- Step Four --> <!-- Step Four -->
@ -240,6 +241,10 @@
<string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string> <string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="aadhar">Aadhar</string> <string name="aadhar">Aadhar</string>
<string name="uploadPanDoc">Upload PAN Document</string>
<string name="uploadPhotoDoc">Upload Photo Document</string>
<string name="uploadAadharBackDoc">Upload Aadhar Back Document</string>
<string name="fiveAccountValidation">You can not add more than five accounts</string>
</resources> </resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.