From 1280b71f32dcf1e880b65c00a0718b06ec6b812c Mon Sep 17 00:00:00 2001 From: pankaj Date: Wed, 28 Dec 2022 14:23:21 +0530 Subject: [PATCH 1/8] changes --- app/src/main/AndroidManifest.xml | 4 +++- .../production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 356061a..c5df2bd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ + android:exported="true" + android:windowSoftInputMode="adjustPan" + > 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 c60706b..b985978 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 @@ -191,8 +191,9 @@ class StepOneBajajFDFragment : Fragment() { private fun maturityAmountApi(tenure: Int, interest: Double) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - if (binding.edtAmount.text.toString().isNotEmpty() && interest.toString() - .isNotEmpty() && tenure.toString().isNotEmpty() + if ( + + binding.edtAmount.text.toString().isNotEmpty() && interest != 0.0 && tenure != 0 ) { val maturityAmountRequest = GetMaturityAmountRequest() maturityAmountRequest.FDProvider = getString(R.string.bajaj) From 3a0a972b9ec45e334a3c9b9e7ab540cc251b78e4 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 29 Dec 2022 16:25:11 +0530 Subject: [PATCH 2/8] added code for citylist --- .../bajajfd/interfaces/ApiInterface.kt | 6 +- .../bajajfd/model/CityListResponse.kt | 2 - .../production/bajajfd/model/CityRequest.kt | 2 +- .../production/bajajfd/model/ClientDetails.kt | 22 ++++ .../bajajfd/model/ClientMasterMFD.kt | 40 +++++++ .../production/bajajfd/model/DataObject.kt | 8 +- .../production/bajajfd/model/DataObjectX.kt | 6 +- .../production/bajajfd/model/DeviceInfo.kt | 11 ++ .../production/bajajfd/model/Nominee.kt | 12 +++ .../bajajfd/model/ObjectResponse.kt | 8 ++ .../bajajfd/model/ResponseXXXXXXX.kt | 7 ++ .../production/bajajfd/model/UserRequest.kt | 10 ++ .../bajajfd/model/getClientDetailsRequest.kt | 8 ++ .../bajajfd/model/getClientDetailsResponse.kt | 8 ++ .../bajajfd/repositories/MainRepository.kt | 3 + .../ui/activity/BajajFdMainActivity.kt | 100 +++++++++++++++--- .../ui/fragment/StepOneBajajFDFragment.kt | 1 + .../ui/fragment/StepTwoBajajFDFragment.kt | 90 +++++++++++++--- .../nivesh/production/bajajfd/util/Common.kt | 13 ++- .../bajajfd/viewModel/BajajFDViewModel.kt | 8 ++ .../res/layout/fragment_bajajfd_step_two.xml | 11 +- 21 files changed, 333 insertions(+), 43 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ClientDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ClientMasterMFD.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/Nominee.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXX.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt 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 71c100e..4fb702d 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 @@ -51,6 +51,10 @@ interface ApiInterface { @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 @@ -69,7 +73,7 @@ interface ApiInterface { @POST("GetCodes") suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetStateMaster") + @POST("api/GetStateMaster") suspend fun stateApi( @Header("token") token: String): Response @POST("api/GetCity") diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CityListResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CityListResponse.kt index 72a9bfc..c14725a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/CityListResponse.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CityListResponse.kt @@ -2,7 +2,5 @@ package com.nivesh.production.bajajfd.model data class CityListResponse( val DataObject: List, - val Message: Any, - val ObjectResponse: Any, val response: ResponseXXXXXX ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CityRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CityRequest.kt index 8ffae60..9c20f7a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/CityRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CityRequest.kt @@ -8,7 +8,7 @@ data class CityRequest( var RMCode: String?="", var RoleID: Int = 0, var Source: String? = "", - var StateCode: Int = 0, + var StateCode: Int? = 0, var Subbroker_Code: String? = "", var Type: String?= "", var UID: Int = 0 diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientDetails.kt new file mode 100644 index 0000000..38c73cd --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientDetails.kt @@ -0,0 +1,22 @@ +package com.nivesh.production.bajajfd.model + +data class ClientDetails( + val ARNexpiredFlag: Boolean, + val EditProfileMessage: String, + val IsPartiallyFilled: Boolean, + val KYCstatus: String, + val ProfileMessage: String, + val ProfileStatus: String, + val UnifiedMessage: String, + val appliaction1_image_name: String, + val city_of_birth: String, + val clientMasterMFD: ClientMasterMFD, + val country_of_birth: String, + val created_by: String, + val created_date: String, + val email: String, + val mobile: String, + val modified_by: String, + val modified_date: String, + val sub_broker_code: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientMasterMFD.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientMasterMFD.kt new file mode 100644 index 0000000..dfcfec8 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientMasterMFD.kt @@ -0,0 +1,40 @@ +package com.nivesh.production.bajajfd.model + +data class ClientMasterMFD( + val CLIENT_ACCNO1: String, + val CLIENT_ACCTYPE1: String, + val CLIENT_ADD1: String, + val CLIENT_ADD2: String, + val CLIENT_ADD3: String, + val CLIENT_APPNAME1: String, + val CLIENT_CITY: String, + val CLIENT_CODE: String, + val CLIENT_COMMMODE: String, + val CLIENT_COUNTRY: String, + val CLIENT_DIVPAYMODE: String, + val CLIENT_DOB: String, + val CLIENT_EMAIL: String, + val CLIENT_FATHER_HUSBAND_GUARDIAN: String, + val CLIENT_GENDER: String, + val CLIENT_GUARDIANPAN: String, + val CLIENT_HOLDING: String, + val CLIENT_NEFT_IFSCCODE1: String, + val CLIENT_OCCUPATION_CODE: String, + val CLIENT_PAN: String, + val CLIENT_PINCODE: String, + val CLIENT_STATE: String, + val CLIENT_TAXSTATUS: String, + val CLIENT_TYPE: String, + val CM_MOBILE: String, + val Client_Title: String, + val DEFAULT_BLANK_FLAG1: String, + val Filler1: String, + val Filler2: String, + val Filler3: Any, + val NominationAuthMode: String, + val NominationOptFlag: String, + val Nominee_Title: String, + val Nominees: List, + val ParentName: String, + val ums_id: String +) \ 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 c4a296f..499aa70 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 @@ -1,5 +1,7 @@ package com.nivesh.production.bajajfd.model +import java.io.Serializable + data class DataObject( val BSE_State_Code: String, val CAMS_statecode: String, @@ -8,4 +10,8 @@ data class DataObject( val State_Id: Int, val State_Name: String, val signzyCode: String -) \ No newline at end of file +): Serializable { + override fun toString(): String { + return State_Name + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObjectX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObjectX.kt index 542f198..7599a9d 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObjectX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObjectX.kt @@ -3,4 +3,8 @@ package com.nivesh.production.bajajfd.model data class DataObjectX( val city_id: Int, val city_name: String -) \ No newline at end of file +) { + override fun toString(): String { + return city_name + } +} \ 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 new file mode 100644 index 0000000..82953a8 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt @@ -0,0 +1,11 @@ +package com.nivesh.production.bajajfd.model + +data class DeviceInfo( + var app_version: String? = "", + var device_id: String? = "", + var device_model: String? = "", + var device_name: String? ="", + var device_os_version: String? = "", + var device_token: String? = "", + var device_type: String? = "" +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Nominee.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Nominee.kt new file mode 100644 index 0000000..31c1ae6 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Nominee.kt @@ -0,0 +1,12 @@ +package com.nivesh.production.bajajfd.model + +data class Nominee( + val NomineeApplicablePercent: Double, + val NomineeDOB: String, + val NomineeGuardian: String, + val NomineeGuardianPAN: String, + val NomineeMinorFlag: String, + val NomineeName: String, + val NomineePAN: String, + val NomineeRelationship: String +) \ 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 new file mode 100644 index 0000000..fa142c3 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class ObjectResponse( + val TransactionCount: Int, + val clientDetails: ClientDetails, + val languageid: Int, + val membersList: List +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXX.kt new file mode 100644 index 0000000..1adec00 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXX.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXX( + 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/UserRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt new file mode 100644 index 0000000..af2dc2e --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class UserRequest( + var AppOrWeb: String? = "", + var IPAddress: String? = "", + var LoggedInRoleId: Int = 0, + var Source: String? = "", + var UID: String? = "", + var deviceInfo: DeviceInfo? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsRequest.kt new file mode 100644 index 0000000..e140749 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsRequest.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class getClientDetailsRequest( + var AppOrWeb: String? = "", + var UserRequest: UserRequest? = null, + var client_code: String? = "", + var sub_broker_code: String? = "" +) \ 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 new file mode 100644 index 0000000..32d8762 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt @@ -0,0 +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 +) \ 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 27d34f6..8d937e4 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 @@ -12,6 +12,9 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest , token: String) = apiInterface.getFDStepsCount(requestBody, token) + suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest , token: String) = + apiInterface.getClientDetails(getClientDetails, token) + suspend fun createCalculateFDMaturityAmount(requestBody: GetMaturityAmountRequest, token: String) = apiInterface.getCalculateFDMaturityAmount(requestBody, token) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 6e6a0ae..02b8634 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 @@ -33,25 +33,22 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel - lateinit var createFDRequest: CreateFDRequest - lateinit var createFDApplicantRequest: CreateFDApplicationRequest - lateinit var applicantDetails: ApplicantDetails - lateinit var fdInvestmentDetails: FDInvestmentDetails - lateinit var applicantRelationDetails: ApplicantRelationDetails - lateinit var fdBankDetails: FdBankDetails - lateinit var nomineeDetails: NomineeDetails - lateinit var nomineeGuardianDetails: NomineeGuardianDetails + var createFDRequest: CreateFDRequest + var createFDApplicantRequest: CreateFDApplicationRequest + var applicantDetails: ApplicantDetails + var fdInvestmentDetails: FDInvestmentDetails + var applicantRelationDetails: ApplicantRelationDetails + var fdBankDetails: FdBankDetails + var nomineeDetails: NomineeDetails + var nomineeGuardianDetails: NomineeGuardianDetails + var getClientDetailsResponse : getClientDetailsResponse override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() } - - private fun init() { - - binding = ActivityBajajFdBinding.inflate(layoutInflater) - setContentView(binding.root) - + init { + getClientDetailsResponse = getClientDetailsResponse() createFDRequest = CreateFDRequest() createFDApplicantRequest = CreateFDApplicationRequest() @@ -61,6 +58,23 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { fdBankDetails = FdBankDetails() nomineeDetails = NomineeDetails() nomineeGuardianDetails = NomineeGuardianDetails() + } + + private fun init() { + + 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] @@ -93,7 +107,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { stepsCountResponse.Response.StatusCode.let { code -> when (code) { 200 -> { - setViewPager(stepsCountResponse.Response.StepsCount) + getClientDetailsApi(stepsCountResponse.Response.StepsCount) + // setViewPager(stepsCountResponse.Response.StepsCount) } // 650 -> refreshToken() else -> {} @@ -113,6 +128,61 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } } + private fun getClientDetailsApi(stepsCount: Int) { + if (Common.isNetworkAvailable(this@BajajFdMainActivity)){ + val getClientDetailsRequest = getClientDetailsRequest() + getClientDetailsRequest.client_code = "8872" + getClientDetailsRequest.AppOrWeb = "App" + getClientDetailsRequest.sub_broker_code = "1014" + + val userRequest = UserRequest() + userRequest.UID = "19060" + userRequest.IPAddress = "" + userRequest.Source = "Nivesh" + userRequest.AppOrWeb = "App" + userRequest.LoggedInRoleId = 5 + + val deviceInfo = DeviceInfo() + deviceInfo.device_id = "" + deviceInfo.device_model = "" + deviceInfo.device_token = "" + deviceInfo.device_name = "" + deviceInfo.app_version = "2.44.13" + deviceInfo.device_os_version = "Android 11" + userRequest.deviceInfo = deviceInfo + getClientDetailsRequest.UserRequest = userRequest + 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.response?.status_code.let { code -> + when (code) { + 200 -> { + setViewPager(stepsCount) + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + } + } + private fun setViewPager(stepsCount: Int) { // steps setting 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 e4db4bf..7387d34 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 @@ -160,6 +160,7 @@ class StepOneBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = "" (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" + (activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails bajajFDInterface.stepOneApi("stepOneResponse") } } 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 4c29f15..cd52350 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,10 +1,12 @@ package com.nivesh.production.bajajfd.ui.fragment +import android.app.DatePickerDialog import android.os.Bundle import android.text.Editable import android.text.InputFilter import android.text.InputFilter.LengthFilter import android.text.TextWatcher +import android.transition.Fade.IN import android.util.Log import android.view.LayoutInflater import android.view.View @@ -13,6 +15,7 @@ import android.widget.ArrayAdapter import android.widget.RadioButton import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import com.google.android.material.textfield.TextInputEditText import com.google.gson.Gson import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding @@ -22,6 +25,7 @@ import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.util.Common 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 import com.nivesh.production.bajajfd.util.Common.Companion.isIndianMobileNo import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidName @@ -30,6 +34,8 @@ import com.nivesh.production.bajajfd.util.Common.Companion.removeError import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel +import java.text.SimpleDateFormat +import java.util.* class StepTwoBajajFDFragment : Fragment() { @@ -40,6 +46,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton + private var cal = Calendar.getInstance() private lateinit var listOfTitle: List private lateinit var listOfGender: List @@ -98,9 +105,16 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMobileNumber) } }) + + // create an OnDateSetListener + binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) + datePicker(binding.edtDOB) + } + + binding.edtPANNumber.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -305,6 +319,7 @@ class StepTwoBajajFDFragment : Fragment() { }) binding.edtNomineeDOB.setOnClickListener { removeError(binding.tlNomineeDOB) + datePicker(binding.edtNomineeDOB) } binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlNomineeRelation) @@ -483,7 +498,8 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtAddressLine1.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress2 = binding.edtAddressLine2.text.toString() - (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress3 = binding.edtAddressLine3.text.toString() + (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress3 = + binding.edtAddressLine3.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantCity = binding.spCity.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantState = @@ -559,6 +575,13 @@ class StepTwoBajajFDFragment : Fragment() { (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 + + Log.e("CreateFDRequest","-->"+Gson().toJson((activity as BajajFdMainActivity).createFDApplicantRequest)) bajajFDInterface.stepTwoApi("stepTwoResponse") } } @@ -570,6 +593,26 @@ class StepTwoBajajFDFragment : Fragment() { return root } + 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 -> + if (monthOfYear.toString().length == 1){ + "0".plus(monthOfYear) + } + edtDOB.setText(getDate(dayOfMonth.toString() +"-" + (monthOfYear + 1) +"-" + year)) + }, year, month, day + ) + datePickerDialog.datePicker.maxDate = cal.timeInMillis + val c = Calendar.getInstance() + c.add(Calendar.YEAR, -140) + datePickerDialog.datePicker.minDate = c.timeInMillis + datePickerDialog.show() + } + + private fun panCheckApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val panCheck = PanCheckRequest() @@ -628,6 +671,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -691,6 +735,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun genderApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -742,6 +787,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun relationShipApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -805,6 +851,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun maritalStatusApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -856,6 +903,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun occupationApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -907,6 +955,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun annualIncomeApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -958,6 +1007,7 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun stateListApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { stepTwoBajajFDViewModel.stateApi(token) @@ -966,7 +1016,10 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Success -> { Log.e("response", "-->$response") val stateListResponse: StateListResponse = - Gson().fromJson(response.data?.toString(), StateListResponse::class.java) + Gson().fromJson( + response.data?.toString(), + StateListResponse::class.java + ) stateListResponse.response.status_code.let { code -> when (code) { 200 -> { @@ -982,7 +1035,7 @@ class StepTwoBajajFDFragment : Fragment() { adapter.getItem(0)?.State_Name, false ) - cityListApi(adapter.getItem(0)?.State_Code) + cityListApi(adapter.getItem(0)?.State_Id) } } // 650 -> refreshToken() @@ -1004,12 +1057,11 @@ class StepTwoBajajFDFragment : Fragment() { } } - private fun cityListApi(stateCode: String?) { + + private fun cityListApi(stateCode: Int?) { val cityRequest = CityRequest() - if (stateCode != null) { - cityRequest.StateCode = stateCode.toInt() - } + cityRequest.StateCode = stateCode cityRequest.Type = "" cityRequest.ClientCode = "8872" cityRequest.RoleID = 5 @@ -1037,8 +1089,8 @@ class StepTwoBajajFDFragment : Fragment() { R.layout.spinner_dropdown, listOfCities ) - binding.spIncome.setAdapter(adapter) - binding.spIncome.setText( + binding.spCity.setAdapter(adapter) + binding.spCity.setText( adapter.getItem(0)?.city_name, false ) @@ -1091,7 +1143,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlPanNumber, getString(R.string.emptyPAN) ) - } else if (isValidPan(binding.edtPANNumber.text.toString())) { // EditText + } else if (!isValidPan(binding.edtPANNumber.text.toString())) { // EditText commonErrorMethod( binding.edtPANNumber, binding.tlPanNumber, @@ -1109,7 +1161,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlFirstName, getString(R.string.emptyFirstName) ) - } else if (isValidName(binding.edtFirstName.text.toString())) { // EditText + } else if (!isValidName(binding.edtFirstName.text.toString())) { // EditText commonErrorMethod( binding.edtFirstName, binding.tlFirstName, @@ -1121,7 +1173,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlMiddleName, getString(R.string.emptyMiddleName) ) - } else if (isValidName(binding.edtMiddleName.text.toString())) { // EditText + } else if (!isValidName(binding.edtMiddleName.text.toString())) { // EditText commonErrorMethod( binding.edtMiddleName, binding.tlMiddleName, @@ -1133,7 +1185,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlLastName, getString(R.string.emptyLastName) ) - } else if (isValidName(binding.edtLastName.text.toString())) { // EditText + } else if (!isValidName(binding.edtLastName.text.toString())) { // EditText commonErrorMethod( binding.edtLastName, binding.tlLastName, @@ -1191,14 +1243,18 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlAddressLine2, getString(R.string.emptyAddressLine2) ) - }else if (binding.edtAddressLine3.text.toString().isEmpty()) { // EditText + } else if (binding.edtAddressLine3.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtAddressLine3, binding.tlAddressLine3, getString(R.string.emptyAddressLine3) ) } else if (binding.spState.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod(binding.spState, binding.tlState, getString(R.string.emptyState)) + commonSpinnerErrorMethod( + binding.spState, + binding.tlState, + getString(R.string.emptyState) + ) } else if (binding.spCity.text.toString().isEmpty()) { // EditText commonSpinnerErrorMethod(binding.spCity, binding.tlCity, getString(R.string.emptyCity)) } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText @@ -1244,4 +1300,6 @@ class StepTwoBajajFDFragment : Fragment() { super.onDestroyView() _binding = null } -} \ No newline at end of file +} + + 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 500ca87..1c91da4 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,5 +1,6 @@ package com.nivesh.production.bajajfd.util +import android.annotation.SuppressLint import android.app.Activity import android.app.AlertDialog import android.content.Context @@ -13,9 +14,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.nivesh.production.bajajfd.BajajApplication import com.nivesh.production.bajajfd.R -import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +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 @@ -161,5 +164,11 @@ 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) + return simpleDateFormat.format(mDate as Date) + } } } \ 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 c1f38a1..cb5bdb7 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 @@ -6,6 +6,7 @@ import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject 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.Resource import kotlinx.coroutines.launch @@ -28,6 +29,13 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() 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 { diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 5b62d5a..6e5744d 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -137,7 +137,8 @@ android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" android:drawableEnd="@drawable/svg_cal" - android:inputType="date" + android:inputType="none" + android:focusable="false" android:textSize="@dimen/text_size_14" /> @@ -156,6 +157,7 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" + android:inputType="textCapCharacters" android:maxEms="10" android:textSize="@dimen/text_size_14" /> @@ -563,7 +565,7 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" - android:inputType="text" + android:inputType="number" android:textSize="@dimen/text_size_14" android:maxEms="6" /> @@ -696,7 +698,8 @@ android:drawableEnd="@drawable/svg_cal" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" - android:inputType="date" + android:inputType="none" + android:focusable="false" android:textSize="@dimen/text_size_14" /> @@ -837,7 +840,7 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" - android:inputType="text" + android:inputType="number" android:maxEms="60" android:textSize="@dimen/text_size_14" /> From e00bca7705757918b015e5034d9cb1fafe7d0c80 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 29 Dec 2022 17:40:35 +0530 Subject: [PATCH 3/8] setting data from clientdetails --- .../bajajfd/model/getClientDetailsResponse.kt | 4 +- .../ui/fragment/StepTwoBajajFDFragment.kt | 50 ++++++++++++++----- 2 files changed, 40 insertions(+), 14 deletions(-) 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 32d8762..d377c17 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 = "", +// val DataObject: Any ? = "", +// val Message: Any = "", var ObjectResponse: ObjectResponse? = null, var response: ResponseXXXXXXX? = null ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index cd52350..2778460 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 @@ -6,7 +6,6 @@ import android.text.Editable import android.text.InputFilter import android.text.InputFilter.LengthFilter import android.text.TextWatcher -import android.transition.Fade.IN import android.util.Log import android.view.LayoutInflater import android.view.View @@ -34,7 +33,6 @@ import com.nivesh.production.bajajfd.util.Common.Companion.removeError import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel -import java.text.SimpleDateFormat import java.util.* @@ -105,16 +103,17 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMobileNumber) } }) + binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) // create an OnDateSetListener - + binding.edtDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) datePicker(binding.edtDOB) - } + binding.edtPANNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN) binding.edtPANNumber.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -130,9 +129,16 @@ class StepTwoBajajFDFragment : Fragment() { } } }) + binding.spTitle.setOnItemClickListener { _, _, _, _ -> 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?) { @@ -145,6 +151,8 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlFirstName) } }) + binding.edtFirstName.setText(splitStringName?.get(0).toString()) + binding.edtMiddleName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -157,6 +165,8 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMiddleName) } }) + binding.edtMiddleName.setText(splitStringName?.get(1).toString()) + binding.edtLastName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -169,9 +179,12 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlLastName) } }) + binding.edtLastName.setText(splitStringName?.get(2).toString()) + binding.spGender.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlGender) } + binding.edtEmail.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -184,9 +197,12 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlEmail) } }) + binding.edtEmail.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_EMAIL) + binding.spOccupation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlOccupation) } + binding.edtQualification.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -200,7 +216,6 @@ class StepTwoBajajFDFragment : Fragment() { } }) - binding.spMarital.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlMarital) } @@ -221,6 +236,7 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlRelationName) } }) + binding.edtAddressLine1.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -581,7 +597,10 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeDetails (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails - Log.e("CreateFDRequest","-->"+Gson().toJson((activity as BajajFdMainActivity).createFDApplicantRequest)) + Log.e( + "CreateFDRequest", + "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDApplicantRequest) + ) bajajFDInterface.stepTwoApi("stepTwoResponse") } } @@ -599,10 +618,10 @@ class StepTwoBajajFDFragment : Fragment() { val day = cal.get(Calendar.DAY_OF_MONTH) val datePickerDialog = DatePickerDialog( activity as BajajFdMainActivity, { _, year, monthOfYear, dayOfMonth -> - if (monthOfYear.toString().length == 1){ + if (monthOfYear.toString().length == 1) { "0".plus(monthOfYear) } - edtDOB.setText(getDate(dayOfMonth.toString() +"-" + (monthOfYear + 1) +"-" + year)) + edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + year)) }, year, month, day ) datePickerDialog.datePicker.maxDate = cal.timeInMillis @@ -697,10 +716,17 @@ class StepTwoBajajFDFragment : Fragment() { listOfTitle ) binding.spTitle.setAdapter(adapter) - binding.spTitle.setText( - adapter.getItem(0)?.Value, - false - ) + + if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title.isNullOrEmpty()) { + binding.spTitle.setText( + adapter.getItem(0)?.Value, + false + ) + } else { + listOfTitle.filter { + it.Value == (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + } + } binding.spNomineeTitle.setAdapter(adapter) binding.spNomineeTitle.setText( From 215be17924c26236a54daf6164013f8425b01260 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 29 Dec 2022 17:42:14 +0530 Subject: [PATCH 4/8] banklist adapter bank design --- .../bajajfd/adapter/BankListAdapter.kt | 117 ++++++++++++ .../production/bajajfd/model/BankList.kt | 15 ++ .../ui/fragment/StepTwoBajajFDFragment.kt | 4 +- app/src/main/res/drawable/ic_add_icon.xml | 5 + app/src/main/res/drawable/ic_select_green.xml | 5 + .../main/res/drawable/ic_select_outline.xml | 5 + .../res/layout/fragment_bajajfd_step_two.xml | 53 ++++++ .../main/res/layout/item_banklist_preview.xml | 167 ++++++++++++++++++ app/src/main/res/values-hi-rIN/strings.xml | 1 + app/src/main/res/values-night/strings.xml | 4 + app/src/main/res/values/strings.xml | 1 + 11 files changed, 374 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt create mode 100644 app/src/main/res/drawable/ic_add_icon.xml create mode 100644 app/src/main/res/drawable/ic_select_green.xml create mode 100644 app/src/main/res/drawable/ic_select_outline.xml create mode 100644 app/src/main/res/layout/item_banklist_preview.xml create mode 100644 app/src/main/res/values-night/strings.xml 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 new file mode 100644 index 0000000..80f3770 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -0,0 +1,117 @@ +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.BankList + +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) + { + 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) + } + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder(LayoutInflater.from(parent.context).inflate( + R.layout.item_banklist_preview, + parent, + 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) + checkedPosition = holder.adapterPosition + + } + + + } + } + + } + + + + + } + + override fun getItemCount(): Int { + return bankList.size + } + + + private var onItemClickListener:((BankList) ->Unit)?=null + + fun setOnItemClickListener(listener:(BankList) -> Unit) + { + onItemClickListener= listener + } + + + + fun getSelected(): BankList? { + return if (checkedPosition != -1) { + bankList[checkedPosition] + } else null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt new file mode 100644 index 0000000..ea6bfe9 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankList.kt @@ -0,0 +1,15 @@ +package com.nivesh.production.bajajfd.model + +import java.io.Serializable + +data class BankList( + val BankName: String?, + val IFSCCode: String?, + val AccountNumber: String?, + val BranchName: String?, + val DefaultBankFlag: String?, + val IsValBank: String?, + val AccountType: String? +): Serializable + + 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 e7bea72..e30ff9e 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 @@ -34,14 +34,11 @@ import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel class StepTwoBajajFDFragment : Fragment() { - private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! - private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton - private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel companion object { @@ -87,6 +84,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) } + binding.edtPANNumber.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { diff --git a/app/src/main/res/drawable/ic_add_icon.xml b/app/src/main/res/drawable/ic_add_icon.xml new file mode 100644 index 0000000..a6bdf84 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_icon.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_select_green.xml b/app/src/main/res/drawable/ic_select_green.xml new file mode 100644 index 0000000..c3bb144 --- /dev/null +++ b/app/src/main/res/drawable/ic_select_green.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_select_outline.xml b/app/src/main/res/drawable/ic_select_outline.xml new file mode 100644 index 0000000..35bec46 --- /dev/null +++ b/app/src/main/res/drawable/ic_select_outline.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 27a05e7..46e4d73 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -772,6 +772,59 @@ android:textSize="@dimen/text_size_14" app:drawableRightCompat="@drawable/svg_down_arrow" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 3ffeedf..1e280f4 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -203,5 +203,6 @@ Once you click on PAY, your order will be placed and you will be redirected to payment gateway. Senior Citizen Non Senior Citizen + Add New Account \ No newline at end of file diff --git a/app/src/main/res/values-night/strings.xml b/app/src/main/res/values-night/strings.xml new file mode 100644 index 0000000..d495c0f --- /dev/null +++ b/app/src/main/res/values-night/strings.xml @@ -0,0 +1,4 @@ + + + Add New Account + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 67b86b6..04c6e17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -210,6 +210,7 @@ Once you click on PAY, your order will be placed and you will be redirected to payment gateway. Senior Citizen Non Senior Citizen + Add New Account From 149f38fa9a67a02829e8de3d6dceee0624337bad Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 29 Dec 2022 20:17:49 +0530 Subject: [PATCH 5/8] title done --- .../production/bajajfd/model/GetCodes.kt | 3 ++ .../ui/fragment/StepTwoBajajFDFragment.kt | 43 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) 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 55a39c7..a93541e 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 @@ -7,4 +7,7 @@ data class GetCodes( override fun toString(): String { return Value } + + + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 2778460..cc54d63 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,5 +1,6 @@ package com.nivesh.production.bajajfd.ui.fragment +import android.annotation.SuppressLint import android.app.DatePickerDialog import android.os.Bundle import android.text.Editable @@ -8,10 +9,12 @@ 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.widget.ArrayAdapter import android.widget.RadioButton +import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.google.android.material.textfield.TextInputEditText @@ -690,7 +693,7 @@ class StepTwoBajajFDFragment : Fragment() { } } - + @SuppressLint("ClickableViewAccessibility") private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -708,6 +711,8 @@ 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( @@ -717,17 +722,45 @@ class StepTwoBajajFDFragment : Fragment() { ) binding.spTitle.setAdapter(adapter) - if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title.isNullOrEmpty()) { + val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText= "$titleText." + if (titleText.isNullOrEmpty()) { binding.spTitle.setText( adapter.getItem(0)?.Value, false ) - } else { - listOfTitle.filter { - it.Value == (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + }else{ + for (title in listOfTitle) { + + 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.spNomineeTitle.setAdapter(adapter) binding.spNomineeTitle.setText( adapter.getItem(0)?.Value, From 9a393b2a864ee85eedcaee5bdac0b2becac3bcf2 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 29 Dec 2022 21:13:21 +0530 Subject: [PATCH 6/8] completed 2nd step --- .../bajajfd/interfaces/ApiInterface.kt | 46 ++--- .../bajajfd/model/ClientBanklist.kt | 11 ++ .../production/bajajfd/model/DeviceInfo.kt | 3 +- .../bajajfd/model/ObjectResponse.kt | 3 +- .../production/bajajfd/model/UserRequest.kt | 2 +- .../bajajfd/model/getClientDetailsResponse.kt | 8 +- .../ui/activity/BajajFdMainActivity.kt | 61 +++++-- .../ui/fragment/StepTwoBajajFDFragment.kt | 116 +++++++------ .../production/bajajfd/util/Constants.kt | 2 +- .../bajajfd/viewModel/BajajFDViewModel.kt | 24 +-- .../res/layout/fragment_bajajfd_step_two.xml | 160 +++++++++--------- 11 files changed, 242 insertions(+), 194 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt 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..0714728 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,75 +8,75 @@ import retrofit2.http.* interface ApiInterface { - @POST("GetRates") + @POST("WebApi_Bajaj/GetRates") suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response - @POST("CheckFDCKYC") + @POST("WebApi_Bajaj/CheckFDCKYC") suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("CreateFDApplication") + @POST("WebApi_Bajaj/CreateFDApplication") suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("DocumentsUpload") + @POST("WebApi_Bajaj/DocumentsUpload") suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("SaveFDOtherData") + @POST("WebApi_Bajaj/SaveFDOtherData") suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("GetFDDetails") + @POST("WebApi_Bajaj/GetFDDetails") suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("UpdateFDPaymentStatus") + @POST("WebApi_Bajaj/UpdateFDPaymentStatus") suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("FinaliseFD") + @POST("WebApi_Bajaj/FinaliseFD") suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("FinaliseKYC") + @POST("WebApi_Bajaj/FinaliseKYC") suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response - @POST("PaymentRequery") + @POST("WebApi_Bajaj/PaymentRequery") suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response // @FormUrlEncoded - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response - @POST("CalculateFDMaturityAmount") + @POST("WebApi_Bajaj/CalculateFDMaturityAmount") suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response - @POST("api/PanCheck_S") + @POST("WebApi_Bajaj/api/PanCheck_S") suspend fun panCheckApi(@Body panCheck: PanCheckRequest, @Header("token") token: String): Response - @POST("getFDStepsCount") + @POST("WebApi_Bajaj/getFDStepsCount") suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response - @POST("api/GetClientDetailV2_S") + @POST("WebApi/api/GetClientDetailV2_S") suspend fun getClientDetails(@Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("GetCodes") + @POST("WebApi_Bajaj/GetCodes") suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response - @POST("api/GetStateMaster") + @POST("WebApi_Bajaj/api/GetStateMaster") suspend fun stateApi( @Header("token") token: String): Response - @POST("api/GetCity") + @POST("WebApi_Bajaj/api/GetCity") suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response 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..0412fb4 --- /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 +) \ 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/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/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/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 02b8634..6f85e42 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 @@ -26,6 +26,7 @@ import com.nivesh.production.bajajfd.viewModel.* class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel + private lateinit var viewModel1: BajajFDViewModel lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel @@ -41,12 +42,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var fdBankDetails: FdBankDetails var nomineeDetails: NomineeDetails var nomineeGuardianDetails: NomineeGuardianDetails - var getClientDetailsResponse : getClientDetailsResponse + var getClientDetailsResponse: getClientDetailsResponse override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() } + init { getClientDetailsResponse = getClientDetailsResponse() createFDRequest = CreateFDRequest() @@ -77,12 +79,30 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // 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 +113,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } } - private fun getStepsCountApi(){ + private fun getStepsCountApi() { val fdStepsCount = FDStepsCountRequest() fdStepsCount.FDProvider = getString(R.string.bajaj) fdStepsCount.NiveshClientCode = "8872" @@ -108,7 +128,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { when (code) { 200 -> { getClientDetailsApi(stepsCountResponse.Response.StepsCount) - // setViewPager(stepsCountResponse.Response.StepsCount) + // setViewPager(stepsCountResponse.Response.StepsCount) } // 650 -> refreshToken() else -> {} @@ -129,14 +149,14 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } 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.sub_broker_code = "1038" val userRequest = UserRequest() - userRequest.UID = "19060" + userRequest.UID = 19060 userRequest.IPAddress = "" userRequest.Source = "Nivesh" userRequest.AppOrWeb = "App" @@ -144,21 +164,26 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { val deviceInfo = DeviceInfo() deviceInfo.device_id = "" + deviceInfo.device_id_for_UMSId = "" + deviceInfo.device_type = "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 -> { 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 2778460..048f111 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 @@ -8,6 +8,7 @@ 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.widget.ArrayAdapter @@ -134,11 +135,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?) { @@ -151,8 +147,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlFirstName) } }) - binding.edtFirstName.setText(splitStringName?.get(0).toString()) - binding.edtMiddleName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -165,8 +159,6 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlMiddleName) } }) - binding.edtMiddleName.setText(splitStringName?.get(1).toString()) - binding.edtLastName.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -179,7 +171,21 @@ 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() + if (splitStringName?.size == 1) { + binding.edtFirstName.setText(splitStringName[0]) + } else if (splitStringName?.size == 2) { + binding.edtFirstName.setText(splitStringName[0]) + binding.edtLastName.setText(splitStringName[1]) + } else if (splitStringName?.size == 3) { + binding.edtFirstName.setText(splitStringName[0]) + binding.edtMiddleName.setText(splitStringName[1]) + binding.edtLastName.setText(splitStringName[2]) + } binding.spGender.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlGender) @@ -220,23 +226,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?) { @@ -249,6 +238,8 @@ 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?) { @@ -261,6 +252,8 @@ 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?) { @@ -273,6 +266,7 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlAddressLine3) } }) + binding.edtAddressLine3.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD3) binding.spState.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlState) @@ -292,11 +286,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?) { @@ -333,14 +329,29 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlNomineeLastName) } }) + + val splitNomineeName = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeName?.split( + "\\s".toRegex())?.toTypedArray() + if (splitNomineeName?.size == 1) { + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + }else if (splitNomineeName?.size == 2){ + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + binding.edtNomineeLastName.setText(splitNomineeName[1]) + }else if(splitNomineeName?.size == 3){ + binding.edtNomineeFirstName.setText(splitNomineeName[0]) + binding.edtNomineeMiddleName.setText(splitNomineeName[1]) + binding.edtNomineeLastName.setText(splitNomineeName[2]) + } + + binding.edtNomineeDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) binding.edtNomineeDOB.setOnClickListener { removeError(binding.tlNomineeDOB) datePicker(binding.edtNomineeDOB) } + binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlNomineeRelation) } - binding.cbNomineeSameAddress.setOnCheckedChangeListener { _, _ -> } @@ -358,6 +369,8 @@ 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?) { @@ -370,9 +383,11 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlGuardianAge) } }) + binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlGuardianRelation) } + binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -417,6 +432,8 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlIFSC) } }) + // binding.edtIFSC.setText() + binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -717,14 +734,32 @@ class StepTwoBajajFDFragment : Fragment() { ) binding.spTitle.setAdapter(adapter) - if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title.isNullOrEmpty()) { + val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText= "$titleText." + if (titleText.isNullOrEmpty()) { binding.spTitle.setText( adapter.getItem(0)?.Value, false ) - } else { - listOfTitle.filter { - it.Value == (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + }else{ + for (title in listOfTitle) { + 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 +// } } } @@ -838,11 +873,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( @@ -1245,18 +1275,6 @@ 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.edtAddressLine1.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtAddressLine1, 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..7ad9327 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 @@ -5,37 +5,27 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject 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.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)) - } - + 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 { diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 6e5744d..5ff0c5a 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -201,6 +201,32 @@ android:textSize="@dimen/text_size_14" /> + + + + + - - - - - - - - - - - - - - - - - + android:hint="@string/enterEmailAddress"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:hint="@string/enterAddress3"> Date: Fri, 30 Dec 2022 11:19:16 +0530 Subject: [PATCH 7/8] added recommended bank list code --- .../adapter/RecommendedBankListAdapter.kt | 41 ++++ .../bajajfd/interfaces/ApiInterface.kt | 115 ++++++++--- .../nivesh/production/bajajfd/model/Bank.kt | 6 + .../bajajfd/model/GetFDBankListResponse.kt | 5 + .../bajajfd/model/ResponseXXXXXXXX.kt | 9 + .../bajajfd/repositories/MainRepository.kt | 20 +- .../ui/fragment/StepTwoBajajFDFragment.kt | 190 ++++++++++++++---- .../viewModel/StepTwoBajajFDViewModel.kt | 7 + .../res/layout/fragment_bajajfd_step_two.xml | 50 +---- app/src/main/res/layout/layout_bank_list.xml | 43 ++++ app/src/main/res/values-hi-rIN/strings.xml | 2 + app/src/main/res/values/strings.xml | 70 ++----- 12 files changed, 379 insertions(+), 179 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/Bank.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/GetFDBankListResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt create mode 100644 app/src/main/res/layout/layout_bank_list.xml 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..ece5d80 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt @@ -0,0 +1,41 @@ +package com.nivesh.production.bajajfd.adapter + +import android.app.Activity +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, private val activity: Activity +) : RecyclerView.Adapter() { + + class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val tvText: TextView + + init { + tvText = view.findViewById(R.id.tvText) + + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { + val itemView: View = LayoutInflater.from(parent.context) + .inflate(R.layout.row_dropdown, parent, false) + return MyViewHolder(itemView) + } + + override fun onBindViewHolder(holder: MyViewHolder, position: Int) { + val bank: Bank = bankList[position] + holder.tvText.setText(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/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 0714728..5af4e90 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 @@ -9,75 +9,142 @@ import retrofit2.http.* interface ApiInterface { @POST("WebApi_Bajaj/GetRates") - suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response + suspend fun getRates( + @Body getRatesRequest: GetRatesRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/CheckFDCKYC") - suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun checkFDKYC( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/CreateFDApplication") - suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun createFDApp( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/DocumentsUpload") - suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun documentsUpload( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/SaveFDOtherData") - suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun saveFDOtherData( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetFDDetails") - suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun getFDDetails( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/UpdateFDPaymentStatus") - suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun updateFDPaymentStatus( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/FinaliseFD") - suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun finaliseFD( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/FinaliseKYC") - suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun finaliseKYC( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/PaymentRequery") - suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response + suspend fun paymentReQuery( + @Body requestBody: RequestBody, + @Header("token") token: String + ): Response // @FormUrlEncoded @POST("WebApi_Bajaj/GetCodes") - suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response + suspend fun getCodes( + @Body requestBody: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/CalculateFDMaturityAmount") - suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response + 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 + suspend fun panCheckApi( + @Body panCheck: PanCheckRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/getFDStepsCount") - suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response + 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 + suspend fun getClientDetails( + @Body getClientDetailsRequest: getClientDetailsRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun titleApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun genderApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun annualIncomeApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun relationShipApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun maritalStatusApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/GetCodes") - suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response + suspend fun occupationApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response @POST("WebApi_Bajaj/api/GetStateMaster") - suspend fun stateApi( @Header("token") token: String): Response + suspend fun stateApi(@Header("token") token: String): Response @POST("WebApi_Bajaj/api/GetCity") - suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response - + suspend fun cityApi( + @Body cityRequest: CityRequest, + @Header("token") token: String + ): Response + @GET("WebApi_Bajaj/api/GetCity") + suspend fun bankListApi(@Header("token") token: String): Response } \ 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/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/ResponseXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt new file mode 100644 index 0000000..b674b23 --- /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/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index 8d937e4..cb8ed28 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,15 +7,19 @@ 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) @@ -64,8 +68,12 @@ 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) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 048f111..16618da 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,6 +1,7 @@ package com.nivesh.production.bajajfd.ui.fragment import android.app.DatePickerDialog +import android.app.Dialog import android.os.Bundle import android.text.Editable import android.text.InputFilter @@ -8,16 +9,19 @@ 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.widget.ArrayAdapter import android.widget.RadioButton +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.RecommendedBankListAdapter import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.model.* @@ -176,15 +180,19 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split( "\\s".toRegex() )?.toTypedArray() - if (splitStringName?.size == 1) { - binding.edtFirstName.setText(splitStringName[0]) - } else if (splitStringName?.size == 2) { - binding.edtFirstName.setText(splitStringName[0]) - binding.edtLastName.setText(splitStringName[1]) - } else if (splitStringName?.size == 3) { - binding.edtFirstName.setText(splitStringName[0]) - binding.edtMiddleName.setText(splitStringName[1]) - binding.edtLastName.setText(splitStringName[2]) + 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 { _, _, _, _ -> @@ -330,17 +338,25 @@ class StepTwoBajajFDFragment : Fragment() { } }) - val splitNomineeName = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeName?.split( - "\\s".toRegex())?.toTypedArray() - if (splitNomineeName?.size == 1) { - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - }else if (splitNomineeName?.size == 2){ - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - binding.edtNomineeLastName.setText(splitNomineeName[1]) - }else if(splitNomineeName?.size == 3){ - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - binding.edtNomineeMiddleName.setText(splitNomineeName[1]) - binding.edtNomineeLastName.setText(splitNomineeName[2]) + 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]) + } } binding.edtNomineeDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) @@ -369,7 +385,11 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlGuardianName) } }) - binding.edtGuardianName.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeGuardian) + binding.edtGuardianName.setText( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeGuardian + ) binding.edtGuardianAge.addTextChangedListener(object : TextWatcher { @@ -432,7 +452,7 @@ class StepTwoBajajFDFragment : Fragment() { removeError(binding.tlIFSC) } }) - // binding.edtIFSC.setText() + // binding.edtIFSC.setText() binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { @@ -476,6 +496,9 @@ class StepTwoBajajFDFragment : Fragment() { Log.e("paymentMode", "-->" + rbPaymentMode.text) } + binding.tvEligibleBankOption.setOnClickListener{ + apiForEligibleBankList() + } binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -625,7 +648,6 @@ class StepTwoBajajFDFragment : Fragment() { binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 0 } - return root } @@ -639,6 +661,7 @@ class StepTwoBajajFDFragment : Fragment() { "0".plus(monthOfYear) } edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + year)) + edtDOB.setSelection(edtDOB.text.toString().length) }, year, month, day ) datePickerDialog.datePicker.maxDate = cal.timeInMillis @@ -648,7 +671,6 @@ class StepTwoBajajFDFragment : Fragment() { datePickerDialog.show() } - private fun panCheckApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val panCheck = PanCheckRequest() @@ -734,17 +756,18 @@ class StepTwoBajajFDFragment : Fragment() { ) binding.spTitle.setAdapter(adapter) - val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title - val newTitleText= "$titleText." + val titleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText = "$titleText." if (titleText.isNullOrEmpty()) { 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 -> @@ -1087,11 +1110,23 @@ 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.isNullOrEmpty()) { + binding.spState.setText( + adapter.getItem(0)?.State_Name, + false + ) + cityListApi(adapter.getItem(0)?.State_Id) + } else { + for (title in listOfStates) { + if (title.State_Code == newTitleText) { + binding.spState.setText(title.State_Name, false) + cityListApi(title.State_Id) + break + } + } + } } } // 650 -> refreshToken() @@ -1119,15 +1154,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) { @@ -1146,10 +1183,22 @@ 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.isNullOrEmpty()) { + 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() @@ -1170,6 +1219,61 @@ 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 -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$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) + val rvClientList = dialog.findViewById(R.id.rvBankList) + rvClientList.layoutManager = LinearLayoutManager(activity as BajajFdMainActivity) + val tvCancel = dialog.findViewById(R.id.tvCancel) + + if (bankList.isNotEmpty()) { + val bankListAdapter = RecommendedBankListAdapter(bankList, activity as BajajFdMainActivity) + rvClientList.adapter = bankListAdapter + } + tvCancel.setOnClickListener{ + dialog.dismiss() + } + } // validations private fun validation(): Boolean { 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..b0cbf52 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 @@ -104,4 +104,11 @@ 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)) + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 5ff0c5a..92b016e 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -400,55 +400,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 4eb9e1e..455ac7b 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -222,5 +222,7 @@ Select State Select City AnnualIncome + Information + X \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec6a357..47c5b44 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,7 +42,8 @@ InterestPayoutFreq EN Min. 12 months, Max. 60 months - + MINAmount + MAXAmount Please enter amount @@ -75,12 +76,21 @@ Enter Address Line 1 Enter Address Line 2 Enter Address Line 3 - State City PinCode Verified Not Verified + Salutation + Gender + MaritalStatus + Occupation + NomineeRelationship + Select Income + Select State + Select City + AnnualIncome + Information Nominee Details (Optional) @@ -215,38 +225,10 @@ Once you click on PAY, your order will be placed and you will be redirected to payment gateway. Senior Citizen Non Senior Citizen - - - MINAmount - MAXAmount OK Cancel - Salutation - Gender - MaritalStatus - Occupation - NomineeRelationship - Select Income - Select State - Select City - AnnualIncome - + X - - - - - - - - - - - - - - - Aadhaar Card @@ -255,30 +237,4 @@ Driving Licence - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 610a48697cdaaa44f2e515531235417b07322346 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Sat, 31 Dec 2022 14:15:58 +0530 Subject: [PATCH 8/8] added fdresponse model --- .../bajajfd/interfaces/ApiInterface.kt | 7 ++ .../bajajfd/interfaces/BajajFDInterface.kt | 2 +- .../model/CreateFDApplicationResponse.kt | 5 + .../model/FDCreationDetailsResponse.kt | 7 ++ .../bajajfd/model/ResponseXXXXXXXXXXX.kt | 9 ++ .../bajajfd/repositories/MainRepository.kt | 3 + .../ui/activity/BajajFdMainActivity.kt | 16 +++- .../ui/fragment/StepFourBajajFDFragment.kt | 91 ++++++++++++++++++- .../ui/fragment/StepOneBajajFDFragment.kt | 3 + .../ui/fragment/StepTwoBajajFDFragment.kt | 24 +++-- .../nivesh/production/bajajfd/util/Common.kt | 5 +- .../viewModel/StepFourBajajFDViewModel.kt | 25 +++-- .../res/layout/item_bank_list_preview.xml | 4 +- 13 files changed, 178 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt 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 9fe2b23..006ec10 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 @@ -153,4 +153,11 @@ interface ApiInterface { @GET("WebApi/api/GetBankDetailsFromIFSC?") suspend fun getIFSCDetailsApi(@Query("ifsc") ifsc : String,@Header("token") token: String): Response + + @POST("WebApi_Bajaj/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..fac88a3 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 stepTwoApi(data: CreateFDRequest) fun stepThreeApi(data: String?) fun stepFourApi(data: String?) } \ 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/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/ResponseXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt new file mode 100644 index 0000000..0653d1d --- /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: Any, + 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/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index cdcad03..4dcb559 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 @@ -82,4 +82,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun ifscCodeDetailsCheck(str: String, token: String) = apiInterface.getIFSCDetailsApi(str, token) + + suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = + apiInterface.payModeApi(getCodeRequest, 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 6f85e42..2b41fd8 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 @@ -44,6 +44,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var nomineeGuardianDetails: NomineeGuardianDetails var getClientDetailsResponse: getClientDetailsResponse + var stepCount : Int = 0 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() @@ -127,6 +129,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { stepsCountResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + stepCount = stepsCountResponse.Response.StepsCount getClientDetailsApi(stepsCountResponse.Response.StepsCount) // setViewPager(stepsCountResponse.Response.StepsCount) } @@ -308,14 +311,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) { + binding.viewPager.currentItem = 2 + }else{ + // call create fd api + } + } // step 3 response override fun stepThreeApi(data: String?) { Log.e("stepThreeApi", " response ---> $data") + // call create fd api + + // StepFourBajajFDFragment.getInstance().getCreateFDResponse() binding.viewPager.currentItem = 3 } 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..1a0f314 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 com.google.gson.Gson import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.GetCodeRequest +import com.nivesh.production.bajajfd.model.GetCodeResponse +import com.nivesh.production.bajajfd.model.GetRatesRequest 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() { @@ -83,7 +91,88 @@ class StepFourBajajFDFragment : Fragment() { return root } - override fun onDestroyView() { + fun getCreateFDResponse() + { + + } + + private fun paymentModeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.genderCategory) + 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 -> { + + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + + } + + } + + private fun getFDDetailsApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetRatesRequest() + stepFourBajajFDViewModel.getFDDetails(getCodeRequest, Constants.token) + stepFourBajajFDViewModel.getFDDetailsMutableData.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 -> { + + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + + } + } + + + 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 592d33d..c30abc0 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 { @@ -122,6 +123,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) @@ -161,6 +163,7 @@ class StepOneBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" (activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails + Log.e("Maturity", "-->" + rgMaturity.text) bajajFDInterface.stepOneApi("stepOneResponse") } } 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 c58fdbb..1bf27b0 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,6 +1,5 @@ package com.nivesh.production.bajajfd.ui.fragment -import android.annotation.SuppressLint import android.app.DatePickerDialog import android.app.Dialog import android.os.Bundle @@ -52,7 +51,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton - private var rbPaymentMode: RadioButton? = null + private lateinit var rbPaymentMode: RadioButton private var cal = Calendar.getInstance() private lateinit var listOfTitle: List @@ -99,6 +98,8 @@ class StepTwoBajajFDFragment : Fragment() { listOfStates = ArrayList() listOfIFSC = ArrayList() + rbPaymentMode = RadioButton(activity as BajajFdMainActivity) + // Personal Details binding.edtMobileNumber.filters = arrayOf(LengthFilter(10)) binding.edtPANNumber.filters = arrayOf(LengthFilter(10)) @@ -120,7 +121,9 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) // 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) @@ -368,7 +371,9 @@ class StepTwoBajajFDFragment : Fragment() { } } - binding.edtNomineeDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) + 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) @@ -505,9 +510,10 @@ class StepTwoBajajFDFragment : Fragment() { } } + rbPaymentMode.text = getString(R.string.Upi) binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> rbPaymentMode = group.findViewById(checkedId) - Log.e("paymentMode", "-->" + rbPaymentMode?.text) + Log.e("paymentMode", "-->" + rbPaymentMode.text) } binding.tvEligibleBankOption.setOnClickListener { @@ -674,7 +680,7 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdBankDetails.BankName = bankListAdapter.getSelected()?.BankName (activity as BajajFdMainActivity).fdBankDetails.PaymentMode = - rbPaymentMode?.text.toString() + rbPaymentMode.text.toString() (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails = (activity as BajajFdMainActivity).applicantDetails (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = (activity as BajajFdMainActivity).applicantRelationDetails @@ -688,7 +694,7 @@ class StepTwoBajajFDFragment : Fragment() { "CreateFDRequest", "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) ) - bajajFDInterface.stepTwoApi("stepTwoResponse") + bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest) } } @@ -852,7 +858,8 @@ class StepTwoBajajFDFragment : Fragment() { if (monthOfYear.toString().length == 1) { "0".plus(monthOfYear) } - edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) + // 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 ) @@ -922,7 +929,6 @@ class StepTwoBajajFDFragment : Fragment() { } - @SuppressLint("ClickableViewAccessibility") private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() 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 ef479b7..5cc34c9 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 @@ -175,9 +175,10 @@ class Common { } fun getDate(string :String): String { - val input = SimpleDateFormat("dd-MM-yyyy", Locale.US) + val input = SimpleDateFormat("dd/MM/yyyy", Locale.US) val mDate : Date? = input.parse(string) - val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + // val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) return simpleDateFormat.format(mDate as Date) } } 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..7f55996 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,6 +4,7 @@ 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.Resource @@ -11,8 +12,24 @@ import kotlinx.coroutines.launch class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - private val getRatesMutableData: MutableLiveData> = MutableLiveData() + 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)) + } + + val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() + fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + getFDDetailsMutableData.postValue(Resource.Loading()) + val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) + getFDDetailsMutableData.postValue(handleRatesResponse(response)) + } + + + + private val getRatesMutableData: MutableLiveData> = MutableLiveData() fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) @@ -29,11 +46,7 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie } - fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) diff --git a/app/src/main/res/layout/item_bank_list_preview.xml b/app/src/main/res/layout/item_bank_list_preview.xml index 885baf7..986c870 100644 --- a/app/src/main/res/layout/item_bank_list_preview.xml +++ b/app/src/main/res/layout/item_bank_list_preview.xml @@ -17,8 +17,8 @@