From a851df90e9cc6e0aa8bb38235c5a4ad2d6783604 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 22 Dec 2022 20:40:14 +0530 Subject: [PATCH] completed first step --- app/src/main/AndroidManifest.xml | 2 +- .../bajajfd/adapter/SpinnerAdapter.kt | 35 - .../bajajfd/interfaces/BajajFDInterface.kt | 2 + .../bajajfd/model/ApplicantDetails.kt | 24 + .../bajajfd/model/ApplicantRelationDetails.kt | 10 + .../model/CreateFDApplicationRequest.kt | 10 + .../bajajfd/model/CreateFDRequest.kt | 5 + .../bajajfd/model/FDInvestmentDetails.kt | 16 + .../production/bajajfd/model/FdBankDetails.kt | 10 + .../bajajfd/model/NomineeDetails.kt | 18 + .../bajajfd/model/NomineeGuardianDetails.kt | 14 + .../production/bajajfd/model/ROIDataList.kt | 2 +- .../production/bajajfd/model/Response.kt | 2 +- .../ui/activity/BajajFdMainActivity.kt | 38 +- .../ui/fragment/StepOneBajajFDFragment.kt | 188 ++- .../ui/fragment/StepTwoBajajFDFragment.kt | 172 ++- .../nivesh/production/bajajfd/util/Common.kt | 17 +- app/src/main/res/drawable/cursor_color.xml | 2 +- .../res/drawable/rounded_corner_with_line.xml | 4 +- app/src/main/res/font/font.xml | 10 +- .../{robotoblack.ttf => roboto_black.ttf} | Bin .../font/{robotobold.ttf => roboto_bold.ttf} | Bin .../{robotolight.ttf => roboto_light.ttf} | Bin .../{robotomedium.ttf => roboto_medium.ttf} | Bin .../{robotoregular.ttf => roboto_regular.ttf} | Bin .../font/{robotothin.ttf => roboto_thin.ttf} | Bin app/src/main/res/layout/activity_bajaj_fd.xml | 78 +- .../main/res/layout/bank_detail_select.xml | 6 +- .../res/layout/fragment_bajajfd_step_five.xml | 8 +- .../res/layout/fragment_bajajfd_step_four.xml | 14 +- .../res/layout/fragment_bajajfd_step_one.xml | 61 +- .../layout/fragment_bajajfd_step_three.xml | 49 +- .../res/layout/fragment_bajajfd_step_two.xml | 57 +- .../main/res/layout/fragment_step_fail.xml | 6 +- app/src/main/res/values-hi-rIN/strings.xml | 135 +- app/src/main/res/values-night/themes.xml | 4 +- app/src/main/res/values/attr_themes.xml | 105 +- app/src/main/res/values/colors.xml | 1216 +---------------- app/src/main/res/values/dimens.xml | 3 +- app/src/main/res/values/strings.xml | 54 +- app/src/main/res/values/style.xml | 40 +- app/src/main/res/values/themes.xml | 8 +- 42 files changed, 699 insertions(+), 1726 deletions(-) delete mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantRelationDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/FDInvestmentDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/FdBankDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/NomineeDetails.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/NomineeGuardianDetails.kt rename app/src/main/res/font/{robotoblack.ttf => roboto_black.ttf} (100%) rename app/src/main/res/font/{robotobold.ttf => roboto_bold.ttf} (100%) rename app/src/main/res/font/{robotolight.ttf => roboto_light.ttf} (100%) rename app/src/main/res/font/{robotomedium.ttf => roboto_medium.ttf} (100%) rename app/src/main/res/font/{robotoregular.ttf => roboto_regular.ttf} (100%) rename app/src/main/res/font/{robotothin.ttf => roboto_thin.ttf} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7a1d06e..356061a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,7 @@ android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" - android:label="@string/app_name" + android:label="@string/appName" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.BajajFdLib" diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt deleted file mode 100644 index a4d2eef..0000000 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.nivesh.production.bajajfd.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ArrayAdapter -import android.widget.TextView -import com.nivesh.production.bajajfd.R -import com.nivesh.production.bajajfd.model.GetCodes - - -internal class SpinnerAdapter( - context: Context, - private var listItems: List -) : - ArrayAdapter(context, R.layout.spinner_dropdown, listItems) { - - override fun getItemId(position: Int): Long { - return position.toLong() - } - - override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View { - var v = convertView - if (v == null) { - val inflater = LayoutInflater.from(context) - v = inflater.inflate(R.layout.spinner_dropdown, parent, false) - } - val lbl = v!!.findViewById(R.id.tvText) as TextView - val getCode : GetCodes = listItems[position] - lbl.text = getCode.Value - return v - } - -} \ 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 92c09ba..276b718 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 @@ -1,5 +1,7 @@ package com.nivesh.production.bajajfd.interfaces +import com.nivesh.production.bajajfd.model.CreateFDRequest + interface BajajFDInterface { fun stepOneApi(data: String?) fun stepTwoApi(data: String?) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantDetails.kt new file mode 100644 index 0000000..3d28613 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantDetails.kt @@ -0,0 +1,24 @@ +package com.nivesh.production.bajajfd.model + +data class ApplicantDetails( + var AnnualIncome: String?= null, + var ApplicantAddress1: String?= null, + var ApplicantAddress2: String?= null, + var ApplicantAddress3: String?= null, + var ApplicantCity: String?= null, + var ApplicantCountry: String?= null, + var ApplicantDOB: String?= null, + var ApplicantEmail: String?= null, + var ApplicantFirstName: String?= null, + var ApplicantGender: String?= null, + var ApplicantLastName: String?= null, + var ApplicantMaritalStatus: String?= null, + var ApplicantMiddleName: String?= null, + var ApplicantMobile: String?= null, + var ApplicantOccupation: String?= null, + var ApplicantPAN: String?= null, + var ApplicantPincode: Int?= 0, + var ApplicantQualification: String?= null, + var ApplicantSalutation: String?= null, + var ApplicantState: String?= null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantRelationDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantRelationDetails.kt new file mode 100644 index 0000000..91eff1b --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ApplicantRelationDetails.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class ApplicantRelationDetails( + var ApplicantMotherFirstName: String? = null, + var ApplicantMotherLastName: String? = null, + var ApplicantRelation: String? = null, + var ApplicantRelationFirstName: String? = null, + var ApplicantRelationLastName: String? = null, + var ApplicantRelationSalutation: String? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt new file mode 100644 index 0000000..a5c8d1e --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationRequest.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class CreateFDApplicationRequest( + var ApplicantDetails: ApplicantDetails ? = null, + var ApplicantRelationDetails: ApplicantRelationDetails? = null, + var FDInvestmentDetails: FDInvestmentDetails? = null, + var FdBankDetails: FdBankDetails? = null, + var NomineeDetails: NomineeDetails? = null, + var NomineeGuardianDetails: NomineeGuardianDetails ? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDRequest.kt new file mode 100644 index 0000000..3921974 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDRequest.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class CreateFDRequest( + var CreateFDApplicationRequest: CreateFDApplicationRequest? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FDInvestmentDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FDInvestmentDetails.kt new file mode 100644 index 0000000..060bb45 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FDInvestmentDetails.kt @@ -0,0 +1,16 @@ +package com.nivesh.production.bajajfd.model + +data class FDInvestmentDetails( + var CKYCNumber: String? = null, + var CitizenType: String? = null, + var CustomerType: String? = null, + var Device: String? = null, + var FDAmount: Double? = 0.0, + var Frequency: String? = null, + var IPAddress: String? = null, + var Interest: Double? = 0.0, + var NiveshClientCode: String? = null, + var Provider: String? = null, + var Source: String? = null, + var Tenure: Int? = 0 +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FdBankDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FdBankDetails.kt new file mode 100644 index 0000000..f292a4c --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FdBankDetails.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class FdBankDetails( + var AccountNumber: String?= null, + var AccountType: String?= null, + var BankBranch: String?= null, + var BankName: String?= null, + var IFSCCode: String?= null, + var PaymentMode: String?= null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeDetails.kt new file mode 100644 index 0000000..456e518 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeDetails.kt @@ -0,0 +1,18 @@ +package com.nivesh.production.bajajfd.model + +data class NomineeDetails( + var NomineeAddress1: String?= null, + var NomineeAddress2: String?= null, + var NomineeAddress3: String?= null, + var NomineeCity: String?= null, + var NomineeCountry: String?= null, + var NomineeDOB: String?= null, + var NomineeFirstName: String?= null, + var NomineeGender: String?= null, + var NomineeLastName: String?= null, + var NomineeMiddleName: String?= null, + var NomineePincode: Int?= 0, + var NomineeRelation: String?= null, + var NomineeSalutation: String?= null, + var NomineeState: String?= null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeGuardianDetails.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeGuardianDetails.kt new file mode 100644 index 0000000..9416a47 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/NomineeGuardianDetails.kt @@ -0,0 +1,14 @@ +package com.nivesh.production.bajajfd.model + +data class NomineeGuardianDetails( + var GuardianAddress1: String?= null, + var GuardianAddress2: String?= null, + var GuardianAddress3: String?= null, + var GuardianAge: Int?= 0, + var GuardianCity: String?= null, + var GuardianCountry: String?= null, + var GuardianName: String?= null, + var GuardianPincode: Int?= 0, + var GuardianSalutation: String?= null, + var GuardianState: String?= null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt index b41df97..b7294aa 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt @@ -6,6 +6,6 @@ data class ROIDatalist( val Type: String ) { override fun toString(): String { - return Tenure.plus(" Months ").plus(" | ").plus(ROI).plus(" % ") + return Tenure.plus(" Months ").plus(" | ").plus(ROI).plus("%") } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt index 7d59270..f135608 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt @@ -1,7 +1,7 @@ data class Response( val Errors: List, val Message: String, - val ROIDatalist: List, + val ROIDatalist: MutableList, val Status: String, val StatusCode: Int ) \ 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 a8d2bab..524ea7e 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 @@ -11,13 +11,12 @@ import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding 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.GetCodes +import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.ui.fragment.* import com.nivesh.production.bajajfd.ui.providerfactory.FDModelProviderFactory import com.nivesh.production.bajajfd.ui.providerfactory.GetRatesModelProviderFactory +import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape import com.nivesh.production.bajajfd.util.Resource @@ -30,9 +29,17 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { private lateinit var binding: ActivityBajajFdBinding lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel - lateinit var viewModel: BajajFDViewModel + private lateinit var viewModel: BajajFDViewModel lateinit var listOfFrequency: List + 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 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -44,6 +51,16 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { binding = ActivityBajajFdBinding.inflate(layoutInflater) setContentView(binding.root) + createFDRequest = CreateFDRequest() + createFDApplicantRequest = CreateFDApplicationRequest() + + fdInvestmentDetails = FDInvestmentDetails() + applicantDetails = ApplicantDetails() + applicantRelationDetails = ApplicantRelationDetails() + fdBankDetails = FdBankDetails() + nomineeDetails = NomineeDetails() + nomineeGuardianDetails = NomineeGuardianDetails() + //start Repository val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) @@ -55,7 +72,9 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { viewModel = ViewModelProvider(this, fdViewModelProviderFactory)[BajajFDViewModel::class.java] listOfFrequency = ArrayList() - getCodeApi() + if (Common.isNetworkAvailable(this)) { + getCodeApi() + } binding.imgBack.setOnClickListener { finish() @@ -68,7 +87,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { getCodeRequest.Category = "InterestPayoutFreq" getCodeRequest.Language = "EN" getCodeRequest.InputValue = "" - val codeRequest: String = Gson().toJson(getCodeRequest); + val codeRequest: String = Gson().toJson(getCodeRequest) val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull()) viewModel.getCode(requestBody) viewModel.getRatesMutableData.observe(this) { response -> @@ -76,7 +95,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { is Resource.Success -> { Log.e("response", "-->$response") val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data.toString(), GetCodeResponse::class.java) + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { @@ -194,20 +213,25 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // step 1 response override fun stepOneApi(data: String?) { Log.e("stepOneApi", " response ---> $data") + binding.viewPager.currentItem = 1 } // step 2 response override fun stepTwoApi(data: String?) { Log.e("stepTwoApi", " response ---> $data") + binding.viewPager.currentItem = 2 } // step 3 response override fun stepThreeApi(data: String?) { Log.e("stepThreeApi", " response ---> $data") + binding.viewPager.currentItem = 3 } // step 4 response override fun stepFourApi(data: String?) { Log.e("stepFourApi", " response ---> $data") + binding.viewPager.currentItem = 4 } + } \ No newline at end of file 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 36dcfdf..89b52db 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 @@ -12,20 +12,17 @@ import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.RadioButton import androidx.fragment.app.Fragment +import com.google.android.material.textfield.TextInputLayout import com.google.gson.Gson import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding 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.GetCodes 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.removeError import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.RequestBody.Companion.toRequestBody class StepOneBajajFDFragment : Fragment() { private var _binding: FragmentBajajfdStepOneBinding? = null @@ -34,7 +31,9 @@ class StepOneBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel private lateinit var rgMaturity: RadioButton - private lateinit var listOfTenure: List + private lateinit var listOfTenure: MutableList + private var tenure :Int = 0 + private var interest : Double = 0.0 companion object { fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment { @@ -60,33 +59,23 @@ class StepOneBajajFDFragment : Fragment() { // Amount binding.edtAmount.addTextChangedListener(object : TextWatcher { - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - + 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) { - if (binding.tlDepositAmount.error != null) { - binding.tlDepositAmount.error = null - } + removeError(binding.tlDepositAmount) } }) // Frequency if ((activity as BajajFdMainActivity).listOfFrequency.isNotEmpty()) { - // val adapter = SpinnerAdapter( activity as BajajFdMainActivity,(activity as BajajFdMainActivity).listOfFrequency) - - val adapter = ArrayAdapter( + val adapter = ArrayAdapter( activity as BajajFdMainActivity, R.layout.spinner_dropdown, (activity as BajajFdMainActivity).listOfFrequency ) binding.spInterestPayout.setAdapter(adapter) - binding.spInterestPayout.setOnItemClickListener { parent, view, position, id -> - if (binding.tlInterestPayout.error != null) { - binding.tlInterestPayout.error = null - } + binding.spInterestPayout.setOnItemClickListener { _, _, position, _ -> + removeError(binding.tlInterestPayout) binding.tvFrequency.text = (activity as BajajFdMainActivity).listOfFrequency[position].Value getRatesApi() @@ -95,40 +84,60 @@ class StepOneBajajFDFragment : Fragment() { // Tenure if (listOfTenure.isNotEmpty()) { - binding.spTenure.setOnItemClickListener { parent, view, position, id -> + binding.spTenure.setOnItemClickListener { _, _, position, _ -> + removeError(binding.tlInterestTenure) Log.e("Tenure", "--->".plus(listOfTenure[position].Tenure)) + tenure = listOfTenure[position].Tenure.toInt() + interest = listOfTenure[position].ROI } } - - - binding.swSeniorCitizen.setOnCheckedChangeListener { compoundButton, b -> - binding.swSeniorCitizen.isChecked = !b + // Senior / Non Senior Citizen + binding.swSeniorCitizen.setOnCheckedChangeListener { _, _ -> + getRatesApi() } // Maturity Options binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> rgMaturity = group.findViewById(checkedId) - Log.e("rgMaturity", "-->" + rgMaturity.text) + Log.e("Maturity", "-->" + rgMaturity.text) } // TAX Deduct - binding.rbDeductTax.setOnCheckedChangeListener { compoundButton, b -> - binding.rbDeductTax.isChecked = !b + binding.rbDeductTax.setOnCheckedChangeListener { _, _ -> + Log.e("DeductTax", "-->" + binding.rbDeductTax.isChecked) } - binding.tvROI.text = "" binding.tvMaturityAmount.text = "" // Next Button binding.btnNext.setOnClickListener { if (validation()) { + (activity as BajajFdMainActivity).fdInvestmentDetails.FDAmount = binding.edtAmount.text.toString().toDouble() + (activity as BajajFdMainActivity).fdInvestmentDetails.Frequency = binding.spInterestPayout.text.toString() + (activity as BajajFdMainActivity).fdInvestmentDetails.Tenure = tenure + (activity as BajajFdMainActivity).fdInvestmentDetails.Interest = interest + (activity as BajajFdMainActivity).fdInvestmentDetails.NiveshClientCode = "8872" + (activity as BajajFdMainActivity).fdInvestmentDetails.Provider = "Bajaj" + (activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = "" + (activity as BajajFdMainActivity).fdInvestmentDetails.Device = "App" + (activity as BajajFdMainActivity).fdInvestmentDetails.Source = "nivesh" + if (binding.swSeniorCitizen.isChecked){ + (activity as BajajFdMainActivity).fdInvestmentDetails.CitizenType = getString(R.string.seniorCitizen) + }else{ + (activity as BajajFdMainActivity).fdInvestmentDetails.CitizenType = getString(R.string.nonSeniorCitizen) + } + (activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = "" + (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" + bajajFDInterface.stepOneApi("stepOneResponse") } } return root } + + private fun validation(): Boolean { return if (binding.edtAmount.text.toString().isEmpty()) { Common.commonErrorMethod(binding.edtAmount, binding.tlDepositAmount, "") @@ -145,99 +154,56 @@ class StepOneBajajFDFragment : Fragment() { } } - private fun getCodeApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = "BajajFD" - getCodeRequest.Category = "InterestPayoutFreq" - getCodeRequest.Language = "EN" - getCodeRequest.InputValue = "" - val codeRequest: String = Gson().toJson(getCodeRequest) - val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull()) - stepOneBajajFDViewModel.getCode(requestBody) - stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - + private fun getRatesApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getRatesRequest = GetRatesRequest() + getRatesRequest.fdProvider = "Bajaj" + getRatesRequest.frequency = binding.spInterestPayout.text.toString() + if (binding.swSeniorCitizen.isChecked) { + getRatesRequest.type = getString(R.string.seniorCitizen) + } else { + getRatesRequest.type = getString(R.string.nonSeniorCitizen) + } + stepOneBajajFDViewModel.getRates(getRatesRequest) + stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getRatesResponse: GetRatesResponse = + Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java) + getRatesResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (listOfTenure.isNotEmpty()) { + listOfTenure.clear() + } + listOfTenure = getRatesResponse.Response.ROIDatalist + val adapter = + ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfTenure + ) + binding.spTenure.setAdapter(adapter) + } + // 650 -> refreshToken() + else -> {} } - // 650 -> refreshToken() - else -> {} } } - } - is Resource.Error -> { - response.message?.let { message -> - Log.e(" ", "An error occurred:$message") - } - } - is Resource.Loading -> { - - } - } - } - } - - - private fun getRatesApi() { - val getRatesRequest = GetRatesRequest() - getRatesRequest.fdProvider = "Bajaj" - getRatesRequest.frequency = binding.spInterestPayout.text.toString() - if (binding.swSeniorCitizen.isChecked) { - getRatesRequest.type = "Non Senior Citizen" - } else { - getRatesRequest.type = "Senior Citizen" - } - stepOneBajajFDViewModel.getRates(getRatesRequest) - stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getRatesResponse: GetRatesResponse = - Gson().fromJson(response.data.toString(), GetRatesResponse::class.java) - getRatesResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> getRatesData(getRatesResponse) - // 650 -> refreshToken() - else -> {} + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") } } - } + is Resource.Loading -> { - is Resource.Error -> { - response.message?.let { message -> - Log.e(" ", "An error occurred:$message") } } - is Resource.Loading -> { - - } } } } - - private fun refreshToken() { - - - } - - - private fun getRatesData(getRatesResponse: GetRatesResponse) { - listOfTenure = getRatesResponse.Response.ROIDatalist - val adapter = - ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfTenure - ) - binding.spTenure.setAdapter(adapter) - - } - override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 6ad06ab..831219a 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 @@ -20,7 +20,7 @@ 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 import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan -import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel +import com.nivesh.production.bajajfd.util.Common.Companion.removeError class StepTwoBajajFDFragment : Fragment() { @@ -29,7 +29,6 @@ class StepTwoBajajFDFragment : Fragment() { private val binding get() = _binding!! private lateinit var bajajFDInterface: BajajFDInterface - private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel companion object { fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment { @@ -64,11 +63,11 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlMobileNumber.error = null + removeError(binding.tlMobileNumber) } }) binding.edtDOB.setOnClickListener { - + removeError(binding.tlDOB) } binding.edtPANNumber.addTextChangedListener(object : TextWatcher { @@ -79,7 +78,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlPanNumber.error = null + removeError(binding.tlPanNumber) } }) @@ -91,8 +90,8 @@ class StepTwoBajajFDFragment : Fragment() { ) ) binding.spTitle.setAdapter(titleAdapter) - binding.spTitle.setOnItemClickListener { parent, view, position, id -> - binding.tlTitle.error = null + binding.spTitle.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlTitle) } binding.edtFirstName.addTextChangedListener(object : TextWatcher { @@ -104,7 +103,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlFirstName.error = null + removeError(binding.tlFirstName) } }) binding.edtMiddleName.addTextChangedListener(object : TextWatcher { @@ -116,7 +115,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlMiddleName.error = null + removeError(binding.tlMiddleName) } }) binding.edtLastName.addTextChangedListener(object : TextWatcher { @@ -128,7 +127,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlLastName.error = null + removeError(binding.tlLastName) } }) @@ -140,8 +139,8 @@ class StepTwoBajajFDFragment : Fragment() { ) ) binding.spGender.setAdapter(genderAdapter) - binding.spGender.setOnItemClickListener { parent, view, position, id -> - binding.tlGender.error = null + binding.spGender.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlGender) } binding.edtEmail.addTextChangedListener(object : TextWatcher { @@ -153,7 +152,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlEmail.error = null + removeError(binding.tlEmail) } }) binding.edtOccupation.addTextChangedListener(object : TextWatcher { @@ -165,7 +164,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlOccupation.error = null + removeError(binding.tlOccupation) } }) binding.edtQualification.addTextChangedListener(object : TextWatcher { @@ -177,7 +176,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlQualification.error = null + removeError(binding.tlQualification) } }) @@ -189,8 +188,8 @@ class StepTwoBajajFDFragment : Fragment() { ) ) binding.spMarital.setAdapter(maritalAdapter) - binding.spMarital.setOnItemClickListener { parent, view, position, id -> - binding.tlMarital.error = null + binding.spMarital.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlMarital) } val relationShipAdapter = ArrayAdapter( @@ -201,8 +200,8 @@ class StepTwoBajajFDFragment : Fragment() { ) ) binding.spRelation.setAdapter(relationShipAdapter) - binding.spRelation.setOnItemClickListener { parent, view, position, id -> - binding.tlRelation.error = null + binding.spRelation.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlRelation) } binding.edtRelationName.addTextChangedListener(object : TextWatcher { @@ -214,7 +213,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlRelationName.error = null + removeError(binding.tlRelationName) } }) binding.edtAddressLine1.addTextChangedListener(object : TextWatcher { @@ -226,7 +225,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlAddressLine1.error = null + removeError(binding.tlAddressLine1) } }) binding.edtAddressLine2.addTextChangedListener(object : TextWatcher { @@ -238,7 +237,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlAddressLine2.error = null + removeError(binding.tlAddressLine2) } }) binding.edtState.addTextChangedListener(object : TextWatcher { @@ -250,7 +249,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlState.error = null + removeError(binding.tlState) } }) binding.edtCity.addTextChangedListener(object : TextWatcher { @@ -262,7 +261,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlCity.error = null + removeError(binding.tlCity) } }) binding.edtPinCode.addTextChangedListener(object : TextWatcher { @@ -274,13 +273,13 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlPinCode.error = null + removeError(binding.tlPinCode) } }) // Nominee Details binding.spNomineeTitle.setAdapter(titleAdapter) - binding.spNomineeTitle.setOnItemClickListener { parent, view, position, id -> + binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ -> binding.tlNomineeTitle.error = null } @@ -293,7 +292,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlNomineeFirstName.error = null + removeError(binding.tlNomineeFirstName) } }) binding.edtNomineeMiddleName.addTextChangedListener(object : TextWatcher { @@ -305,7 +304,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlNomineeMiddleName.error = null + removeError(binding.tlNomineeMiddleName) } }) binding.edtNomineeLastName.addTextChangedListener(object : TextWatcher { @@ -317,20 +316,20 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlNomineeLastName.error = null + removeError(binding.tlNomineeLastName) } }) binding.edtNomineeDOB.setOnClickListener { - + removeError(binding.tlNomineeDOB) } binding.spNomineeRelation.setAdapter(relationShipAdapter) - binding.spNomineeRelation.setOnItemClickListener { parent, view, position, id -> - binding.tlNomineeRelation.error = null + binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlNomineeRelation) } - binding.cbNomineeSameAddress.setOnCheckedChangeListener { compoundButton, b -> + binding.cbNomineeSameAddress.setOnCheckedChangeListener { _, _ -> } @@ -344,7 +343,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlGuardianName.error = null + removeError(binding.tlGuardianName) } }) binding.edtGuardianAge.addTextChangedListener(object : TextWatcher { @@ -356,13 +355,13 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlGuardianAge.error = null + removeError(binding.tlGuardianAge) } }) binding.spGuardianRelation.setAdapter(relationShipAdapter) - binding.spGuardianRelation.setOnItemClickListener { parent, view, position, id -> - binding.tlGuardianRelation.error = null + binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ -> + removeError(binding.tlGuardianRelation) } binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher { @@ -374,7 +373,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlGuardianAddress.error = null + removeError(binding.tlGuardianAddress) } }) binding.edtGuardianPinCode.addTextChangedListener(object : TextWatcher { @@ -386,7 +385,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.edtGuardianPinCode.error = null + removeError(binding.tlGuardianPinCode) } }) @@ -400,7 +399,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlIFSC.error = null + removeError(binding.tlIFSC) } }) binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { @@ -412,7 +411,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlAccountNumber.error = null + removeError(binding.tlAccountNumber) } }) binding.edtBankName.addTextChangedListener(object : TextWatcher { @@ -424,7 +423,7 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlBankName.error = null + removeError(binding.tlBankName) } }) binding.edtBankBranch.addTextChangedListener(object : TextWatcher { @@ -436,31 +435,110 @@ class StepTwoBajajFDFragment : Fragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - binding.tlBankBranchName.error = null + removeError(binding.tlBankBranchName) } }) binding.tvPersonalDetails.setOnClickListener { - + if (binding.llPersonalDetail.visibility == View.VISIBLE){ + binding.llPersonalDetail.visibility = View.GONE + }else{ + binding.llPersonalDetail.visibility = View.VISIBLE + } } binding.tvNomineeDetails.setOnClickListener { - + if (binding.llNomineeDetail.visibility == View.VISIBLE){ + binding.llNomineeDetail.visibility = View.GONE + }else{ + binding.llNomineeDetail.visibility = View.VISIBLE + } } binding.tvBankDetails.setOnClickListener { - + if (binding.llBankDetails.visibility == View.VISIBLE){ + binding.llBankDetails.visibility = View.GONE + }else{ + binding.llBankDetails.visibility = View.VISIBLE + } } binding.btnNext.setOnClickListener { if (validation()) { - + // Applicant Details + (activity as BajajFdMainActivity).applicantDetails.ApplicantSalutation = "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantGender = "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantFirstName = "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantMiddleName = "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantLastName= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantDOB= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantPAN= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantMobile= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantOccupation= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantQualification= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantMaritalStatus= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantEmail= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress1= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress2= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantAddress3= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantCity= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantState= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantCountry= "" + (activity as BajajFdMainActivity).applicantDetails.ApplicantPincode= 0 + (activity as BajajFdMainActivity).applicantDetails.AnnualIncome= "" + + // Applicant Relation Details + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantRelation= "" + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantRelationSalutation= "" + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantRelationFirstName= "" + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantRelationLastName= "" + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantMotherFirstName= "" + (activity as BajajFdMainActivity).applicantRelationDetails.ApplicantMotherLastName= "" + + // Applicant Nominee Details + (activity as BajajFdMainActivity).nomineeDetails.NomineeSalutation= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeGender= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeFirstName= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeMiddleName= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeLastName= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeDOB= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeRelation= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeAddress1= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeAddress2= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeAddress3= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeCity= "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeState = "" + (activity as BajajFdMainActivity).nomineeDetails.NomineeCountry = "india" + (activity as BajajFdMainActivity).nomineeDetails.NomineePincode = 0 + + // Applicant Nominee Guardian Details + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianSalutation = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianName = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAge = 0 + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianCountry = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianCity = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianState = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = 0 + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress1 = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = "" + (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianAddress3 = "" + + // Applicant Bank Details + (activity as BajajFdMainActivity).fdBankDetails.AccountType = "" + (activity as BajajFdMainActivity).fdBankDetails.BankBranch = "" + (activity as BajajFdMainActivity).fdBankDetails.IFSCCode = "" + (activity as BajajFdMainActivity).fdBankDetails.AccountNumber = "" + (activity as BajajFdMainActivity).fdBankDetails.BankName = "" + (activity as BajajFdMainActivity).fdBankDetails.PaymentMode = "" + + bajajFDInterface.stepTwoApi("stepTwoResponse") } } return root } + // validations private fun validation(): Boolean { return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") 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 c17c551..4d665fa 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 @@ -14,6 +14,7 @@ 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.ui.activity.BajajFdMainActivity import java.util.regex.Matcher import java.util.regex.Pattern @@ -28,8 +29,8 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - private fun isNetworkAvailable(): Boolean { - val connectivityManager = BajajApplication().getSystemService( + fun isNetworkAvailable(activity: Activity): Boolean { + val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { @@ -87,10 +88,16 @@ class Common { return match.matches() } + fun removeError(textInputLayout: TextInputLayout) { + if (textInputLayout.error != null) { + textInputLayout.error = null + } + } + fun showDialogValidation(activity: Activity?, message: CharSequence?) { val builder = AlertDialog.Builder(activity) builder.setMessage(message) - builder.setPositiveButton("OK") { dialogInterface, i -> + builder.setPositiveButton("OK") { dialogInterface, _ -> dialogInterface.dismiss() } builder.show() @@ -99,10 +106,10 @@ class Common { fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?) { val builder = AlertDialog.Builder(activity) builder.setMessage(message) - builder.setPositiveButton("OK") { dialogInterface, i -> + builder.setPositiveButton("OK") { dialogInterface, _ -> dialogInterface.dismiss() } - builder.setNegativeButton("Cancel") { dialogInterface, i -> + builder.setNegativeButton("Cancel") { dialogInterface, _ -> dialogInterface.dismiss() } builder.show() diff --git a/app/src/main/res/drawable/cursor_color.xml b/app/src/main/res/drawable/cursor_color.xml index b076468..0ec4a7a 100644 --- a/app/src/main/res/drawable/cursor_color.xml +++ b/app/src/main/res/drawable/cursor_color.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_corner_with_line.xml b/app/src/main/res/drawable/rounded_corner_with_line.xml index 66ce4ff..e922c05 100644 --- a/app/src/main/res/drawable/rounded_corner_with_line.xml +++ b/app/src/main/res/drawable/rounded_corner_with_line.xml @@ -1,6 +1,6 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/font/font.xml b/app/src/main/res/font/font.xml index acc2c0f..4ce9314 100644 --- a/app/src/main/res/font/font.xml +++ b/app/src/main/res/font/font.xml @@ -3,21 +3,21 @@ + android:font="@font/roboto_black" /> + android:font="@font/roboto_bold" /> + android:font="@font/roboto_light" /> + android:font="@font/roboto_medium" /> + android:font="@font/roboto_regular" /> diff --git a/app/src/main/res/font/robotoblack.ttf b/app/src/main/res/font/roboto_black.ttf similarity index 100% rename from app/src/main/res/font/robotoblack.ttf rename to app/src/main/res/font/roboto_black.ttf diff --git a/app/src/main/res/font/robotobold.ttf b/app/src/main/res/font/roboto_bold.ttf similarity index 100% rename from app/src/main/res/font/robotobold.ttf rename to app/src/main/res/font/roboto_bold.ttf diff --git a/app/src/main/res/font/robotolight.ttf b/app/src/main/res/font/roboto_light.ttf similarity index 100% rename from app/src/main/res/font/robotolight.ttf rename to app/src/main/res/font/roboto_light.ttf diff --git a/app/src/main/res/font/robotomedium.ttf b/app/src/main/res/font/roboto_medium.ttf similarity index 100% rename from app/src/main/res/font/robotomedium.ttf rename to app/src/main/res/font/roboto_medium.ttf diff --git a/app/src/main/res/font/robotoregular.ttf b/app/src/main/res/font/roboto_regular.ttf similarity index 100% rename from app/src/main/res/font/robotoregular.ttf rename to app/src/main/res/font/roboto_regular.ttf diff --git a/app/src/main/res/font/robotothin.ttf b/app/src/main/res/font/roboto_thin.ttf similarity index 100% rename from app/src/main/res/font/robotothin.ttf rename to app/src/main/res/font/roboto_thin.ttf diff --git a/app/src/main/res/layout/activity_bajaj_fd.xml b/app/src/main/res/layout/activity_bajaj_fd.xml index 35d1884..b7b4a42 100644 --- a/app/src/main/res/layout/activity_bajaj_fd.xml +++ b/app/src/main/res/layout/activity_bajaj_fd.xml @@ -19,9 +19,9 @@ @@ -49,90 +49,90 @@ android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" - android:background="@color/color_EFEFEF" - android:paddingTop="10dp" - android:paddingBottom="10dp"> + android:background="@color/greyColor4" + android:paddingTop="@dimen/margin_10" + android:paddingBottom="@dimen/margin_10"> + android:textSize="@dimen/text_size_12" /> + android:layout_width="@dimen/margin_22" + android:layout_height="@dimen/margin_2" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginEnd="@dimen/margin_5" + android:background="@color/green" /> + android:textSize="@dimen/text_size_12" /> + android:layout_width="@dimen/margin_22" + android:layout_height="@dimen/margin_2" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginEnd="@dimen/margin_5" + android:background="@color/green" /> + android:textSize="@dimen/text_size_12" /> + android:layout_width="@dimen/margin_22" + android:layout_height="@dimen/margin_2" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginEnd="@dimen/margin_5" + android:background="@color/green" /> + android:textSize="@dimen/text_size_12" /> diff --git a/app/src/main/res/layout/bank_detail_select.xml b/app/src/main/res/layout/bank_detail_select.xml index 9368de9..864b267 100644 --- a/app/src/main/res/layout/bank_detail_select.xml +++ b/app/src/main/res/layout/bank_detail_select.xml @@ -12,7 +12,7 @@ style="@style/semiBoldStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:drawablePadding="@dimen/margin_5" android:padding="@dimen/margin_3" android:text="@string/bankDetails" @@ -91,7 +91,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="28dp" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:padding="@dimen/margin_5" app:layout_constraintBottom_toTopOf="@+id/radioGroup" app:layout_constraintEnd_toEndOf="parent" @@ -119,7 +119,7 @@ android:layout_alignParentEnd="true" android:gravity="center_vertical" android:text="@string/viewAvailablePaymentModes" - android:textColor="@color/blue_text_color" + android:textColor="@color/blue" android:textSize="@dimen/text_size_10" tools:layout_editor_absoluteX="5dp" tools:layout_editor_absoluteY="312dp" /> diff --git a/app/src/main/res/layout/fragment_bajajfd_step_five.xml b/app/src/main/res/layout/fragment_bajajfd_step_five.xml index f677e4a..916f39d 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_five.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_five.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/margin_10" - android:background="@color/color_EFEFEF" + android:background="@color/greyColor4" tools:context="com.nivesh.production.bajajfd.ui.fragment.StepFiveBajajFDFragment"> @@ -70,7 +70,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_15" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:paddingStart="@dimen/margin_15" android:paddingTop="@dimen/margin_2" android:paddingEnd="@dimen/margin_10" @@ -197,7 +197,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_5" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:paddingStart="@dimen/margin_15" android:paddingTop="@dimen/margin_2" android:paddingEnd="0dp" @@ -297,7 +297,7 @@ android:layout_height="74dp" android:layout_marginTop="@dimen/margin_15" android:layout_marginEnd="@dimen/margin_10" - android:text="@string/terms_condition" + android:text="@string/termsCondition" android:textColor="@color/black" android:textSize="@dimen/text_size_10" app:layout_constraintEnd_toEndOf="parent" @@ -348,7 +348,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:text="@string/once_you_click" + android:text="@string/onceYouClick" android:visibility="gone" app:layout_constraintBottom_toTopOf="@+id/btnBack" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_bajajfd_step_one.xml b/app/src/main/res/layout/fragment_bajajfd_step_one.xml index 841b7cd..cdea461 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_one.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_one.xml @@ -6,7 +6,7 @@ android:id="@+id/constraintLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/color_EFEFEF" + android:background="@color/greyColor4" tool:context=".ui.fragment.StepTwoBajajFDFragment"> @@ -113,10 +113,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_corner_with_line" - android:hint="@string/select_interest_payout" + android:hint="@string/selectInterestPayout" android:inputType="none" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" /> @@ -135,12 +135,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_corner_with_line" - android:hint="@string/select_interest_tenure" + android:hint="@string/selectInterestTenure" android:inputType="none" android:labelFor="@+id/spInterestTenure" - android:textColorHint="@color/light_text" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" - tool:ignore="LabelFor,TextContrastCheck" /> + tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" /> - @@ -237,8 +238,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_10" - android:text="@string/tax_deducted_at_source_tds" - android:textColor="@color/text_color_dark" + android:text="@string/taxDeductedAtSourceTds" + android:textColor="@color/black" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" @@ -253,7 +254,7 @@ android:drawablePadding="@dimen/margin_10" android:padding="@dimen/margin_5" android:text="@string/TDSForm" - android:textColor="@color/text_color_dark" + android:textColor="@color/black" android:textSize="@dimen/text_size_12" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -268,7 +269,7 @@ android:buttonTint="@color/black" android:checked="true" android:orientation="horizontal" - android:text="@string/deduct_tds" + android:text="@string/deductTds" android:textSize="@dimen/text_size_12" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvUploadFormLabel" /> @@ -280,7 +281,7 @@ android:layout_height="wrap_content" android:padding="@dimen/margin_5" android:text="@string/nonDeductTDS" - android:textColor="@color/text_color_dark" + android:textColor="@color/black" android:textSize="@dimen/text_size_12" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -302,7 +303,7 @@ android:background="@drawable/bajaj_logo" android:foreground="?android:attr/selectableItemBackground" android:padding="@dimen/margin_10" - app:cardBackgroundColor="@color/bg_color_info" + app:cardBackgroundColor="@color/greyColor4" app:cardPreventCornerOverlap="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" @@ -329,7 +330,7 @@ android:layout_height="wrap_content" android:drawablePadding="@dimen/margin_10" android:text="@string/nonCumulativeROI" - android:textColor="@color/text_color_dark" + android:textColor="@color/black" android:textSize="@dimen/text_size_14" /> @@ -356,7 +357,7 @@ android:layout_height="wrap_content" android:drawablePadding="@dimen/margin_10" android:text="@string/regularInterestPayment" - android:textColor="@color/text_color_dark" + android:textColor="@color/black" android:textSize="@dimen/text_size_14" /> @@ -383,7 +384,7 @@ android:layout_height="wrap_content" android:drawablePadding="@dimen/margin_10" android:text="@string/maturityAmount" - android:textColor="@color/text_color_dark" + android:textColor="@color/black" android:textSize="@dimen/text_size_14" /> diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index de116af..af2cb05 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -5,7 +5,7 @@ android:id="@+id/constraintLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/Nivesh_color_AppBg" + android:background="@color/NiveshColorAppBg" tools:context=".ui.fragment.StepFourBajajFDFragment"> + android:contentDescription="@string/contentDescription"/> - - - - - - - - - - - - - - - @@ -83,7 +83,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:paddingStart="@dimen/margin_18" android:paddingEnd="@dimen/margin_15" android:text="@string/personalDetails" @@ -201,7 +201,7 @@ android:layout_height="wrap_content" android:layout_margin="@dimen/margin_5" android:layout_marginTop="@dimen/margin_5" - android:hint="@string/middle_name"> + android:hint="@string/middleName"> @@ -495,10 +496,10 @@ style="@style/semiBoldStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/grey_bg" + android:background="@color/greyColor3" android:paddingStart="@dimen/margin_18" android:paddingEnd="@dimen/margin_10" - android:text="@string/nominee_details_optional" + android:text="@string/nomineeDetailsOptional" android:textColor="@color/black" android:textSize="@dimen/text_size_14" app:drawableEndCompat="@drawable/svg_down_arrow" /> @@ -563,7 +564,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_5" - android:hint="@string/nominee_middle_name"> + android:hint="@string/nomineeMiddleName"> + android:hint="@string/guardianNameOptional"> + android:hint="@string/guardianAgeOptional"> + android:hint="@string/guardianAddressOptional"> + android:hint="@string/guardianPinCodeOptional"> - + android:orientation="horizontal" + android:background="@color/greyColor3"> + android:textSize="@dimen/text_size_14" /> + /> - + diff --git a/app/src/main/res/layout/fragment_step_fail.xml b/app/src/main/res/layout/fragment_step_fail.xml index d6f2bd3..bc7de0c 100644 --- a/app/src/main/res/layout/fragment_step_fail.xml +++ b/app/src/main/res/layout/fragment_step_fail.xml @@ -42,7 +42,7 @@ app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - android:contentDescription="@string/content_description"/> + android:contentDescription="@string/contentDescription"/> - BajajFdLib + BajajFdLib + + Step 1 + Step 2 + Step 3 + Step 4 + + + Corporate Fixed Deposits + + Rs. + Select Investment Amount + Select Interest Payout + Select Investment Tenure + Up to 0.25% p.a for + Senior Citizens, 60+ + Maturity Instructions: + Automatically credit to my bank account + Automatically renew principal amount + Automatically renew both principal and interest amount + Tax Deducted at Source (TDS): + Please ensure to upload the Form 15 G / H, when you receive a mail from the Company for the same + Deduct TDS (Income is taxable) + In case you are eligible for non deduction of TDS then please submit 15G/H form to Bajaj or Nivesh team + Non- Cumulative ROI: + Regular Interest Payment: + Maturity Amount: + + + + All fields are mandatory other then optional + Personal Details + Enter Mobile Number + Enter Date Of Birth + Enter PAN Number + Select Title + Enter First Name + Enter Middle Name (Optional) + Enter Last Name + Select Gender + Enter Email Address + Enter Occupation + Enter Qualification + Select Marital Status + Select Relationship + Relation Name + Enter Address 1 + Enter Address 2 + State + City + PinCode + + + Nominee Details (Optional) + Nominee First Name + Nominee Middle Name (Optional) + Nominee Last Name + Nominee Date Of Birth + Nominee address is same as Primary Applicant’s address + + + Guardian name (Optional) + Guardian Age (Optional) + Guardian Address (Optional) + Guardian PinCode (Optional) + + + Bank Details + + Add New Account + Account type * + Savings account + Current account + Enter IFSC Code + Enter Account Number + Enter Bank Name + Enter Branch Name + + + Payment Mode + UPI + NetBanking + Upto Rs. 1 Lakh Only + Eligible Bank Option + + + + Upload KYC Documents + Address Proof Type * + Aadhaar front * + Aadhaar Back * + PAN Upload * + Photo Upload * + Upload File + + + + Make Payment + Invested Amount + Tenure + Interest Payout + Rate of Interest + + Director of Bajaj Finance Ltd. + Promoter of Bajaj Finance Ltd. + Relative of director or promoter of Bajaj Finance Ltd. + Shareholder of Bajaj Finance Ltd. + Are you a politically exposed person + I am not a citizen, national or tax resident of any country outside of India + I undertake to inform company any change in status of my nationality or tax residence. I am making investment from my Indian resident Individual Savings bank account. I/ We confirm that 1/we have read and understood the detailed terms and conditions annexed to this Application including the interest rate and other charges. I have gone through the financials and other statements/particulars representations furnished/made by the company and after careful consideration I am making the deposit with the company at my own risk and volition. I have read and agree to the Terms & conditions + + + + View Order + Congratulations + Your transaction is successful. + You will receive fixed deposit certificate\nwithin 3 working days on email + Download Invoice + Sorry! + Your transaction is unsuccessful. + Sorry for the inconvenience please try again later + Retry + + + + Next + Back + click + viewpager + content description + View available payment modes + Once you click on PAY, your order will be placed and you will be redirected to payment gateway. + Senior Citizen + Non Senior Citizen \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 9b4e1ef..19b5ef4 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -2,8 +2,8 @@ \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e9c2fdc..26ead2c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -2,8 +2,8 @@