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
Split 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" />
<application
android:allowBackup="true"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
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(
private val bankList: List<ClientBanklist>?,
private val selectedAccount: String? = null,
private val width:Double?
private val width: Double?
) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
@ -25,52 +25,33 @@ class BankListAdapter(
}
private var checkedPosition: Int = -2
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): 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)
?.let { ViewGroup.LayoutParams(it.toInt(),ViewGroup.LayoutParams.WRAP_CONTENT) }
?.let { ViewGroup.LayoutParams(it.toInt(), ViewGroup.LayoutParams.WRAP_CONTENT) }
return BankListViewHolder(view)
}
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position)
if (bankList !=null) {
if (bankList != null) {
holder.itemView.apply {
holder.tvBankName.text = bankList.BankName
holder.tvBankIFSC.text = bankList.IFSCCode
holder.tvBankAccountNumber.text = bankList.AccountNumber
if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2))
{
if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2)) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition
}
else if (checkedPosition == -1) {
} else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
else if (checkedPosition == holder.adapterPosition) {
} else if (checkedPosition == holder.adapterPosition) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
}
else {
} else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
@ -81,8 +62,6 @@ class BankListAdapter(
checkedPosition = holder.adapterPosition
}
}
}
}
}
@ -97,7 +76,6 @@ class BankListAdapter(
onItemClickListener = listener
}
fun getSelected(): ClientBanklist? {
return if (checkedPosition != -1) {
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 {
@POST("WebApi_Bajaj/api/GetRates")
@POST("GetRates")
suspend fun getRates(
@Body getRatesRequest: GetRatesRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CheckFDCKYC")
@POST("CheckFDCKYC")
suspend fun checkFDKYC(
@Body checkFDKYCRequest: CheckFDKYCRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CreateFDApplication")
@POST("CreateFDApplication")
suspend fun createFDApp(
@Body createFDRequest: CreateFDRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/DocumentsUpload")
@POST("DocumentsUpload")
suspend fun documentsUpload(
@Body requestBody: DocumentUpload,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/SaveFDOtherData")
@POST("SaveFDOtherData")
suspend fun saveFDOtherData(
@Body requestBody: SaveFDOtherDataRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetFDDetails")
@POST("GetFDDetails")
suspend fun getFDDetails(
@Body requestBody: GetFDDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/UpdateFDPaymentStatus")
@POST("UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseFD")
@POST("FinaliseFD")
suspend fun finaliseFD(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseKYC")
@POST("FinaliseKYC")
suspend fun finaliseKYC(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PaymentRequery")
@POST("PaymentRequery")
suspend fun paymentReQuery(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
// @FormUrlEncoded
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun getCodes(
@Body requestBody: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CalculateFDMaturityAmount")
@POST("CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount(
@Body requestBody: GetMaturityAmountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PanCheck_S")
@POST("PanCheck_S")
suspend fun panCheckApi(
@Body panCheck: PanCheckRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/getFDStepsCount")
@POST("getFDStepsCount")
suspend fun getFDStepsCount(
@Body fdStepsCountRequest: FDStepsCountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetClientDetailV2_S")
@POST("GetClientDetailV2_S")
suspend fun getClientDetails(
@Body getClientDetailsRequest: getClientDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun titleApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun genderApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun annualIncomeApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun relationShipApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun maritalStatusApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun occupationApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetStateMaster")
@POST("GetStateMaster")
suspend fun stateApi(@Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCity")
@POST("GetCity")
suspend fun cityApi(
@Body cityRequest: CityRequest,
@Header("token") token: String
): Response<JsonObject>
@GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj")
@GET("GetFDBankList?FDProvider=Bajaj")
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>
@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(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/BankValidationAPI_S")
@POST("BankValidationAPI_S")
suspend fun bankValidationApi(
@Body bankValidationApiRequest: BankValidationApiRequest,
@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 FdBankDetails: FdBankDetails? = 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(
val Label: String,
val Value: String,
var Value: String,
var isSelected : Boolean
) {
override fun toString(): String {
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
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
import com.nivesh.production.bajajfd.util.Resource
data class ResponseXXXXXXXXXXXX(
val Errors: List<Errors>,
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) =
apiInterface.getIFSCApi(str)
suspend fun ifscCodeDetailsCheck(str: String) =
apiInterface.getIFSCDetailsApi(str)
suspend fun ifscCodeBankDetailsCheck(str: String, token: String) =
apiInterface.getIFSCBankDetailsApi(str, token)
suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token)


+ 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.app.Dialog
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.Log
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import androidx.fragment.app.Fragment
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.Resource
import com.nivesh.production.bajajfd.viewModel.*
import java.io.BufferedReader
import java.io.InputStream
import java.io.InputStreamReader
class BajajFdMainActivity : BaseActivity() {
@ -57,6 +58,8 @@ class BajajFdMainActivity : BaseActivity() {
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
private lateinit var fragments: Array<Fragment>
var valur:String=""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
@ -86,7 +89,7 @@ class BajajFdMainActivity : BaseActivity() {
if (Common.isNetworkAvailable(this)) {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "60476"
fdStepsCount.NiveshClientCode = "8872"
//hemant client code =8872 /60476
viewModel.getStepsCount(fdStepsCount, token, this)
@ -139,11 +142,11 @@ class BajajFdMainActivity : BaseActivity() {
private fun getClientDetailsApi(stepsCount: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "60476"
getClientDetailsRequest.client_code = "8872"
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()
@ -389,6 +392,9 @@ class BajajFdMainActivity : BaseActivity() {
// step 4 response
fun stepFourApi(payUrl: String, value: String) {
valur=value
paymentDialog(payUrl, value)
}
@ -411,26 +417,106 @@ class BajajFdMainActivity : BaseActivity() {
lp.height = WindowManager.LayoutParams.MATCH_PARENT
dialogWebView.window?.attributes = lp
val wVPay = dialogWebView.findViewById<WebView>(R.id.wVPay)
wVPay.webViewClient = MyWebViewClient()
// wVPay.webViewClient = MyWebViewClient()
wVPay.settings.javaScriptEnabled = 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.app.ActionBar.LayoutParams
import android.app.Dialog
import android.content.DialogInterface
import android.content.Intent
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.provider.OpenableColumns
import android.util.Base64
import android.util.Log
@ -17,6 +22,7 @@ import android.view.ViewGroup
import android.widget.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
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.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.ImageUtil
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel
import java.io.File
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream
import java.io.*
class StepThreeBajajFDFragment : BaseFragment() {
private var bitmap: Bitmap? = null
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes>
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog
private var takeImageResult: ActivityResultLauncher<Uri>? = 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 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(
ActivityResultContracts.RequestPermission()
@ -94,7 +107,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? ->
if (uri != null) {
uploadDocument(uri)
bitmap = uriToBitmap(uri)
uploadDocument(uri, "g")
}
}
@ -102,21 +116,33 @@ class StepThreeBajajFDFragment : BaseFragment() {
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
latestTmpUri?.let { uri ->
uploadDocument(uri)
uploadDocument(uri, "c")
}
}
}
binding.btnNext.setOnClickListener {
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
for (entry in mapImage.iterator()) {
uploadPosition++
if (entry.key.contains("Main ")) {
uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition)
} else {
uploadDocApi(entry.key, entry.value, uploadPosition)
}
uploadDocApi(entry.key, entry.value, uploadPosition)
}
}
}
@ -125,37 +151,31 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
binding.btnPANUpload.setOnClickListener {
checkPANUploadFile = true
checkPhotoUploadFile = false
actionType = AccountCaptureType.MAIN_PAN_UPLOAD
selectImage("PAN")
actionType = mainPANUpload
selectImage()
}
binding.btnPhotoUpload.setOnClickListener {
checkPhotoUploadFile = true
checkPANUploadFile = false
actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD
selectImage("Photograph")
actionType = mainPhotoUpload
selectImage()
}
binding.btnAadhaarFrontUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.FIRST_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = firstDocUpload
selectImage()
}
binding.btnAadhaarBackUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
actionType = AccountCaptureType.SECOND_UPLOAD
selectImage(binding.spDocType.text.toString())
actionType = secondDocUpload
selectImage()
}
binding.spDocType.onItemClickListener =
AdapterView.OnItemClickListener { parent, _, position, _ ->
val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes
docValue = getCodes.Value
docString = ""
docString2 = ""
when (getCodes.Label) {
resources.getString(R.string.aadhar) ->
setAadhaarUploadLayout()
@ -190,53 +210,60 @@ class StepThreeBajajFDFragment : BaseFragment() {
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
)
}
}
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 *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
View.INVISIBLE
@ -255,31 +282,106 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.btnAadhaarFrontUpload.visibility = View.VISIBLE
}
private fun uploadDocument(uri: Uri) {
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
fileExt = fileExtension.extension
encodedFileToBase64(fileExtension)
if (checkPANUploadFile == true || checkPhotoUploadFile == true) {
mapImage["Main ".plus(selectedImage)] = front
} else {
selectedImage?.let { mapImage.put(it, front) }
}
when(actionType){
AccountCaptureType.MAIN_PAN_UPLOAD -> binding.ivPan.visibility = View.VISIBLE
AccountCaptureType.MAIN_PHOTO_UPLOAD -> binding.ivPhotograph.visibility = View.VISIBLE
AccountCaptureType.FIRST_UPLOAD -> binding.ivAadharFront.visibility = View.VISIBLE
else ->{
private fun uploadDocument(uri: Uri, type: String) {
when (actionType) {
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
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc2fileExt = getFileExtension(getFileName(uri))
val size: Double = Common.getFileSizeInMB(fileExtension.length())
if (size < 5) {
if (type == "c") encodedFileToBase64(fileExtension)
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString()
} else {
docString2 = ""
doc2fileExt = ""
}
}
}
}
private fun encodedFileToBase64(fileName: File?) {
front = try {
val bytes: ByteArray? = fileName?.let { loadFile(it) }
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' }
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "")
private fun encodedPANBase64(fileName: File) {
panString = try {
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "")
.replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedPhotoBase64(fileName: File) {
photoString = try {
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "")
.replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedUpload1Base64(fileName: File) {
docString = try {
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "")
.replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
}
}
private fun encodedFileToBase64(fileName: File) {
docString2 = try {
val bytes: ByteArray = loadFile(fileName)
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "")
.replace("\\s+", "")
} catch (e: Exception) {
e.printStackTrace()
""
@ -310,8 +412,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
du.Description = key
du.DocumentType = key
du.FDProvider = getString(R.string.bajaj)
du.ImageEncodeToBase64 =
"data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64"
du.ImageEncodeToBase64 = imageBase64
du.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
du.UniqueId = uniqueId
@ -333,11 +434,9 @@ class StepThreeBajajFDFragment : BaseFragment() {
if (uploadPosition == mapImage.size) {
Toast.makeText(
requireActivity(),
"".plus(mapImage.size.toString() + " Last Image Uploaded ") +
uploadPosition,
Toast.LENGTH_LONG
"Documents Uploaded Successfully",
Toast.LENGTH_SHORT
).show()
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
createFDApi((activity as BajajFdMainActivity).createFDRequest)
}
}
@ -345,7 +444,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getUploadResponse.Response.Message
getUploadResponse.Response.Errors[0].ErrorMessage
)
}
}
@ -368,56 +467,54 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
private fun createFDApi(data: CreateFDRequest) {
stepThreeBajajFDViewModel.createFDApi(
data,
Constants.token,
activity as BajajFdMainActivity
)
stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("createFDApi", "response--> " + response.data.toString())
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
(activity as BajajFdMainActivity).stepThreeApi(
createFDApplicationResponse
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
stepThreeBajajFDViewModel.createFDApi(
data,
Constants.token,
activity as BajajFdMainActivity
)
stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("createFDApi", "response--> " + response.data.toString())
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
(activity as BajajFdMainActivity).stepThreeApi(
createFDApplicationResponse
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
is Resource.Loading -> {
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
is Resource.DataError -> {
}
}
}
}
}
private fun docTypeApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType)
@ -449,7 +546,9 @@ class StepThreeBajajFDFragment : BaseFragment() {
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfDocType[0].Value)
setOtherUploadLayout(adapter.getItem(0)?.Value)
docValue = adapter.getItem(0)?.Value.toString()
}
}
// 650 -> refreshToken()
@ -479,24 +578,29 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
}
private fun validate(): Boolean {
if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size < 3) {
if (panString.isEmpty()) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload Aadhaar Images"
getString(R.string.uploadPanDoc)
)
return false
} else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) {
} else if (photoString.isEmpty()) {
Common.showDialogValidation(
activity as BajajFdMainActivity,
"Upload Aadhaar Images"
getString(R.string.uploadPhotoDoc)
)
return false
} else if (mapImage.size < 3) {
} else if (docString.isEmpty()) {
Common.showDialogValidation(
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
}
@ -526,15 +630,26 @@ class StepThreeBajajFDFragment : BaseFragment() {
)
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
}
private fun uriToBitmap(selectedFileUri: Uri): Bitmap? {
try {
val parcelFileDescriptor =
requireActivity().contentResolver.openFileDescriptor(selectedFileUri, "r")
val fileDescriptor: FileDescriptor = parcelFileDescriptor!!.fileDescriptor
val image = BitmapFactory.decodeFileDescriptor(fileDescriptor)
parcelFileDescriptor.close()
return image
} catch (e: IOException) {
e.printStackTrace()
}
return null
}
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.ui.activity.BajajFdMainActivity
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.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.commonSpinnerErrorMethod
@ -52,11 +51,14 @@ import java.util.*
class StepTwoBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepTwoBinding? = null
private val binding get() = _binding!!
private lateinit var rbBank: RadioButton
private lateinit var rbPaymentMode: RadioButton
private var cal = Calendar.getInstance()
private lateinit var listOfTitle: List<GetCodes>
private lateinit var listOfGender: List<GetCodes>
private lateinit var listOfAnnualIncome: List<GetCodes>
@ -68,7 +70,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var listOfCities: List<DataObjectX>
private lateinit var listOfIFSC: MutableList<String>
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
private lateinit var bankListAdapter: BankListAdapter
private lateinit var paymentModeAdapter: PaymentModeAdapter
@ -524,32 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener {
if (validateBank()) {
/// as
val selectedOption: Int = binding.rgBank!!.checkedRadioButtonId
val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString())
verifyAccountNo(
verifyAccountNo(
binding.edtAccountNumber.text.toString(),
binding.edtIFSC.text.toString(),
fullName,
binding.edtFirstName.text.toString().plus(" ")
.plus(binding.edtMiddleName.text.toString()).plus(" ")
.plus(binding.edtLastName.text.toString()),
binding.edtMobileNumber.text.toString(),
1
)
// binding.radio.findViewById(selectedOption)
1
)
}
}
@ -559,29 +543,23 @@ class StepTwoBajajFDFragment : BaseFragment() {
if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) {
binding.llBankDetails.visibility = View.VISIBLE
} else {
binding.llBankDetails.visibility = View.GONE
}
binding.addBankDetail.setOnClickListener {
if (bankListAdapter.itemCount == 5) {
showDialogValidation(mActivity, "You Can Not Add More Than Five Account")
showDialogValidation(mActivity, getString(R.string.fiveAccountValidation))
} else {
showHideBankDetail()
}
}
titleApi()
// setUpRecyclerView()
setUpRecyclerView(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1)
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1
)
binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -600,12 +578,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.tvBankDetails.setOnClickListener {
if (binding.llBankDetails.visibility == View.VISIBLE) {
binding.llBankDetails.visibility = View.GONE
} else {
binding.llBankDetails.visibility = View.VISIBLE
}
}
binding.btnNext.setOnClickListener {
if (validation()) {
// Applicant Details
@ -708,8 +685,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress1 =
binding.edtGuardianAddress.text.toString()
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = ""
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress3 =
binding.spGuardianRelation.text.toString()
(activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress3 = ""
// Applicant Bank Details
(activity as BajajFdMainActivity).fdBankDetails.AccountType =
@ -736,6 +712,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails =
(activity as BajajFdMainActivity).nomineeGuardianDetails
(activity as BajajFdMainActivity).createFDApplicantRequest.UniqueId = ""
(activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest =
(activity as BajajFdMainActivity).createFDApplicantRequest
@ -746,14 +723,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
createFDApi((activity as BajajFdMainActivity).createFDRequest)
}
}
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 0
}
}
private fun createFDApi(data: CreateFDRequest) {
@ -777,7 +751,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
@ -788,7 +762,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -801,11 +775,10 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
private fun ifscCodeCheckApi(ifsc: String) {
if (ifsc.length ==11) {
if (ifsc.length >= 10) {
stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getIFSCCodeListResponse =
@ -827,27 +800,20 @@ class StepTwoBajajFDFragment : BaseFragment() {
listOfIFSC
)
binding.edtIFSC.setAdapter(adapter)
binding.edtIFSC.setOnItemClickListener { _, _, position, _ ->
if (listOfIFSC.size > 0) {
binding.edtIFSC.setText(adapter.getItem(position).toString())
binding.edtIFSC.setText(
adapter.getItem(position).toString()
)
binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length)
getIFSCDetailsApi(binding.edtIFSC.toString())
getIFSCDetailsApi(binding.edtIFSC.text.toString())
}
}
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getIFSCCodeListResponse.Response.message
)
@ -858,7 +824,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
message
)
@ -881,34 +847,23 @@ class StepTwoBajajFDFragment : BaseFragment() {
ifscCode,
activity as BajajFdMainActivity
)
stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
stepTwoBajajFDViewModel.getIfscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getIFSCCodeResponse =
Gson().fromJson(
response.data?.toString(),
if (response.data.toString().isNotEmpty()) {
val getIFSCCodeResponse = Gson().fromJson(
response.data.toString(),
GetIFSCCodeResponse::class.java
)
getIFSCCodeResponse.Response.status_code.let { code ->
when (code) {
200 -> {
binding.edtBankName.setText(getIFSCCodeResponse.BANK)
binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getIFSCCodeResponse.Response.message
)
}
}
binding.edtBankName.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BnkDescr)
binding.edtBankName.setSelection(binding.edtBankName.text.toString().length)
binding.edtBankBranch.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BankBranch)
binding.edtBankBranch.setSelection( binding.edtBankBranch.text.toString().length)
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -917,27 +872,27 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.DataError -> {
}
}
}
}
}
private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) {
private fun verifyAccountNo(
bankAccount: String, Ifsc: String, name: String, phoneNumber: String, bankNo: Int
) {
val bankValidationApiRequest = BankValidationApiRequest()
bankValidationApiRequest.BankAccountNo=bankAccount
bankValidationApiRequest.IFSC=Ifsc
bankValidationApiRequest.Name=name
bankValidationApiRequest.PhoneNo=phoneNumber
bankValidationApiRequest.RoleId=5
bankValidationApiRequest.BankNo=bankNo
bankValidationApiRequest.BankAccountNo = bankAccount
bankValidationApiRequest.IFSC = Ifsc
bankValidationApiRequest.Name = name
bankValidationApiRequest.PhoneNo = phoneNumber
bankValidationApiRequest.RoleId = 5
bankValidationApiRequest.BankNo = bankNo
stepTwoBajajFDViewModel.bankValidationApi(
bankValidationApiRequest,
token,
activity as BajajFdMainActivity
)
stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@ -951,51 +906,43 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (binding.tvAcVerify.visibility == View.GONE) {
binding.tvAcVerify.visibility = View.VISIBLE
}
when (code) {
200 -> {
if(getBankValidationApiResponse.Message=="Account verified")
{
val clientBanklist =ClientBanklist()
clientBanklist.AccountNumber=bankAccount
clientBanklist.AccountType="sb"
clientBanklist.BankName=binding.edtBankName.text.toString()
clientBanklist.BranchName=binding.edtBankBranch.text.toString()
clientBanklist.IFSCCode=Ifsc
clientBanklist.IsValBank=1
if (getBankValidationApiResponse.Message == "Account Verified") {
val clientBankList = ClientBanklist()
clientBankList.AccountNumber = bankAccount
clientBankList.AccountType = "sb"
clientBankList.BankName =
binding.edtBankName.text.toString()
clientBankList.BranchName =
binding.edtBankBranch.text.toString()
clientBankList.IFSCCode = Ifsc
clientBankList.IsValBank = 1
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let {
listOfBanks.addAll(
it
)
}
listOfBanks.add(clientBanklist)
listOfBanks.add(clientBankList)
setUpRecyclerView(
listOfBanks ,
clientBanklist.AccountNumber.toString())
listOfBanks,
clientBankList.AccountNumber.toString()
)
showHideBankDetail()
}
else {
showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
} else {
showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
showHideBankDetail()
}
}
else -> {
showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
showHideBankDetail()
}
}
}
@ -1003,7 +950,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1014,12 +961,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
}
}
private fun validateBank(): Boolean {
return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText
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()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels.toDouble()
val height = displayMetrics.heightPixels
binding.rvClientBankList.layoutManager = LinearLayoutManager(
mActivity,
LinearLayoutManager.HORIZONTAL,
false
)
bankListAdapter = BankListAdapter(
bankList,
selectedAccount,width
)
binding.rvClientBankList.adapter = bankListAdapter
bankListAdapter = BankListAdapter(bankList, selectedAccount, width)
binding.rvClientBankList.adapter = bankListAdapter
}
private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH)
@ -1094,7 +1024,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
if (monthOfYear.toString().length == 1) {
"0".plus(monthOfYear)
}
// edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years))
edtDOB.setText(
years.toString().plus("-").plus(monthOfYear + 1).plus("-")
.plus(dayOfMonth.toString())
@ -1156,7 +1085,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1228,7 +1157,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1239,7 +1168,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1279,7 +1208,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1290,7 +1219,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1306,7 +1235,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager =
GridLayoutManager(activity as BajajFdMainActivity,2)
GridLayoutManager(activity as BajajFdMainActivity, 2)
paymentModeAdapter = PaymentModeAdapter(
listOfPayMode,
listOfPayMode[0].Value
@ -1314,7 +1243,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.rvPaymentMode.adapter = paymentModeAdapter
}
private fun genderApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
@ -1351,7 +1279,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1362,7 +1290,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1418,7 +1346,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1429,7 +1357,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1479,7 +1407,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1490,7 +1418,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1532,14 +1460,14 @@ class StepTwoBajajFDFragment : BaseFragment() {
)
binding.spOccupation.setAdapter(adapter)
binding.spOccupation.setText(
adapter.getItem(0)?.Value,
adapter.getItem(0)?.Label,
false
)
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1550,7 +1478,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1599,7 +1527,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
@ -1610,7 +1538,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1671,7 +1599,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
stateListResponse.response.message
)
@ -1682,7 +1610,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1749,7 +1677,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
cityListResponse.response.message
)
@ -1760,7 +1688,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1793,7 +1721,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
showDialogValidation(
activity as BajajFdMainActivity,
getFDBankListResponse.Response.Errors[0].ErrorMessage
)
@ -1804,7 +1732,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1975,7 +1903,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
getString(R.string.emptyState)
)
} else if (binding.spCity.text.toString().isEmpty()) { // EditText
commonSpinnerErrorMethod(binding.spCity, binding.tlCity, getString(R.string.emptyCity))
commonSpinnerErrorMethod(
binding.spCity,
binding.tlCity,
getString(R.string.emptyCity)
)
} else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText
commonErrorMethod(
binding.edtPinCode,
@ -2041,29 +1973,31 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
private fun showHideBankDetail() {
if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_minus,
0
)
} else {
binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_add_icon,
0
)
}
}
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.provider.ContactsContract
import android.text.format.DateFormat
import android.util.Log
import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
@ -17,7 +18,9 @@ import com.google.android.material.textfield.TextInputLayout
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.R
import kotlinx.coroutines.CoroutineExceptionHandler
import org.json.JSONObject
import retrofit2.HttpException
import retrofit2.Response
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
@ -205,6 +208,23 @@ class Common {
return Resource.Error(response.message())
}
fun handleResponse1(response: Response<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 {
val handler = CoroutineExceptionHandler { _, exception ->
if (exception is IOException || exception is HttpException) {
@ -233,5 +253,25 @@ class Common {
minAdultAge.add(Calendar.YEAR, -18)
return minAdultAge.before(userAge)
}
/* this function is used for file size in readable formate(End)*/
fun getFileSizeInMB(length: Long): Double {
// Get length of file in bytes
val fileSizeInBytes = length.toDouble()
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
val fileSizeInKB = fileSizeInBytes / 1024
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
return fileSizeInKB / 1024
}
fun getFileExtension(name: String): String {
val index = name.lastIndexOf('.')
return if (index > 0) {
name.substring(index + 1)
} else {
""
}
}
}
}

+ 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() {
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"
}
}

+ 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.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse1
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
@ -125,29 +127,29 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
}
}
val getifscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getIfscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeCheckMutableData.postValue(Resource.Loading())
getIfscCodeCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeCheck(ifsc)
getifscCodeCheckMutableData.postValue(handleResponse(response))
getIfscCodeCheckMutableData.postValue(handleResponse(response))
}
}
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getIfscCodeDetailsCheckMutableData: MutableLiveData<Resource<String>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc)
getifscCodeDetailsCheckMutableData.postValue(handleResponse(response))
getIfscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeBankDetailsCheck(ifsc, token)
getIfscCodeDetailsCheckMutableData.postValue(handleResponse1(response))
}
}
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
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"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.925"
app:layout_constraintHorizontal_bias="0.78"
app:layout_constraintStart_toEndOf="@+id/tvPAN"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
tools:ignore="DuplicateSpeakableTextCheck" />


+ 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="cancel">Cancel</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>

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

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

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

@ -198,6 +198,7 @@
<string name="selectOption">Select Option</string>
<string name="gallery">Gallery</string>
<string name="camera">Camera</string>
<string name="panLabel">PAN</string>
<!-- Step Four -->
@ -240,6 +241,10 @@
<string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cancel">Cancel</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>

Loading…
Cancel
Save

Powered by TurnKey Linux.