diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c5df2bd..ba0157d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt index 80f3770..2e5f4be 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -8,109 +8,84 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.model.BankList +import com.nivesh.production.bajajfd.model.ClientBanklist -class BankListAdapter( private val bankList: List, - private var checkedPosition: Int = -2, - private val selectedAccount: String? = null -) - :RecyclerView.Adapter() -{ - inner class BankListViewHolder (itemView:View):RecyclerView.ViewHolder(itemView) - { +class BankListAdapter( + private val bankList: List?, + private val selectedAccount: String? = null +) : RecyclerView.Adapter() { + inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) - val bankName: TextView = itemView.findViewById(R.id.bankName) - val bankAcNoTV: TextView = itemView.findViewById(R.id.bankAcNoTV) - val bankIfscTV: TextView = itemView.findViewById(R.id.bankIfscTV) - val bankTypeTV: TextView = itemView.findViewById(R.id.bankTypeTV) + val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + val tvBankAccountNumber: TextView = itemView.findViewById(R.id.tvBankAccountNumber) + val tvBankIFSC: TextView = itemView.findViewById(R.id.tvBankIFSC) } + private var checkedPosition: Int = -2 + override fun onCreateViewHolder( parent: ViewGroup, viewType: Int ): BankListViewHolder { - return BankListViewHolder(LayoutInflater.from(parent.context).inflate( - R.layout.item_banklist_preview, + return BankListViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.item_bank_list_preview, parent, - false - - - - )) + false + ) + ) } override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { - val bankList =bankList[position] - - holder.itemView.apply { - - - - holder.bankName.text = bankList.BankName - holder.bankIfscTV.text = bankList.IFSCCode - holder.bankAcNoTV.text = bankList.AccountNumber - holder.bankTypeTV.text = bankList.AccountType - - - - if (selectedAccount == bankList.AccountNumber && checkedPosition == -2 - ) { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - checkedPosition = holder.adapterPosition - } else if (checkedPosition == -1) { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } else if (checkedPosition == holder.adapterPosition) - { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - } else { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } - - - - - - - - - setOnClickListener{ onItemClickListener?.let { - it(bankList) - - - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - if (checkedPosition != holder.adapterPosition) { - notifyItemChanged(checkedPosition) + val bankList = bankList?.get(position) + 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 + ) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) checkedPosition = holder.adapterPosition - + } else if (checkedPosition == -1) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } else if (checkedPosition == holder.adapterPosition) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + } else { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) } + setOnClickListener { + onItemClickListener?.let { + it(bankList) + + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition + } + } } } - } - - - - } override fun getItemCount(): Int { - return bankList.size + return bankList?.size!! } + private var onItemClickListener: ((ClientBanklist) -> Unit)? = null - private var onItemClickListener:((BankList) ->Unit)?=null - - fun setOnItemClickListener(listener:(BankList) -> Unit) - { - onItemClickListener= listener + fun setOnItemClickListener(listener: (ClientBanklist) -> Unit) { + onItemClickListener = listener } - - fun getSelected(): BankList? { + fun getSelected(): ClientBanklist? { return if (checkedPosition != -1) { - bankList[checkedPosition] + bankList?.get(checkedPosition) } else null } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt new file mode 100644 index 0000000..ff19bee --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt @@ -0,0 +1,74 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.GetCodes + +class CustomerListAdapter( + private val bankList: List? +) : RecyclerView.Adapter() { + inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) + val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + } + + private var checkedPosition: Int = -2 + + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.item_customer_list_preview, + parent, + false + ) + ) + } + + override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { + val bankList = bankList?.get(position) + if (bankList != null) { + holder.itemView.apply { + holder.tvBankName.text = bankList.Value + setOnClickListener { + onItemClickListener?.let { + it(bankList) + + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition + + } + } + } + } + } + } + + override fun getItemCount(): Int { + return bankList?.size!! + } + + private var onItemClickListener: ((GetCodes) -> Unit)? = null + + fun setOnItemClickListener(listener: (GetCodes) -> Unit) { + onItemClickListener = listener + } + + + fun getSelected(): GetCodes? { + return if (checkedPosition != -1) { + bankList?.get(checkedPosition) + } else null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt new file mode 100644 index 0000000..0bada10 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt @@ -0,0 +1,88 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.GetCodes + +class PaymentModeAdapter( + private val bankList: List?, + private val selectedAccount: String? = null +) : RecyclerView.Adapter() { + inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) + val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + } + + private var checkedPosition: Int = -2 + + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.item_payment_list_preview, + parent, + false + ) + ) + } + + override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { + val bankList = bankList?.get(position) + if (bankList != null) { + holder.itemView.apply { + holder.tvBankName.text = bankList.Value + + if (selectedAccount == bankList.Value && checkedPosition == -2 + ) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + checkedPosition = holder.adapterPosition + } else if (checkedPosition == -1) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } else if (checkedPosition == holder.adapterPosition) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + } else { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } + + setOnClickListener { + onItemClickListener?.let { + it(bankList) + + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition + + } + } + } + } + } + } + + override fun getItemCount(): Int { + return bankList?.size!! + } + + private var onItemClickListener: ((GetCodes) -> Unit)? = null + + fun setOnItemClickListener(listener: (GetCodes) -> Unit) { + onItemClickListener = listener + } + + + fun getSelected(): GetCodes? { + return if (checkedPosition != -1) { + bankList?.get(checkedPosition) + } else null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt new file mode 100644 index 0000000..4b12412 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt @@ -0,0 +1,39 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.Bank + +class RecommendedBankListAdapter( + private val bankList: List +) : RecyclerView.Adapter() { + + class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val txtYear: TextView + + init { + txtYear = view.findViewById(R.id.txtYear) + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { + val itemView: View = LayoutInflater.from(parent.context) + .inflate(R.layout.row_bank_list, parent, false) + return MyViewHolder(itemView) + } + + override fun onBindViewHolder(holder: MyViewHolder, position: Int) { + val bank: Bank = bankList[position] + holder.txtYear.text = bank.BankName + + } + + override fun getItemCount(): Int { + return bankList.size + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt index d89586a..aaa5a11 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt @@ -26,7 +26,7 @@ class ApiClient { .client(client) .build() } - val getApiClient by lazy { + val getApiClient: ApiInterface by lazy { client.create(ApiInterface::class.java) } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 4fb702d..f8a0f7c 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -8,76 +8,156 @@ import retrofit2.http.* interface ApiInterface { - @POST("GetRates") - suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response - - @POST("CheckFDCKYC") - suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("CreateFDApplication") - suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("DocumentsUpload") - suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("SaveFDOtherData") - suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("GetFDDetails") - suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("UpdateFDPaymentStatus") - suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("FinaliseFD") - suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("FinaliseKYC") - suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response - - @POST("PaymentRequery") - suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response + @POST("WebApi_Bajaj/api/GetRates") + suspend fun getRates( + @Body getRatesRequest: GetRatesRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/CheckFDCKYC") + suspend fun checkFDKYC( + @Body checkFDKYCRequest: CheckFDKYCRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/CreateFDApplication") + suspend fun createFDApp( + @Body createFDRequest: CreateFDRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/DocumentsUpload") + suspend fun documentsUpload( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/SaveFDOtherData") + suspend fun saveFDOtherData( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetFDDetails") + suspend fun getFDDetails( + @Body requestBody: GetFDDetailsRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/UpdateFDPaymentStatus") + suspend fun updateFDPaymentStatus( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/FinaliseFD") + suspend fun finaliseFD( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/FinaliseKYC") + suspend fun finaliseKYC( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/PaymentRequery") + suspend fun paymentReQuery( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response // @FormUrlEncoded - @POST("GetCodes") - suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response - - @POST("CalculateFDMaturityAmount") - suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response - - @POST("api/PanCheck_S") - suspend fun panCheckApi(@Body panCheck: PanCheckRequest, @Header("token") token: String): Response - - @POST("getFDStepsCount") - suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response - - @POST("api/GetClientDetailV2_S") - suspend fun getClientDetails(@Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String): Response - - - @POST("GetCodes") - suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - - @POST("api/GetStateMaster") - suspend fun stateApi( @Header("token") token: String): Response - - @POST("api/GetCity") - suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response - + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun getCodes( + @Body requestBody: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/CalculateFDMaturityAmount") + suspend fun getCalculateFDMaturityAmount( + @Body requestBody: GetMaturityAmountRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/PanCheck_S") + suspend fun panCheckApi( + @Body panCheck: PanCheckRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/getFDStepsCount") + suspend fun getFDStepsCount( + @Body fdStepsCountRequest: FDStepsCountRequest, + @Header("token") token: String + ): Response + + @POST("WebApi/api/GetClientDetailV2_S") + suspend fun getClientDetails( + @Body getClientDetailsRequest: getClientDetailsRequest, + @Header("token") token: String + ): Response + + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun titleApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun genderApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun annualIncomeApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun relationShipApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun maritalStatusApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun occupationApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + + @POST("WebApi_Bajaj/api/GetStateMaster") + suspend fun stateApi(@Header("token") token: String): Response + + @POST("WebApi_Bajaj/api/GetCity") + suspend fun cityApi( + @Body cityRequest: CityRequest, + @Header("token") token: String + ): Response + + @GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj") + suspend fun bankListApi(@Header("token") token: String): Response + + @GET("WebApi/api/GetIFSC_Autofill?prefix={prefix}") + suspend fun getIFSCApi(@Path("prefix") ifsc : String): Response + + @GET("WebApi/api/GetBankDetailsFromIFSC?") + suspend fun getIFSCDetailsApi(@Query("ifsc") ifsc : String,@Header("token") token: String): Response + + @POST("WebApi_Bajaj/api/GetCodes") + suspend fun payModeApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt index 276b718..94538dc 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt @@ -4,7 +4,7 @@ import com.nivesh.production.bajajfd.model.CreateFDRequest interface BajajFDInterface { fun stepOneApi(data: String?) - fun stepTwoApi(data: String?) - fun stepThreeApi(data: String?) + fun stepTwoApi(data: CreateFDRequest) + fun stepThreeApi(data: CreateFDRequest) fun stepFourApi(data: String?) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Bank.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Bank.kt new file mode 100644 index 0000000..b0a0931 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Bank.kt @@ -0,0 +1,6 @@ +package com.nivesh.production.bajajfd.model + +data class Bank( + val BankName: String, + val IFSC4Mapping: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CheckFDKYCRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CheckFDKYCRequest.kt new file mode 100644 index 0000000..ad4924a --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CheckFDKYCRequest.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class CheckFDKYCRequest( + var DOB: String? ="", + var Mobile: String? = "", + var NiveshClientCode: String? = "", + var PAN: String?= "" +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt new file mode 100644 index 0000000..52e87e8 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt @@ -0,0 +1,11 @@ +package com.nivesh.production.bajajfd.model + +data class ClientBanklist( + val AccountNumber: String?, + val AccountType: String?, + val BankName: String?, + val BranchName: String?, + val DefaultBankFlag: String?, + val IFSCCode: String?, + val IsValBank: Int? = 0 +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt new file mode 100644 index 0000000..3465640 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class CreateFDApplicationResponse( + val Response: ResponseXXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt index 499aa70..bdf0cbb 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt @@ -3,15 +3,15 @@ package com.nivesh.production.bajajfd.model import java.io.Serializable data class DataObject( - val BSE_State_Code: String, - val CAMS_statecode: String, - val Country_Id: Int, - val State_Code: String, - val State_Id: Int, - val State_Name: String, - val signzyCode: String + var BSE_State_Code: String? = "", + var CAMS_statecode: String? = "", + var Country_Id: Int? = 0, + var State_Code: String?= "", + var State_Id: Int? = 0, + var State_Name: String? = "", + var signzyCode: String? = "" ): Serializable { override fun toString(): String { - return State_Name + return State_Name.toString() } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt index 82953a8..d7b0b88 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt @@ -7,5 +7,6 @@ data class DeviceInfo( var device_name: String? ="", var device_os_version: String? = "", var device_token: String? = "", - var device_type: String? = "" + var device_type: String? = "", + var device_id_for_UMSId : String? = "" ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt new file mode 100644 index 0000000..fd4ee1d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class DocumentUpload( + val Description: String? = null, + val DocumentType: String? = null, + val FDProvider: String? = null, + val ImageEncodeToBase64: String? = null, + val NiveshClientCode: String? = null, + val UniqueId: String? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt new file mode 100644 index 0000000..a2c80e2 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt @@ -0,0 +1,6 @@ +package com.nivesh.production.bajajfd.model + +data class Errors( + val ErrorCode: Int, + val ErrorMessage: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt new file mode 100644 index 0000000..2d4524c --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class FDCreationDetailsResponse( + val DocumentUploadFlag: Int, + val UniqueId: String, + val kycFlag: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt new file mode 100644 index 0000000..325e7e6 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt @@ -0,0 +1,12 @@ +package com.nivesh.production.bajajfd.model + +data class FDDataResponse( + val FDAmount: Double, + val Frequency: String, + val ParameterName: String, + val PaymentUrl: String, + val RateOfInterest: Double, + val Tenure: Int, + val UniqueId: String, + val Value: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt index a93541e..e8c7329 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt @@ -5,7 +5,7 @@ data class GetCodes( val Value: String ) { override fun toString(): String { - return Value + return Label } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDBankListResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDBankListResponse.kt new file mode 100644 index 0000000..cebf1e3 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDBankListResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class GetFDBankListResponse( + val Response: ResponseXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt new file mode 100644 index 0000000..7cde245 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class GetFDDetailsRequest( + var FDProvider: String? = "", + var NiveshClientCode: String? = "", + var UniqueId: String? = "" +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt new file mode 100644 index 0000000..15f4af7 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class GetFDDetailsResponse( + val Response: ResponseXXXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeListResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeListResponse.kt new file mode 100644 index 0000000..7e31899 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeListResponse.kt @@ -0,0 +1,6 @@ +package com.nivesh.production.bajajfd.model + +data class GetIFSCCodeListResponse( + val IFSCCodes: MutableList, + val Response: ResponseXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt new file mode 100644 index 0000000..e648098 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt @@ -0,0 +1,10 @@ +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 +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt index fa142c3..ae043f7 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt @@ -4,5 +4,6 @@ data class ObjectResponse( val TransactionCount: Int, val clientDetails: ClientDetails, val languageid: Int, - val membersList: List + val membersList: List, + val ClientBanklist : List ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt index 64ebb11..c479c7f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt @@ -1,5 +1,7 @@ +import com.nivesh.production.bajajfd.model.Errors + data class Response( - val Errors: List, + val Errors: List, val Message: String, var ROIDatalist: MutableList, val Status: String, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt index e81f28d..0d08d82 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseX( - val Errors: List, + val Errors: List, val GetCodesList: List, val Message: String, val Status: String, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt index 69077da..1ec3e62 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXX( - val Errors: Any, + val Errors: List, val MaturityAmount: Double, val Message: String, val Status: String, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt index 89521d8..0c37922 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXXXX( - val Errors: Any, + val Errors: List, val Message: String, val Status: String, val StatusCode: Int, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt new file mode 100644 index 0000000..a48dfa5 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXX( + val BankList: List, + val Errors: List, + val Message: String, + val Status: String, + val StatusCode: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt new file mode 100644 index 0000000..128fad0 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXX( + val message: String, + val status: String, + val status_code: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXX.kt new file mode 100644 index 0000000..092b2f9 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXX.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXX( + val message: String, + val status: String, + val status_code: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt new file mode 100644 index 0000000..cf7ddc5 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXX( + val Errors: List, + val FDCreationDetailsResponse: FDCreationDetailsResponse, + val Message: String, + val Status: String, + val StatusCode: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt new file mode 100644 index 0000000..4bacf38 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXXX( + val Errors: Any, + val FDDataResponse: FDDataResponse, + val Message: String, + val Status: String, + val StatusCode: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt index af2dc2e..b6a37e6 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt @@ -5,6 +5,6 @@ data class UserRequest( var IPAddress: String? = "", var LoggedInRoleId: Int = 0, var Source: String? = "", - var UID: String? = "", + var UID: Int? = 0, var deviceInfo: DeviceInfo? = null ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt index d377c17..a60896a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt @@ -1,8 +1,8 @@ package com.nivesh.production.bajajfd.model data class getClientDetailsResponse( -// val DataObject: Any ? = "", -// val Message: Any = "", - var ObjectResponse: ObjectResponse? = null, - var response: ResponseXXXXXXX? = null +// val DataObject: Any ?, +// val Message: Any, + val ObjectResponse: ObjectResponse? = null, + val response: ResponseXXXXXXX? = null ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index 8d937e4..35b059f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -7,20 +7,24 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) - suspend fun getCodesResponse(requestBody: GetCodeRequest , token: String) = + suspend fun getCodesResponse(requestBody: GetCodeRequest, token: String) = apiInterface.getCodes(requestBody, token) - suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest , token: String) = + + suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) = apiInterface.getFDStepsCount(requestBody, token) - suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest , token: String) = + suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) = apiInterface.getClientDetails(getClientDetails, token) - suspend fun createCalculateFDMaturityAmount(requestBody: GetMaturityAmountRequest, token: String) = + suspend fun createCalculateFDMaturityAmount( + requestBody: GetMaturityAmountRequest, + token: String + ) = apiInterface.getCalculateFDMaturityAmount(requestBody, token) - suspend fun checkFDKYCResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) + suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) = + apiInterface.createFDApp(createFDRequest, token) suspend fun documentsUploadResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) @@ -28,8 +32,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) - suspend fun getFDDetailsResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) + suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) = + apiInterface.getFDDetails(getRatesRequest, token) suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) @@ -64,8 +68,25 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun occupationCheck(getCodeRequest: GetCodeRequest, token: String) = apiInterface.occupationApi(getCodeRequest, token) - suspend fun stateCheck( token: String) = - apiInterface.stateApi( token) + suspend fun stateCheck(token: String) = + apiInterface.stateApi(token) + suspend fun cityCheck(cityRequest: CityRequest, token: String) = apiInterface.cityApi(cityRequest, token) + + suspend fun bankListCheck(token: String) = + apiInterface.bankListApi(token) + + suspend fun ifscCodeCheck(str: String) = + apiInterface.getIFSCApi(str) + + suspend fun ifscCodeDetailsCheck(str: String, token: String) = + apiInterface.getIFSCDetailsApi(str, token) + + suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = + apiInterface.payModeApi(getCodeRequest, token) + + suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) = + apiInterface.checkFDKYC(checkFDKYCRequest, token) + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 02b8634..88b6ba0 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -18,7 +18,9 @@ import com.nivesh.production.bajajfd.ui.fragment.* import com.nivesh.production.bajajfd.ui.providerfactory.* import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape +import com.nivesh.production.bajajfd.util.Common.Companion.getDate import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape +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.* @@ -41,12 +43,15 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var fdBankDetails: FdBankDetails var nomineeDetails: NomineeDetails var nomineeGuardianDetails: NomineeGuardianDetails - var getClientDetailsResponse : getClientDetailsResponse + var getClientDetailsResponse: getClientDetailsResponse + + private var stepCount: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() } + init { getClientDetailsResponse = getClientDetailsResponse() createFDRequest = CreateFDRequest() @@ -65,24 +70,31 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { binding = ActivityBajajFdBinding.inflate(layoutInflater) setContentView(binding.root) - -// createFDRequest = CreateFDRequest() -// createFDApplicantRequest = CreateFDApplicationRequest() -// -// fdInvestmentDetails = FDInvestmentDetails() -// applicantDetails = ApplicantDetails() -// applicantRelationDetails = ApplicantRelationDetails() -// fdBankDetails = FdBankDetails() -// nomineeDetails = NomineeDetails() -// nomineeGuardianDetails = NomineeGuardianDetails() - //start Repository - viewModel = ViewModelProvider(this, FDModelProviderFactory(MainRepository(ApiClient.getApiClient)))[BajajFDViewModel::class.java] - stepOneBajajFDViewModel = ViewModelProvider(this, StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepOneBajajFDViewModel::class.java] - stepTwoBajajFDViewModel = ViewModelProvider(this, StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepTwoBajajFDViewModel::class.java] - stepThreeBajajFDViewModel = ViewModelProvider(this, StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepThreeBajajFDViewModel::class.java] - stepFourBajajFDViewModel = ViewModelProvider(this, StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFourBajajFDViewModel::class.java] - stepFiveBajajFDViewModel = ViewModelProvider(this, StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFiveBajajFDViewModel::class.java] + viewModel = ViewModelProvider( + this, + FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[BajajFDViewModel::class.java] + stepOneBajajFDViewModel = ViewModelProvider( + this, + StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[StepOneBajajFDViewModel::class.java] + stepTwoBajajFDViewModel = ViewModelProvider( + this, + StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[StepTwoBajajFDViewModel::class.java] + stepThreeBajajFDViewModel = ViewModelProvider( + this, + StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[StepThreeBajajFDViewModel::class.java] + stepFourBajajFDViewModel = ViewModelProvider( + this, + StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[StepFourBajajFDViewModel::class.java] + stepFiveBajajFDViewModel = ViewModelProvider( + this, + StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)) + )[StepFiveBajajFDViewModel::class.java] if (Common.isNetworkAvailable(this)) { getStepsCountApi() @@ -93,7 +105,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } } - private fun getStepsCountApi(){ + private fun getStepsCountApi() { val fdStepsCount = FDStepsCountRequest() fdStepsCount.FDProvider = getString(R.string.bajaj) fdStepsCount.NiveshClientCode = "8872" @@ -107,18 +119,22 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { stepsCountResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + stepCount = stepsCountResponse.Response.StepsCount getClientDetailsApi(stepsCountResponse.Response.StepsCount) - // setViewPager(stepsCountResponse.Response.StepsCount) } - // 650 -> refreshToken() - else -> {} + 650 -> refreshToken(fdStepsCount) + else -> { + showDialogValidation( + this@BajajFdMainActivity, + stepsCountResponse.Response.Errors[0].ErrorMessage + ) + } } } } - is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -128,51 +144,66 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } } + private fun refreshToken(fdStepsCount: FDStepsCountRequest) { + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { + + } + } + + private fun getClientDetailsApi(stepsCount: Int) { - if (Common.isNetworkAvailable(this@BajajFdMainActivity)){ - val getClientDetailsRequest = getClientDetailsRequest() + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { + val getClientDetailsRequest = getClientDetailsRequest() getClientDetailsRequest.client_code = "8872" - getClientDetailsRequest.AppOrWeb = "App" - getClientDetailsRequest.sub_broker_code = "1014" + getClientDetailsRequest.AppOrWeb = getString(R.string.app) + getClientDetailsRequest.sub_broker_code = "1038" val userRequest = UserRequest() - userRequest.UID = "19060" + userRequest.UID = 19060 userRequest.IPAddress = "" - userRequest.Source = "Nivesh" - userRequest.AppOrWeb = "App" + userRequest.Source = getString(R.string.source) + userRequest.AppOrWeb = getString(R.string.app) userRequest.LoggedInRoleId = 5 val deviceInfo = DeviceInfo() deviceInfo.device_id = "" + deviceInfo.device_id_for_UMSId = "" + deviceInfo.device_type = getString(R.string.app) deviceInfo.device_model = "" deviceInfo.device_token = "" deviceInfo.device_name = "" - deviceInfo.app_version = "2.44.13" - deviceInfo.device_os_version = "Android 11" + deviceInfo.app_version = "" + deviceInfo.device_os_version = "" userRequest.deviceInfo = deviceInfo getClientDetailsRequest.UserRequest = userRequest - Log.e("getClientDetailRequest","-->"+Gson().toJson(getClientDetailsRequest)) + Log.e("getClientDetailRequest", "-->" + Gson().toJson(getClientDetailsRequest)) viewModel.getClientDetails(getClientDetailsRequest, token) viewModel.getClientDetailsMutableData.observe(this) { response -> when (response) { is Resource.Success -> { Log.e("response", "-->$response") - getClientDetailsResponse = - Gson().fromJson(response.data?.toString(), getClientDetailsResponse::class.java) + getClientDetailsResponse = + Gson().fromJson( + response.data?.toString(), + getClientDetailsResponse::class.java + ) getClientDetailsResponse.response?.status_code.let { code -> when (code) { 200 -> { setViewPager(stepsCount) + checkFDCKYCApi() } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation(this@BajajFdMainActivity, response.message) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -263,6 +294,61 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } + private fun checkFDCKYCApi() { + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { + if (getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!!) { + val checkFDKYCRequest = CheckFDKYCRequest() + checkFDKYCRequest.Mobile = + getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE + checkFDKYCRequest.DOB = + getDate(getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB!!) + checkFDKYCRequest.PAN = + getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN + checkFDKYCRequest.NiveshClientCode = + getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() + stepOneBajajFDViewModel.checkFDKYC( checkFDKYCRequest, token) + stepOneBajajFDViewModel.getFDKYCMutableData.observe(this) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson( + response.data?.toString(), + GetCodeResponse::class.java + ) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + + fdInvestmentDetails.CustomerType = "" + } + // 650 -> refreshToken() + else -> { + showDialogValidation( + this@BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + showDialogValidation(this@BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + } + } + + } + + // set background for selected/ default step private fun setBackground( drawable: Drawable?, @@ -283,15 +369,23 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } // step 2 response - override fun stepTwoApi(data: String?) { + override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - binding.viewPager.currentItem = 2 + if (stepCount == 4) { + // go to step 3 image Upload + binding.viewPager.currentItem = 2 + } else { + // call create fd api bypass step 3 + createFDApi(data, 2) + } } + // step 3 response - override fun stepThreeApi(data: String?) { + override fun stepThreeApi(data: CreateFDRequest) { Log.e("stepThreeApi", " response ---> $data") - binding.viewPager.currentItem = 3 + // call create fd api + createFDApi(data, 3) } // step 4 response @@ -300,4 +394,51 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { binding.viewPager.currentItem = 4 } + private fun createFDApi(data: CreateFDRequest, currentItem: Int) { + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { + + viewModel.createFDApi(data, token) + viewModel.getFDResponseMutableData.observe(this) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val createFDApplicationResponse: CreateFDApplicationResponse = + Gson().fromJson( + response.data?.toString(), + CreateFDApplicationResponse::class.java + ) + createFDApplicationResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + binding.viewPager.currentItem = currentItem + StepFourBajajFDFragment.getInstance(this) + .getFDData(createFDApplicationResponse) + } + // 650 -> refreshToken() + else -> { + showDialogValidation( + this@BajajFdMainActivity, + createFDApplicationResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + showDialogValidation(this@BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + + + } + + } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 903ca10..b6358b6 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -1,15 +1,23 @@ package com.nivesh.production.bajajfd.ui.fragment import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import com.google.gson.Gson import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.adapter.CustomerListAdapter import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation +import com.nivesh.production.bajajfd.util.Constants +import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel class StepFourBajajFDFragment : Fragment() { @@ -17,6 +25,7 @@ class StepFourBajajFDFragment : Fragment() { private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null private val binding get() = _binding!! + var uniqueId: String? = "" private lateinit var bajajFDInterface: BajajFDInterface @@ -48,41 +57,130 @@ class StepFourBajajFDFragment : Fragment() { binding.tvInterestPayout.text = "" binding.tvRateOfInterest.text = "" - - binding.swDirectorBajajFinance.setOnCheckedChangeListener { _, _ -> - - } - binding.swPromoterBajajFinance.setOnCheckedChangeListener { _, _ -> + binding.checkBox.setOnCheckedChangeListener { _, _ -> } - binding.swRelativeDirector.setOnCheckedChangeListener { _, _ -> + binding.btnNext.setOnClickListener { + if (binding.checkBox.isChecked) { + bajajFDInterface.stepFourApi("stepFourResponse") + } else { + showDialogValidation( + activity as BajajFdMainActivity, + resources.getString(R.string.validTermsConditions) + ) + } } - binding.swShareholder.setOnCheckedChangeListener { _, _ -> + return root + } - } - binding.swPoliticallyExposed.setOnCheckedChangeListener { _, _ -> + fun getFDData(createFDApplicationResponse: CreateFDApplicationResponse) { + uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId + // + getFDDetailsApi(uniqueId!!) + customerListApi() + } - } - binding.swCitizen.setOnCheckedChangeListener { _, _ -> + private fun customerListApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.customerCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { + setUpRecyclerView(getCodeResponse.Response.GetCodesList) + } + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } } - binding.checkBox.setOnCheckedChangeListener { _, _ -> + } - } + private fun setUpRecyclerView(getCustomerList: List) { + binding.rvTerms.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) + val customerListAdapter = CustomerListAdapter(getCustomerList) + binding.rvTerms.adapter = customerListAdapter + } - binding.btnNext.setOnClickListener { - if (binding.checkBox.isChecked) { - bajajFDInterface.stepThreeApi("stepThreeResponse") - }else{ - showDialogValidation(activity as BajajFdMainActivity, resources.getString(R.string.validTermsConditions)) + private fun getFDDetailsApi(uniqueId: String) { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getFDDetailsRequest = GetFDDetailsRequest() + getFDDetailsRequest.FDProvider = getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.UniqueId = uniqueId + stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) + stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getFDDetailsResponse: GetFDDetailsResponse = + Gson().fromJson( + response.data?.toString(), + GetFDDetailsResponse::class.java + ) + getFDDetailsResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + binding.tvInvestedAmount.text = + getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString() + binding.tvTenure.text = + getFDDetailsResponse.Response.FDDataResponse.Tenure.toString() + binding.tvInterestPayout.text = + getFDDetailsResponse.Response.FDDataResponse.Frequency + binding.tvRateOfInterest.text = + getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString() + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } } + } - return root } + override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index 7387d34..fbe5465 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -73,6 +73,7 @@ class StepOneBajajFDFragment : Fragment() { listOfMinAmount = ArrayList() listOfMaxAmount = ArrayList() listOfFrequency = ArrayList() + rgMaturity = RadioButton(activity as BajajFdMainActivity) // Amount binding.edtAmount.addTextChangedListener(object : TextWatcher { @@ -103,7 +104,6 @@ class StepOneBajajFDFragment : Fragment() { } } - // Tenure binding.spTenure.setOnItemClickListener { _, _, position, _ -> removeError(binding.tlInterestTenure) @@ -122,6 +122,7 @@ class StepOneBajajFDFragment : Fragment() { } // Maturity Options + rgMaturity.text = getString(R.string.additionalDetailOne) binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> rgMaturity = group.findViewById(checkedId) Log.e("Maturity", "-->" + rgMaturity.text) @@ -132,7 +133,6 @@ class StepOneBajajFDFragment : Fragment() { Log.e("DeductTax", "-->" + binding.rbDeductTax.isChecked) } - // Next Button binding.btnNext.setOnClickListener { if (validation()) { @@ -160,13 +160,15 @@ class StepOneBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = "" (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" - (activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails + Log.e("Maturity", "-->" + rgMaturity.text) bajajFDInterface.stepOneApi("stepOneResponse") } } minAmountApi() interestPayoutApi() + return root } @@ -204,14 +206,19 @@ class StepOneBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -221,7 +228,6 @@ class StepOneBajajFDFragment : Fragment() { } } - private fun minAmountApi() { val getCodeRequest = GetCodeRequest() getCodeRequest.ProductName = getString(R.string.bajajFD) @@ -247,14 +253,19 @@ class StepOneBajajFDFragment : Fragment() { maxAmountApi() } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -283,14 +294,19 @@ class StepOneBajajFDFragment : Fragment() { listOfMaxAmount = getCodeResponse.Response.GetCodesList } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -300,7 +316,6 @@ class StepOneBajajFDFragment : Fragment() { } } - private fun setUpRecyclerView() { recyclerViewDropDownAdapter = HorizontalRecyclerViewAdapter( @@ -320,7 +335,6 @@ class StepOneBajajFDFragment : Fragment() { binding.rvTenure.adapter = recyclerViewDropDownAdapter } - private fun maturityAmountApi(tenure: Int, interest: Double) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) { @@ -349,7 +363,10 @@ class StepOneBajajFDFragment : Fragment() { } // 650 -> refreshToken() else -> { - + Common.showDialogValidation( + activity as BajajFdMainActivity, + getMaturityAmountResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -357,7 +374,7 @@ class StepOneBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -369,7 +386,6 @@ class StepOneBajajFDFragment : Fragment() { } } - private fun validation(): Boolean { return if (binding.edtAmount.text.toString().isEmpty()) { commonErrorMethod( @@ -464,14 +480,19 @@ class StepOneBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getRatesResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -486,5 +507,4 @@ class StepOneBajajFDFragment : Fragment() { super.onDestroyView() _binding = null } - } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 1c019b8..45290d2 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -1,23 +1,53 @@ package com.nivesh.production.bajajfd.ui.fragment +import android.Manifest +import android.app.ActionBar.LayoutParams +import android.app.Dialog +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.net.Uri import android.os.Bundle +import android.provider.MediaStore +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.ImageView +import android.widget.TextView +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.core.content.FileProvider import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider -import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import androidx.lifecycle.lifecycleScope +import com.google.gson.Gson +import com.nivesh.production.bajajfd.BuildConfig +import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding +import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Constants +import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel +import java.io.File class StepThreeBajajFDFragment : Fragment() { - private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel + private var latestTmpUri: Uri? = null private var _binding: FragmentBajajfdStepThreeBinding? = null private val binding get() = _binding!! + private lateinit var listOfDocType: List private lateinit var bajajFDInterface: BajajFDInterface + private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel + + private lateinit var dialog: Dialog + companion object { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { val stepTwoFragment = StepThreeBajajFDFragment() @@ -25,10 +55,38 @@ class StepThreeBajajFDFragment : Fragment() { return stepTwoFragment } } + private fun setApi(bajajFDInterfaces: BajajFDInterface) { bajajFDInterface = bajajFDInterfaces } + private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) + { uri -> + val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri) + binding.iv.setImageBitmap(bitmap) + } + + private val takeImageResult = + registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> + if (isSuccess) { + latestTmpUri?.let { uri -> +// binding.iv.setImageURI(uri) + uploadDocument() + } + } + } + + private val requestPermission = registerForActivityResult( + ActivityResultContracts.RequestPermission() + ) { isGranted: Boolean -> + if (isGranted) { + Log.e("permission:", "Granted") + } else { + Log.e("permission:", "Denied") + } + } + + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -36,24 +94,221 @@ class StepThreeBajajFDFragment : Fragment() { _binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false) val root = binding.root + stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel - - binding.btnNext.setOnClickListener{ - if (validate()){ - + binding.btnNext.setOnClickListener { + if (validate()) { + // + // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) } } - binding.btnBack.setOnClickListener{ + binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 } + + binding.btnAadhaarFrontUpload.setOnClickListener { + selectImage() + } + + binding.spDocType.onItemClickListener = + AdapterView.OnItemClickListener { parent, _, position, _ -> + + val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes + when (getCodes.Value) { + resources.getString(R.string.aadhar) -> + setAadhaarUploadLayout() + else -> { + setOtherUploadLayout(getCodes.Value) + } + } + } + + docTypeApi() return root } - private fun validate(): Boolean { + private fun selectImage() { + 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() + when { + ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.READ_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED -> { + selectImageIntent.launch("image/*") + } + + ActivityCompat.shouldShowRequestPermissionRationale( + activity as BajajFdMainActivity, + Manifest.permission.READ_EXTERNAL_STORAGE + ) -> { + requestPermission.launch( + Manifest.permission.READ_EXTERNAL_STORAGE + ) + } + + else -> { + requestPermission.launch( + Manifest.permission.READ_EXTERNAL_STORAGE + ) + } + } + } + + tvCamera.setOnClickListener { + dialog.cancel() + when { + ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.CAMERA + ) == PackageManager.PERMISSION_GRANTED -> { + takeImage() + } + + ActivityCompat.shouldShowRequestPermissionRationale( + activity as BajajFdMainActivity, + Manifest.permission.CAMERA + ) -> { + requestPermission.launch( + Manifest.permission.CAMERA + ) + } + else -> { + requestPermission.launch( + Manifest.permission.CAMERA + ) + } + } + } + + dialog.show() + dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) + } + + private fun checkCameraStoragePermission( + permission: String, + selectImageIntent: ActivityResultLauncher + ) { + TODO("Not yet implemented") + } + + private fun setOtherUploadLayout(itemName: String) { + binding.tvAadhaarFront.text = itemName.plus(" Front *") + if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = + View.INVISIBLE + if (binding.btnAadhaarBackUpload.visibility == View.VISIBLE) binding.btnAadhaarBackUpload.visibility = + View.INVISIBLE + } + + private fun setAadhaarUploadLayout() { + binding.tvAadhaarFront.text = resources.getString(R.string.aadhaarFront) + binding.tvAadhaarBack.text = resources.getString(R.string.aadhaarBack) + + binding.tvAadhaarBack.visibility = View.VISIBLE + binding.btnAadhaarBackUpload.visibility = View.VISIBLE + + binding.tvAadhaarFront.visibility = View.VISIBLE + binding.btnAadhaarFrontUpload.visibility = View.VISIBLE + } + + private fun uploadDocument() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val documentUpload = DocumentUpload() + } + } + + private fun docTypeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.docType) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token) + stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfDocType = getCodeResponse.Response.GetCodesList + if (listOfDocType.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfDocType + ) + binding.spDocType.setAdapter(adapter) + binding.spDocType.setText( + adapter.getItem(0)?.Value, + false + ) + setOtherUploadLayout(listOfDocType[0].Value) + } + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + } + } + + + private fun validate(): Boolean { return false } + private fun takeImage() { + lifecycleScope.launchWhenStarted { + getTmpFileUri().let { uri -> + latestTmpUri = uri + takeImageResult.launch(uri) + } + } + } + + private fun getTmpFileUri(): Uri { + val tmpFile = + File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply { + createNewFile() + deleteOnExit() + } + + return FileProvider.getUriForFile( + requireActivity(), + "${BuildConfig.APPLICATION_ID}.provider", + tmpFile + ) + } + + + override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 47b79a1..20e4403 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.ui.fragment -import android.annotation.SuppressLint import android.app.DatePickerDialog +import android.app.Dialog import android.os.Bundle import android.text.Editable import android.text.InputFilter @@ -9,22 +9,28 @@ import android.text.InputFilter.LengthFilter import android.text.TextWatcher import android.util.Log import android.view.LayoutInflater -import android.view.MotionEvent import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ArrayAdapter import android.widget.RadioButton -import android.widget.Toast +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.google.android.material.textfield.TextInputEditText import com.google.gson.Gson import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.adapter.BankListAdapter +import com.nivesh.production.bajajfd.adapter.PaymentModeAdapter +import com.nivesh.production.bajajfd.adapter.RecommendedBankListAdapter import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity 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 import com.nivesh.production.bajajfd.util.Common.Companion.getDate @@ -33,6 +39,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidName import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.removeError +import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel @@ -55,10 +62,17 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var listOfRelationShip: List private lateinit var listOfMaritalStatus: List private lateinit var listOfOccupation: List + private lateinit var listOfPayMode: List + private lateinit var listOfStates: List private lateinit var listOfCities: List + private lateinit var listOfIFSC: MutableList + private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel + private lateinit var bankListAdapter: BankListAdapter + private lateinit var paymentModeAdapter: PaymentModeAdapter + private lateinit var stateObject: DataObject companion object { fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment { @@ -88,6 +102,13 @@ class StepTwoBajajFDFragment : Fragment() { listOfMaritalStatus = ArrayList() listOfOccupation = ArrayList() listOfStates = ArrayList() + listOfIFSC = ArrayList() + listOfPayMode = ArrayList() + + stateObject = DataObject() + + rbPaymentMode = RadioButton(activity as BajajFdMainActivity) + // Personal Details binding.edtMobileNumber.filters = arrayOf(LengthFilter(10)) binding.edtPANNumber.filters = arrayOf(LengthFilter(10)) @@ -107,9 +128,11 @@ class StepTwoBajajFDFragment : Fragment() { } }) binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) - + binding.edtMobileNumber.setSelection(binding.edtMobileNumber.text.toString().length) // create an OnDateSetListener - binding.edtDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()) { + binding.edtDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.toString())) + } binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) datePicker(binding.edtDOB) @@ -137,11 +160,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlTitle) } - val splitStringName = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split( - "\\s".toRegex() - )?.toTypedArray() - binding.edtFirstName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -154,8 +172,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlFirstName) } }) - binding.edtFirstName.setText(splitStringName?.get(0).toString()) - binding.edtMiddleName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -168,8 +184,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMiddleName) } }) - binding.edtMiddleName.setText(splitStringName?.get(1).toString()) - binding.edtLastName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -182,7 +196,25 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlLastName) } }) - binding.edtLastName.setText(splitStringName?.get(2).toString()) + + val splitStringName = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split( + "\\s".toRegex() + )?.toTypedArray() + when (splitStringName?.size) { + 1 -> { + binding.edtFirstName.setText(splitStringName[0]) + } + 2 -> { + binding.edtFirstName.setText(splitStringName[0]) + binding.edtLastName.setText(splitStringName[1]) + } + 3 -> { + binding.edtFirstName.setText(splitStringName[0]) + binding.edtMiddleName.setText(splitStringName[1]) + binding.edtLastName.setText(splitStringName[2]) + } + } binding.spGender.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlGender) @@ -223,23 +255,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMarital) } - binding.spRelation.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlRelation) - } - - binding.edtRelationName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlRelationName) - } - }) - binding.edtAddressLine1.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -252,6 +267,7 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlAddressLine1) } }) + binding.edtAddressLine1.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD1) binding.edtAddressLine2.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -264,6 +280,7 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlAddressLine2) } }) + binding.edtAddressLine2.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD2) binding.edtAddressLine3.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -276,9 +293,11 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlAddressLine3) } }) + binding.edtAddressLine3.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD3) - binding.spState.setOnItemClickListener { _, _, _, _ -> + binding.spState.setOnItemClickListener { parent, _, position, _ -> removeError(binding.tlState) + stateObject = parent.getItemAtPosition(position) as DataObject } binding.spCity.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlCity) @@ -295,11 +314,13 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlPinCode) } }) + binding.edtPinCode.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PINCODE) // Nominee Details binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ -> binding.tlNomineeTitle.error = null } + binding.edtNomineeFirstName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -336,14 +357,53 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlNomineeLastName) } }) + + val splitNomineeName = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeName?.split( + "\\s".toRegex() + )?.toTypedArray() + when (splitNomineeName?.size) { + 1 -> { + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + } + 2 -> { + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + binding.edtNomineeLastName.setText(splitNomineeName[1]) + } + 3 -> { + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + binding.edtNomineeMiddleName.setText(splitNomineeName[1]) + binding.edtNomineeLastName.setText(splitNomineeName[2]) + } + } + + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeDOB.isNullOrEmpty() + ) { + binding.edtNomineeDOB.setText( + getDate( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeDOB.toString() + ) + ) + } binding.edtNomineeDOB.setOnClickListener { removeError(binding.tlNomineeDOB) datePicker(binding.edtNomineeDOB) } + + binding.spNomineeRelation.setText( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeRelationship + ) binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlNomineeRelation) } - binding.cbNomineeSameAddress.setOnCheckedChangeListener { _, _ -> } @@ -361,6 +421,12 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlGuardianName) } }) + binding.edtGuardianName.setText( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeGuardian + ) + binding.edtGuardianAge.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -373,9 +439,11 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlGuardianAge) } }) + binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlGuardianRelation) } + binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -418,6 +486,7 @@ class StepTwoBajajFDFragment : Fragment() { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { removeError(binding.tlIFSC) + ifscCodeCheckApi(s.toString()) } }) binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { @@ -457,12 +526,43 @@ class StepTwoBajajFDFragment : Fragment() { } }) - binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> - rbPaymentMode = group.findViewById(checkedId) - Log.e("paymentMode", "-->" + rbPaymentMode.text) + binding.btnAddBank.setOnClickListener { + if (validateBank()) { + /// as + } + } + +// rbPaymentMode.text = getString(R.string.Upi) +// binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> +// rbPaymentMode = group.findViewById(checkedId) +// Log.e("paymentMode", "-->" + rbPaymentMode.text) +// } + + binding.tvEligibleBankOption.setOnClickListener { + apiForEligibleBankList() + } + + if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) { + binding.llBankDetails.visibility = View.VISIBLE + } else { + binding.llBankDetails.visibility = View.GONE + } + + + + binding.addBankDetail.setOnClickListener { + if (binding.llBankDetails.visibility == View.GONE) { + binding.llBankDetails.visibility = View.VISIBLE + } else { + binding.llBankDetails.visibility = View.GONE + } } + titleApi() + + setUpRecyclerView() + binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { binding.llPersonalDetail.visibility = View.GONE @@ -485,7 +585,6 @@ class StepTwoBajajFDFragment : Fragment() { } } - titleApi() binding.btnNext.setOnClickListener { if (validation()) { // Applicant Details @@ -521,12 +620,14 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtAddressLine3.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantCity = binding.spCity.text.toString() + // (activity as BajajFdMainActivity).applicantDetails.ApplicantState = binding.spState.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantState = - binding.spState.text.toString() + stateObject.State_Code (activity as BajajFdMainActivity).applicantDetails.ApplicantCountry = "India" (activity as BajajFdMainActivity).applicantDetails.ApplicantPincode = binding.edtPinCode.text.toString().toInt() - (activity as BajajFdMainActivity).applicantDetails.AnnualIncome = "" + (activity as BajajFdMainActivity).applicantDetails.AnnualIncome = + binding.spIncome.text.toString() // Applicant Relation Details (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantRelation = "" @@ -568,13 +669,22 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianSalutation = "" (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianName = binding.edtGuardianName.text.toString() - (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAge = - binding.edtGuardianAge.text.toString().toInt() + if (binding.edtGuardianAge.text.toString().isEmpty()) { + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAge = 0 + } else { + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAge = + binding.edtGuardianAge.text.toString().toInt() + } (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianCountry = "India" (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianCity = "" (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianState = "" - (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = - binding.edtGuardianPinCode.text.toString().toInt() + if (binding.edtGuardianPinCode.text.toString().isEmpty()) { + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = 0 + } else { + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = + binding.edtGuardianPinCode.text.toString().toInt() + } + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress1 = binding.edtGuardianAddress.text.toString() (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = "" @@ -582,29 +692,38 @@ class StepTwoBajajFDFragment : Fragment() { binding.spGuardianRelation.text.toString() // Applicant Bank Details - (activity as BajajFdMainActivity).fdBankDetails.AccountType = rbBank.text.toString() + (activity as BajajFdMainActivity).fdBankDetails.AccountType = + bankListAdapter.getSelected()?.AccountType (activity as BajajFdMainActivity).fdBankDetails.BankBranch = - binding.edtBankBranch.text.toString() + bankListAdapter.getSelected()?.BranchName (activity as BajajFdMainActivity).fdBankDetails.IFSCCode = - binding.edtIFSC.text.toString() + bankListAdapter.getSelected()?.IFSCCode (activity as BajajFdMainActivity).fdBankDetails.AccountNumber = - binding.edtAccountNumber.text.toString() + bankListAdapter.getSelected()?.AccountNumber (activity as BajajFdMainActivity).fdBankDetails.BankName = - binding.edtBankName.text.toString() + bankListAdapter.getSelected()?.BankName (activity as BajajFdMainActivity).fdBankDetails.PaymentMode = rbPaymentMode.text.toString() - (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.FdBankDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails = + (activity as BajajFdMainActivity).applicantDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = + (activity as BajajFdMainActivity).applicantRelationDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.FdBankDetails = + (activity as BajajFdMainActivity).fdBankDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeDetails = + (activity as BajajFdMainActivity).nomineeDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = + (activity as BajajFdMainActivity).nomineeGuardianDetails + + (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = + (activity as BajajFdMainActivity).createFDApplicantRequest Log.e( "CreateFDRequest", - "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDApplicantRequest) + "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) ) - bajajFDInterface.stepTwoApi("stepTwoResponse") + bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest) } } @@ -615,16 +734,177 @@ class StepTwoBajajFDFragment : Fragment() { return root } + private fun ifscCodeCheckApi(ifsc: String) { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + if (ifsc.length == 11) { + stepTwoBajajFDViewModel.ifscCodeApi(ifsc) + stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getIFSCCodeListResponse = + Gson().fromJson( + response.data?.toString(), + GetIFSCCodeListResponse::class.java + ) + getIFSCCodeListResponse.Response.status_code.let { code -> + when (code) { + 200 -> { + if (listOfIFSC.size > 0) { + listOfIFSC.clear() + } + listOfIFSC = getIFSCCodeListResponse.IFSCCodes + if (listOfIFSC.size > 0) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfIFSC + ) + binding.edtIFSC.setAdapter(adapter) + } + binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> + if (listOfIFSC.size > 0) { + binding.edtIFSC.setText(listOfIFSC[position]) + binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) + getIFSCDetailsApi(listOfIFSC[position]) + } + } + + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getIFSCCodeListResponse.Response.message + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation( + activity as BajajFdMainActivity, + message + ) + } + } + is Resource.Loading -> { + + } + } + } + } + } + } + + private fun getIFSCDetailsApi(ifscCode: String) { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + stepTwoBajajFDViewModel.ifscCodeDetailsApi(ifscCode, token) + stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + 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 + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + } + } + + private fun validateBank(): Boolean { + return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText + commonErrorAutoCompleteMethod( + binding.edtIFSC, + binding.tlIFSC, + getString(R.string.emptyIFSCCode) + ) + } else if (binding.edtIFSC.text.toString().length != 11) { // EditText + commonErrorAutoCompleteMethod( + binding.edtIFSC, + binding.tlIFSC, + getString(R.string.validIFSCCode) + ) + } else if (binding.edtAccountNumber.text.toString().isEmpty()) { // EditText + commonErrorMethod( + binding.edtAccountNumber, + binding.tlAccountNumber, + getString(R.string.emptyAccNo) + ) + } else if (binding.edtBankName.text.toString().isEmpty()) { // EditText + commonErrorMethod( + binding.edtBankName, + binding.tlBankName, + getString(R.string.emptyBankName) + ) + } else if (binding.edtBankBranch.text.toString().isEmpty()) { // EditText + commonErrorMethod( + binding.edtBankBranch, + binding.tlBankBranchName, + getString(R.string.emptyBranchName) + ) + } else { + return true + } + } + + private fun setUpRecyclerView() { + if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isNotEmpty()!!) { + binding.rvClientBankList.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) + bankListAdapter = BankListAdapter( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 + ) + binding.rvClientBankList.adapter = bankListAdapter + } + } + + + + private fun datePicker(edtDOB: TextInputEditText) { val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) val day = cal.get(Calendar.DAY_OF_MONTH) val datePickerDialog = DatePickerDialog( - activity as BajajFdMainActivity, { _, year, monthOfYear, dayOfMonth -> + activity as BajajFdMainActivity, { _, years, monthOfYear, dayOfMonth -> if (monthOfYear.toString().length == 1) { "0".plus(monthOfYear) } - edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + year)) + // edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) + edtDOB.setText( + years.toString().plus("-").plus(monthOfYear + 1).plus("-") + .plus(dayOfMonth.toString()) + ) + edtDOB.setSelection(edtDOB.text.toString().length) }, year, month, day ) datePickerDialog.datePicker.maxDate = cal.timeInMillis @@ -634,12 +914,13 @@ class StepTwoBajajFDFragment : Fragment() { datePickerDialog.show() } - private fun panCheckApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val panCheck = PanCheckRequest() - panCheck.clientCode = "0" - panCheck.subBrokerCode = "0" + panCheck.clientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + panCheck.subBrokerCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code panCheck.panNumber = binding.edtPANNumber.text.toString() panCheck.mobileNumber = "" stepTwoBajajFDViewModel.panCheck(panCheck, token) @@ -681,7 +962,7 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -693,7 +974,7 @@ class StepTwoBajajFDFragment : Fragment() { } } - @SuppressLint("ClickableViewAccessibility") + private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -711,8 +992,6 @@ class StepTwoBajajFDFragment : Fragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { - - //set data in spinner listOfTitle = getCodeResponse.Response.GetCodesList if (listOfTitle.isNotEmpty()) { val adapter = ArrayAdapter( @@ -722,44 +1001,36 @@ class StepTwoBajajFDFragment : Fragment() { ) binding.spTitle.setAdapter(adapter) - val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title - val newTitleText= "$titleText." - if (titleText.isNullOrEmpty()) { + val titleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText = "$titleText." + if (titleText?.isEmpty()!!) { binding.spTitle.setText( adapter.getItem(0)?.Value, false ) - }else{ + } else { for (title in listOfTitle) { - if (title.Value ==newTitleText) - { - binding.spTitle.setText(title.Value,false) + if (title.Value == newTitleText) { + binding.spTitle.setText(title.Value, false) break } - binding.spTitle.setOnTouchListener { v, event -> - when (event?.action) { - MotionEvent.ACTION_DOWN -> { - binding.spTitle.setText( - adapter.getItem(0)?.Value, - false - ) - - } - } - - v?.onTouchEvent(event) ?: true - } - - +// binding.spTitle.setOnTouchListener { v, event -> +// when (event?.action) { +// MotionEvent.ACTION_DOWN -> { +// binding.spTitle.setText( +// adapter.getItem(0)?.Value, +// false +// ) +// +// } +// } +// +// v?.onTouchEvent(event) ?: true +// } } - } - - - - - binding.spNomineeTitle.setAdapter(adapter) binding.spNomineeTitle.setText( adapter.getItem(0)?.Value, @@ -772,17 +1043,70 @@ class StepTwoBajajFDFragment : Fragment() { occupationApi() annualIncomeApi() stateListApi() + paymentModeApi() + + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + + } + } + + private fun paymentModeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.paymentModeCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getCodeResponse.Response.GetCodesList.isNotEmpty()){ + listOfPayMode = getCodeResponse.Response.GetCodesList + setUpRecyclerViewPaymentMode(listOfPayMode) + } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -794,6 +1118,18 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { + + binding.rvPaymentMode.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) + paymentModeAdapter = PaymentModeAdapter( + listOfPayMode, + listOfPayMode[0].Value + ) + binding.rvPaymentMode.adapter = paymentModeAdapter + } + + private fun genderApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -826,14 +1162,19 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -870,11 +1211,6 @@ class StepTwoBajajFDFragment : Fragment() { R.layout.spinner_dropdown, listOfRelationShip ) - binding.spRelation.setAdapter(adapter) - binding.spRelation.setText( - adapter.getItem(0)?.Value, - false - ) binding.spNomineeRelation.setAdapter(adapter) binding.spNomineeRelation.setText( @@ -890,14 +1226,19 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -942,14 +1283,19 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -994,14 +1340,19 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1046,14 +1397,19 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1089,22 +1445,44 @@ class StepTwoBajajFDFragment : Fragment() { listOfStates ) binding.spState.setAdapter(adapter) - binding.spState.setText( - adapter.getItem(0)?.State_Name, - false - ) - cityListApi(adapter.getItem(0)?.State_Id) + val newTitleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_STATE + if (newTitleText?.isEmpty()!!) { + binding.spState.setText( + adapter.getItem(0)?.State_Name, + false + ) + cityListApi(adapter.getItem(0)?.State_Id) + + stateObject = adapter.getItem(0) as DataObject + Log.e("if", " -->" + stateObject.State_Code) + } else { + for (title in listOfStates) { + if (title.State_Code == newTitleText) { + binding.spState.setText(title.State_Name, false) + cityListApi(title.State_Id) + stateObject = title + Log.e("else", " -->" + stateObject.State_Code) + break + } + } + } } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + stateListResponse.response.message + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1121,15 +1499,17 @@ class StepTwoBajajFDFragment : Fragment() { val cityRequest = CityRequest() cityRequest.StateCode = stateCode cityRequest.Type = "" - cityRequest.ClientCode = "8872" + cityRequest.ClientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE cityRequest.RoleID = 5 cityRequest.APIName = "" cityRequest.UID = 19060 - cityRequest.Subbroker_Code = "1014" + cityRequest.Subbroker_Code = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code cityRequest.RMCode = "" cityRequest.HOCode = "" - cityRequest.Source = "Nivesh" - cityRequest.APP_Web = "App" + cityRequest.Source = getString(R.string.source) + cityRequest.APP_Web = getString(R.string.app) stepTwoBajajFDViewModel.cityListApi(cityRequest, token) stepTwoBajajFDViewModel.getCityListMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -1148,21 +1528,38 @@ class StepTwoBajajFDFragment : Fragment() { listOfCities ) binding.spCity.setAdapter(adapter) - binding.spCity.setText( - adapter.getItem(0)?.city_name, - false - ) + + val newTitleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CITY + if (newTitleText?.isEmpty()!!) { + binding.spCity.setText( + adapter.getItem(0)?.city_name, + false + ) + } else { + for (title in listOfCities) { + if (title.city_name == newTitleText) { + binding.spCity.setText(title.city_name, false) + break + } + } + } } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + cityListResponse.response.message + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1172,6 +1569,72 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun apiForEligibleBankList() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + stepTwoBajajFDViewModel.bankListApi(token) + stepTwoBajajFDViewModel.getFDBankListMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getFDBankListResponse: GetFDBankListResponse = + Gson().fromJson( + response.data?.toString(), + GetFDBankListResponse::class.java + ) + getFDBankListResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getFDBankListResponse.Response.BankList.isNotEmpty()) { + dialogForBankList(getFDBankListResponse.Response.BankList) + } + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getFDBankListResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + + } + } + + private fun dialogForBankList(bankList: List) { + val dialog = Dialog(activity as BajajFdMainActivity) + dialog.setContentView(R.layout.layout_bank_list) + dialog.setCancelable(true) + dialog.window!! + .setLayout( + WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.MATCH_PARENT + ) + val rvClientList = dialog.findViewById(R.id.rvBankList) + rvClientList.layoutManager = LinearLayoutManager(activity as BajajFdMainActivity) + val tvCancel = dialog.findViewById(R.id.tvCancel) + tvCancel.setOnClickListener { + dialog.dismiss() + } + + if (bankList.isNotEmpty()) { + val bankListAdapter = RecommendedBankListAdapter(bankList) + rvClientList.adapter = bankListAdapter + } + dialog.show() + } // validations private fun validation(): Boolean { @@ -1213,6 +1676,12 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlTitle, getString(R.string.emptyTitle) ) + } else if (binding.spGender.text.toString().isEmpty()) { // Spinner + commonSpinnerErrorMethod( + binding.spGender, + binding.tlGender, + getString(R.string.emptyGender) + ) } else if (binding.edtFirstName.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtFirstName, @@ -1249,22 +1718,18 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlLastName, getString(R.string.validLastName) ) - } else if (binding.spGender.text.toString().isEmpty()) { // Spinner - commonSpinnerErrorMethod( - binding.spGender, - binding.tlGender, - getString(R.string.emptyGender) - ) - } else if (binding.edtEmail.text.toString().isEmpty()) { // EditText - commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.emptyEmail)) - } else if (isValidEmail(binding.edtEmail.text.toString())) { // EditText - commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.validEmail)) } else if (binding.spOccupation.text.toString().isEmpty()) { // EditText commonSpinnerErrorMethod( binding.spOccupation, binding.tlOccupation, getString(R.string.emptyOccupation) ) + } else if (binding.spIncome.text.toString().isEmpty()) { // EditText + commonSpinnerErrorMethod( + binding.spIncome, + binding.tlIncome, + getString(R.string.emptyIncome) + ) } else if (binding.edtQualification.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtQualification, @@ -1277,18 +1742,10 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlMarital, getString(R.string.emptyMaritalStatus) ) - } else if (binding.spRelation.text.toString().isEmpty()) { // Spinner - commonSpinnerErrorMethod( - binding.spRelation, - binding.tlRelation, - getString(R.string.emptyRelation) - ) - } else if (binding.edtRelationName.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtRelationName, - binding.tlRelationName, - getString(R.string.emptyRelationName) - ) + } else if (binding.edtEmail.text.toString().isEmpty()) { // EditText + commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.emptyEmail)) + } else if (!isValidEmail(binding.edtEmail.text.toString())) { // EditText + commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.validEmail)) } else if (binding.edtAddressLine1.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtAddressLine1, @@ -1327,23 +1784,41 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlPinCode, getString(R.string.validPinCode) ) - } else if (binding.edtIFSC.text.toString().isEmpty()) { // EditText - commonErrorMethod(binding.edtIFSC, binding.tlIFSC, getString(R.string.emptyIFSCCode)) - } else if (binding.edtIFSC.text.toString().length != 11) { // EditText - commonErrorMethod(binding.edtIFSC, binding.tlIFSC, getString(R.string.validIFSCCode)) - } else if (binding.edtAccountNumber.text.toString().isEmpty()) { // EditText + } else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString() + .isEmpty() + ) { // EditText + commonErrorAutoCompleteMethod( + binding.edtIFSC, + binding.tlIFSC, + getString(R.string.emptyIFSCCode) + ) + } else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString() + .length != 11 + ) { // EditText + commonErrorAutoCompleteMethod( + binding.edtIFSC, + binding.tlIFSC, + getString(R.string.validIFSCCode) + ) + } else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtAccountNumber.text.toString() + .isEmpty() + ) { // EditText commonErrorMethod( binding.edtAccountNumber, binding.tlAccountNumber, getString(R.string.emptyAccNo) ) - } else if (binding.edtBankName.text.toString().isEmpty()) { // EditText + } else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtBankName.text.toString() + .isEmpty() + ) { // EditText commonErrorMethod( binding.edtBankName, binding.tlBankName, getString(R.string.emptyBankName) ) - } else if (binding.edtBankBranch.text.toString().isEmpty()) { // EditText + } else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtBankBranch.text.toString() + .isEmpty() + ) { // EditText commonErrorMethod( binding.edtBankBranch, binding.tlBankBranchName, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 1c91da4..fc36a35 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -1,6 +1,5 @@ package com.nivesh.production.bajajfd.util -import android.annotation.SuppressLint import android.app.Activity import android.app.AlertDialog import android.content.Context @@ -14,10 +13,11 @@ import android.util.Patterns import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout +import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R +import retrofit2.HttpException +import java.io.IOException import java.text.SimpleDateFormat -import java.time.LocalDate -import java.time.format.DateTimeFormatter import java.util.* import java.util.regex.Matcher import java.util.regex.Pattern @@ -25,7 +25,7 @@ import java.util.regex.Pattern class Common { - companion object{ + companion object { /** *Before use this method write following code in model class app:Application(in activity and model) @@ -33,10 +33,12 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - fun isNetworkAvailable(activity: Activity): Boolean { + fun isNetworkAvailable(activity: Activity): Boolean { val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { val activeNetwork = connectivityManager.activeNetwork ?: return false @@ -63,11 +65,11 @@ class Common { //valid email check fun isValidEmail(target: String?): Boolean { - return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches() + return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches() } //valid Name Check - fun isValidName(nameText: String?): Boolean { + fun isValidName(nameText: String?): Boolean { val pattern = Pattern.compile(("^[a-zA-Z\\s]{2,70}$")) val matcher = pattern.matcher(nameText.toString()) return matcher.matches() @@ -95,7 +97,7 @@ class Common { fun removeError(textInputLayout: TextInputLayout) { if (textInputLayout.error != null) { textInputLayout.error = null - if(textInputLayout.isErrorEnabled){ + if (textInputLayout.isErrorEnabled) { textInputLayout.isErrorEnabled = false; } } @@ -127,7 +129,7 @@ class Common { } // set Default Step - fun defaultShape(): GradientDrawable { + fun defaultShape(): GradientDrawable { val shape = GradientDrawable() shape.shape = GradientDrawable.OVAL shape.setColor(Color.WHITE) @@ -136,7 +138,7 @@ class Common { } // set Selected Step - fun selectedShape(): GradientDrawable { + fun selectedShape(): GradientDrawable { val shape = GradientDrawable() shape.shape = GradientDrawable.OVAL shape.setColor(Color.parseColor(Colors.colorDefault)) @@ -144,17 +146,17 @@ class Common { return shape } - fun commonErrorMethod( + fun commonErrorMethod( inputText: TextInputEditText, inputError: TextInputLayout, strMessage: String ): Boolean { inputText.requestFocus() - inputError.error = strMessage + inputError.error = strMessage return false } - fun commonSpinnerErrorMethod( + fun commonErrorAutoCompleteMethod( inputText: MaterialAutoCompleteTextView, inputError: TextInputLayout, strMessage: String @@ -164,11 +166,41 @@ class Common { return false } - fun getDate(string :String): String { - val input = SimpleDateFormat("dd-MM-yyyy", Locale.US) - val mDate : Date? = input.parse(string) - val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + fun commonSpinnerErrorMethod( + inputText: MaterialAutoCompleteTextView, + inputError: TextInputLayout, + strMessage: String + ): Boolean { + inputText.requestFocus() + inputError.error = strMessage + return false + } + + fun getDate(string: String): String { + val input = SimpleDateFormat("dd/MM/yyyy", Locale.US) + val mDate: Date? = input.parse(string) + val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) return simpleDateFormat.format(mDate as Date) } + + fun handleRatesResponse(response: retrofit2.Response): Resource { + try { + if (response.isSuccessful && response.body() != null) { + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) + } + } + } catch (t: Throwable) { + return when (t) { + is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) + is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) + else -> Resource.Error(t.localizedMessage?.toString() ?: "") + } + } + return Resource.Error(response.message()) + } + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt index 53c0d20..d7cc998 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt @@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util class Constants() { companion object { - const val BASE_URL = "https://providential.in/WebApi_Bajaj/" + const val BASE_URL = "https://providential.in/" const val token = "636F8F63-06C4-4D95-8562-392B34025FB0" } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt index cb5bdb7..e26e127 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt @@ -4,47 +4,53 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.CreateFDRequest import com.nivesh.production.bajajfd.model.FDStepsCountRequest -import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.getClientDetailsRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch -import okhttp3.RequestBody class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - // TODO: Implement the ViewModel - val getRatesMutableData: MutableLiveData> = MutableLiveData() - - fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } val getStepsCountMutableData: MutableLiveData> = MutableLiveData() - fun getStepsCount(requestBody: FDStepsCountRequest, token : String) = viewModelScope.launch { + fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch { getStepsCountMutableData.postValue(Resource.Loading()) val response = mainRepository.getStepsCountResponse(requestBody, token) getStepsCountMutableData.postValue(handleRatesResponse(response)) } val getClientDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token : String) = viewModelScope.launch { - getClientDetailsMutableData.postValue(Resource.Loading()) - val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) - getClientDetailsMutableData.postValue(handleRatesResponse(response)) - } - - - - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } + fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String) = + viewModelScope.launch { + getClientDetailsMutableData.postValue(Resource.Loading()) + val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) + getClientDetailsMutableData.postValue(handleRatesResponse(response)) } - return Resource.Error(response.message()) + + val getFDResponseMutableData: MutableLiveData> = MutableLiveData() + fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch { + getFDResponseMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDKYCResponse(getRatesRequest, token) + getFDResponseMutableData.postValue(handleRatesResponse(response)) } +// private fun handleRatesResponse(response: retrofit2.Response): Resource { +// try { +// if ( response.isSuccessful && response.body() != null) { +// response.body()?.let { resultResponse -> +// return Resource.Success(resultResponse) +// } +// } +// } catch (t: Throwable) { +// return when (t) { +// is IOException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause)) +// is HttpException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause)) +// else -> Resource.Error(t.localizedMessage?.toString() ?: "") +// } +// } +// return Resource.Error(response.message()) +// } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt index c1d13a1..e68bff9 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -4,50 +4,51 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetCodeRequest +import com.nivesh.production.bajajfd.model.GetFDDetailsRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - private val getRatesMutableData: MutableLiveData> = MutableLiveData() - - fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleRatesResponse(response)) } - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } - } - return Resource.Error(response.message()) - - } - - fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) + val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() + fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch { + getFDDetailsMutableData.postValue(Resource.Loading()) val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + getFDDetailsMutableData.postValue(handleRatesResponse(response)) } - fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + private val getRatesMutableData: MutableLiveData> = MutableLiveData() + fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) + val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } - fun finaliseFD(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) = + viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + fun finaliseFD(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.finaliseFDResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } - fun finaliseKYC(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.finaliseKYCResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt index 56f311d..940ab26 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt @@ -4,19 +4,19 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.CheckFDKYCRequest import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - // TODO: Implement the ViewModel val getCodeMutableData: MutableLiveData> = MutableLiveData() - fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { getCodeMutableData.postValue(Resource.Loading()) val response = mainRepository.getCodesResponse(requestBody, token) @@ -51,14 +51,21 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View getMaxAmountMutableData.postValue(handleRatesResponse(response)) } - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } - } - return Resource.Error(response.message()) - + val getFDKYCMutableData: MutableLiveData> = MutableLiveData() + fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String) = viewModelScope.launch { + getFDKYCMutableData.postValue(Resource.Loading()) + val response = mainRepository.checkFDKYCRequest(requestBody, token) + getFDKYCMutableData.postValue(handleRatesResponse(response)) } +// private fun handleRatesResponse(response: retrofit2.Response): Resource { +// if (response.isSuccessful) { +// response.body()?.let { resultResponse -> +// return Resource.Success(resultResponse) +// } +// } +// return Resource.Error(response.message()) +// +// } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt index 74522d4..84330b9 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt @@ -1,33 +1,30 @@ package com.nivesh.production.bajajfd.viewModel -import androidx.lifecycle.* +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { private val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun documentsUpload(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.documentsUploadResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } - } - return Resource.Error(response.message()) - + val getTitleMutableData: MutableLiveData> = MutableLiveData() + fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getTitleMutableData.postValue(Resource.Loading()) + val response = mainRepository.titleCheck(getCodeRequest, token) + getTitleMutableData.postValue(handleRatesResponse(response)) } - - - } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 185838e..a284c59 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -4,43 +4,15 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject -import com.nivesh.production.bajajfd.model.CityRequest -import com.nivesh.production.bajajfd.model.GetCodeRequest -import com.nivesh.production.bajajfd.model.GetRatesRequest -import com.nivesh.production.bajajfd.model.PanCheckRequest +import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - // TODO: Implement the ViewModel - private val getRatesMutableData: MutableLiveData> = MutableLiveData() val getPanCheckMutableData: MutableLiveData> = MutableLiveData() - - - fun checkFDKYC(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.checkFDKYCResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } - - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } - } - return Resource.Error(response.message()) - - } - -// fun createFDApp(getRatesRequest: GetRatesRequest) = viewModelScope.launch { -// getRatesMutableData.postValue(Resource.Loading()) -// val response = mainRepository.createFDAppResponse(getRatesRequest) -// getRatesMutableData.postValue(handleRatesResponse(response)) -// } - fun panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch { getPanCheckMutableData.postValue(Resource.Loading()) val response = mainRepository.panCheck(panCheck, token) @@ -104,4 +76,32 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View getCityListMutableData.postValue(handleRatesResponse(response)) } + val getFDBankListMutableData: MutableLiveData> = MutableLiveData() + fun bankListApi( token: String) = viewModelScope.launch { + getFDBankListMutableData.postValue(Resource.Loading()) + val response = mainRepository.bankListCheck( token) + getFDBankListMutableData.postValue(handleRatesResponse(response)) + } + + val getifscCodeCheckMutableData: MutableLiveData> = MutableLiveData() + fun ifscCodeApi(ifsc : String) = viewModelScope.launch { + getifscCodeCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeCheck(ifsc) + getifscCodeCheckMutableData.postValue(handleRatesResponse(response)) + } + + val getifscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() + fun ifscCodeDetailsApi(ifsc : String, token: String) = viewModelScope.launch { + getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeDetailsCheck(ifsc, token) + getifscCodeDetailsCheckMutableData.postValue(handleRatesResponse(response)) + } + + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleRatesResponse(response)) + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/camera.png b/app/src/main/res/drawable/camera.png new file mode 100644 index 0000000..6ea6bca Binary files /dev/null and b/app/src/main/res/drawable/camera.png differ diff --git a/app/src/main/res/drawable/gallery.png b/app/src/main/res/drawable/gallery.png new file mode 100644 index 0000000..d309f3e Binary files /dev/null and b/app/src/main/res/drawable/gallery.png differ diff --git a/app/src/main/res/drawable/svg_camera.xml b/app/src/main/res/drawable/svg_camera.xml new file mode 100644 index 0000000..48a8a01 --- /dev/null +++ b/app/src/main/res/drawable/svg_camera.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/drawable/svg_close.xml b/app/src/main/res/drawable/svg_close.xml new file mode 100644 index 0000000..844b6b6 --- /dev/null +++ b/app/src/main/res/drawable/svg_close.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/svg_image.xml b/app/src/main/res/drawable/svg_image.xml new file mode 100644 index 0000000..3ffb603 --- /dev/null +++ b/app/src/main/res/drawable/svg_image.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/camera_gallery_layout.xml b/app/src/main/res/layout/camera_gallery_layout.xml new file mode 100644 index 0000000..eda34a7 --- /dev/null +++ b/app/src/main/res/layout/camera_gallery_layout.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_four.xml b/app/src/main/res/layout/fragment_bajajfd_step_four.xml index 22a13de..110a22a 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_four.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_four.xml @@ -202,82 +202,27 @@ android:text="@string/termsAndCondition" android:textColor="@color/black" android:textSize="@dimen/text_size_14" - app:layout_constraintBottom_toTopOf="@+id/swDirectorBajajFinance" + app:layout_constraintBottom_toTopOf="@+id/llRVTerms" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/lblRateOfInterest" /> - + app:layout_constraintTop_toBottomOf="@+id/tvTermsCondition" + android:orientation="vertical"> - + - - - - - - - + + app:layout_constraintTop_toBottomOf="@+id/llRVTerms" /> + app:layout_constraintTop_toBottomOf="@+id/llRVTerms" /> diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index d95444d..1e251d4 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -81,6 +81,71 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> + + +