Browse Source

working on apis

PankajBranch
Hemant Khadase 2 years ago
parent
commit
80f3c2d538
18 changed files with 1163 additions and 552 deletions
  1. +23
    -4
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  2. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FDStepsCountRequest.kt
  3. +9
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt
  4. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/StepsCountResponse.kt
  5. +20
    -4
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  6. +16
    -18
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  7. +172
    -35
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  8. +378
    -88
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  9. +16
    -8
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  10. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  11. +25
    -2
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt
  12. +43
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  13. +228
    -310
      app/src/main/res/layout/fragment_bajajfd_step_one.xml
  14. +117
    -30
      app/src/main/res/layout/fragment_bajajfd_step_two.xml
  15. +6
    -4
      app/src/main/res/layout/row_dropdown.xml
  16. +4
    -1
      app/src/main/res/layout/spinner_dropdown.xml
  17. +23
    -5
      app/src/main/res/values-hi-rIN/strings.xml
  18. +62
    -43
      app/src/main/res/values/strings.xml

+ 23
- 4
app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt View File

@ -1,10 +1,7 @@
package com.nivesh.production.bajajfd.interfaces
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.PanCheckRequest
import com.nivesh.production.bajajfd.model.*
import okhttp3.RequestBody
import retrofit2.Response
import retrofit2.http.*
@ -50,4 +47,26 @@ interface ApiInterface {
@POST("api/PanCheck_S")
suspend fun panCheckApi(@Body panCheck: PanCheckRequest, @Header("token") token: String): Response<JsonObject>
@POST("getFDStepsCount")
suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
}

+ 6
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/FDStepsCountRequest.kt View File

@ -0,0 +1,6 @@
package com.nivesh.production.bajajfd.model
data class FDStepsCountRequest(
var FDProvider: String? = "",
var NiveshClientCode: String? = ""
)

+ 9
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt View File

@ -0,0 +1,9 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXX(
val Errors: Any,
val Message: String,
val Status: String,
val StatusCode: Int,
val StepsCount: Int
)

+ 5
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/StepsCountResponse.kt View File

@ -0,0 +1,5 @@
package com.nivesh.production.bajajfd.model
data class StepsCountResponse(
val Response: ResponseXXXX
)

+ 20
- 4
app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt View File

@ -1,10 +1,7 @@
package com.nivesh.production.bajajfd.repositories
import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.PanCheckRequest
import com.nivesh.production.bajajfd.model.*
class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) =
@ -12,6 +9,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getCodesResponse(requestBody: GetCodeRequest , token: String) =
apiInterface.getCodes(requestBody, token)
suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest , token: String) =
apiInterface.getFDStepsCount(requestBody, token)
suspend fun createCalculateFDMaturityAmount(requestBody: GetMaturityAmountRequest, token: String) =
apiInterface.getCalculateFDMaturityAmount(requestBody, token)
@ -44,4 +43,21 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun panCheck(panCheck: PanCheckRequest, token: String) =
apiInterface.panCheckApi(panCheck, token)
suspend fun titleCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.titleApi(getCodeRequest, token)
suspend fun genderCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.genderApi(getCodeRequest, token)
suspend fun annualIncomeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.annualIncomeApi(getCodeRequest, token)
suspend fun relationShipCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.relationShipApi(getCodeRequest, token)
suspend fun maritalStatusCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.maritalStatusApi(getCodeRequest, token)
suspend fun occupationCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.occupationApi(getCodeRequest, token)
}

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

@ -33,7 +33,6 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel
lateinit var listOfFrequency: List<GetCodes>
lateinit var createFDRequest: CreateFDRequest
lateinit var createFDApplicantRequest: CreateFDApplicationRequest
lateinit var applicantDetails: ApplicantDetails
@ -71,9 +70,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
stepFourBajajFDViewModel = ViewModelProvider(this, StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(this, StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFiveBajajFDViewModel::class.java]
listOfFrequency = ArrayList()
if (Common.isNetworkAvailable(this)) {
getCodeApi()
getStepsCountApi()
}
binding.imgBack.setOnClickListener {
@ -81,24 +79,21 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
private fun getCodeApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.category)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
viewModel.getCode(getCodeRequest, token)
viewModel.getRatesMutableData.observe(this) { response ->
private fun getStepsCountApi(){
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
viewModel.getStepsCount(fdStepsCount, token)
viewModel.getStepsCountMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getCodeResponse: GetCodeResponse =
Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
val stepsCountResponse: StepsCountResponse =
Gson().fromJson(response.data?.toString(), StepsCountResponse::class.java)
stepsCountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
listOfFrequency = getCodeResponse.Response.GetCodesList
setViewPager()
setViewPager(stepsCountResponse.Response.StepsCount)
}
// 650 -> refreshToken()
else -> {}
@ -118,7 +113,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
private fun setViewPager() {
private fun setViewPager(stepsCount: Int) {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
@ -128,7 +124,9 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
val viewPager: ViewPager = binding.viewPager
sectionsPagerAdapter.addFragment(StepOneBajajFDFragment.getInstance(this@BajajFdMainActivity))
sectionsPagerAdapter.addFragment(StepTwoBajajFDFragment.getInstance(this@BajajFdMainActivity))
sectionsPagerAdapter.addFragment(StepThreeBajajFDFragment.getInstance(this@BajajFdMainActivity))
if (stepsCount == 4) {
sectionsPagerAdapter.addFragment(StepThreeBajajFDFragment.getInstance(this@BajajFdMainActivity))
}
sectionsPagerAdapter.addFragment(StepFourBajajFDFragment.getInstance(this@BajajFdMainActivity))
sectionsPagerAdapter.addFragment(StepFiveBajajFDFragment.getInstance(this@BajajFdMainActivity))
viewPager.adapter = sectionsPagerAdapter


+ 172
- 35
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt View File

@ -21,9 +21,7 @@ import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.HorizontalRecyclerViewAdapter
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.GetCalculateMaturityAmountResponse
import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
@ -32,6 +30,7 @@ import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
class StepOneBajajFDFragment : Fragment() {
private var _binding: FragmentBajajfdStepOneBinding? = null
private val binding get() = _binding!!
@ -41,6 +40,9 @@ class StepOneBajajFDFragment : Fragment() {
private lateinit var rgMaturity: RadioButton
private lateinit var listOfTenure: MutableList<ROIDataList>
private lateinit var recyclerViewDropDownAdapter: HorizontalRecyclerViewAdapter
private lateinit var listOfMinAmount: List<GetCodes>
private lateinit var listOfMaxAmount: List<GetCodes>
private lateinit var listOfFrequency: List<GetCodes>
private var tenure: Int = 0
private var interest: Double = 0.0
@ -68,31 +70,27 @@ class StepOneBajajFDFragment : Fragment() {
binding.edtAmount.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(8)) // upto 1 Cr
listOfMinAmount = ArrayList()
listOfMaxAmount = ArrayList()
listOfFrequency = ArrayList()
// Amount
binding.edtAmount.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.tlDepositAmount)
if (s.toString().trim().length >= 4 ) {
getRatesApi()
if (s.toString().trim().length >= 4) {
maturityAmountApi(tenure, interest)
}
}
})
// Frequency
if ((activity as BajajFdMainActivity).listOfFrequency.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
(activity as BajajFdMainActivity).listOfFrequency
)
binding.spInterestPayout.setAdapter(adapter)
binding.spInterestPayout.setOnItemClickListener { _, _, position, _ ->
removeError(binding.tlInterestPayout)
binding.tvFrequency.text =
(activity as BajajFdMainActivity).listOfFrequency[position].Value
binding.spInterestPayout.setOnItemClickListener { _, _, position, _ ->
removeError(binding.tlInterestPayout)
if (listOfFrequency.isNotEmpty()) {
binding.tvFrequency.text = listOfFrequency[position].Value
if (!binding.tvFrequency.text.equals(getString(R.string.cumulativeText))) {
binding.txtCumulativeNon.text = getString(R.string.nonCumulativeROI)
} else {
@ -101,18 +99,11 @@ class StepOneBajajFDFragment : Fragment() {
if (binding.edtAmount.text.toString().trim().isNotEmpty()) {
maturityAmountApi(tenure, interest)
getRatesApi()
} else {
// please enter Amount first
commonErrorMethod(
binding.edtAmount,
binding.tlDepositAmount,
getString(R.string.emptyAmountFirst)
)
}
}
}
// Tenure
binding.spTenure.setOnItemClickListener { _, _, position, _ ->
removeError(binding.tlInterestTenure)
@ -121,7 +112,6 @@ class StepOneBajajFDFragment : Fragment() {
interest = listOfTenure[position].ROI
binding.tvROI.text = interest.toString().plus(" %")
maturityAmountApi(tenure, interest)
recyclerViewDropDownAdapter.refresh()
}
}
@ -158,7 +148,8 @@ class StepOneBajajFDFragment : Fragment() {
(activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = ""
(activity as BajajFdMainActivity).fdInvestmentDetails.Device =
getString(R.string.app)
(activity as BajajFdMainActivity).fdInvestmentDetails.Source = getString(R.string.source)
(activity as BajajFdMainActivity).fdInvestmentDetails.Source =
getString(R.string.source)
if (binding.swSeniorCitizen.isChecked) {
(activity as BajajFdMainActivity).fdInvestmentDetails.CitizenType =
getString(R.string.seniorCitizen)
@ -173,10 +164,142 @@ class StepOneBajajFDFragment : Fragment() {
}
}
minAmountApi()
interestPayoutApi()
return root
}
private fun interestPayoutApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.category)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getCode(getCodeRequest, token)
stepOneBajajFDViewModel.getCodeMutableData.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 -> {
listOfFrequency = getCodeResponse.Response.GetCodesList
if (listOfFrequency.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfFrequency
)
binding.spInterestPayout.setAdapter(adapter)
binding.spInterestPayout.setText(
adapter.getItem(listOfFrequency.size - 1)?.Value,
false
)
binding.tvFrequency.text =
adapter.getItem(listOfFrequency.size - 1)?.Value
getRatesApi()
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
private fun minAmountApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.minAmountCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getMinAmount(getCodeRequest, token)
stepOneBajajFDViewModel.getMinAmountMutableData.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 -> {
listOfMinAmount = getCodeResponse.Response.GetCodesList
if (listOfMinAmount.isNotEmpty()) {
binding.txtMinAmount.text = getString(R.string.minAmount).plus(
listOfMinAmount[0].Value
)
}
maxAmountApi()
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
private fun maxAmountApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.MaxAmountCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getMaxAmount(getCodeRequest, token)
stepOneBajajFDViewModel.getMaxAmountMutableData.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 -> {
listOfMaxAmount = getCodeResponse.Response.GetCodesList
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
private fun setUpRecyclerView() {
recyclerViewDropDownAdapter = HorizontalRecyclerViewAdapter(
@ -199,7 +322,7 @@ class StepOneBajajFDFragment : Fragment() {
private fun maturityAmountApi(tenure: Int, interest: Double) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) {
val maturityAmountRequest = GetMaturityAmountRequest()
maturityAmountRequest.FDProvider = getString(R.string.bajaj)
maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt()
@ -218,9 +341,10 @@ class StepOneBajajFDFragment : Fragment() {
getMaturityAmountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.tvMaturityAmount.text = getString(R.string.rs).plus(
getMaturityAmountResponse.Response.MaturityAmount.toString()
)
binding.tvMaturityAmount.text =
getString(R.string.rs).plus(" ").plus(
getMaturityAmountResponse.Response.MaturityAmount.toString()
)
}
// 650 -> refreshToken()
else -> {
@ -252,20 +376,23 @@ class StepOneBajajFDFragment : Fragment() {
binding.tlDepositAmount,
getString(R.string.emptyAmount)
)
} else if (binding.edtAmount.text.toString().toDouble() < 5000) {
} else if (binding.edtAmount.text.toString()
.toDouble() < listOfMinAmount[0].Value.toDouble()
) {
commonErrorMethod(
binding.edtAmount,
binding.tlDepositAmount,
getString(R.string.validMinAmount)
)
} else if (binding.edtAmount.text.toString().toDouble() > 50000000) {
} else if (binding.edtAmount.text.toString()
.toDouble() > listOfMaxAmount[0].Value.toDouble()
) {
commonErrorMethod(
binding.edtAmount,
binding.tlDepositAmount,
getString(R.string.validMaxAmount)
)
}
else if (binding.spInterestPayout.text.isEmpty()) {
} else if (binding.spInterestPayout.text.isEmpty()) {
Common.commonSpinnerErrorMethod(
binding.spInterestPayout,
binding.tlInterestPayout,
@ -320,6 +447,16 @@ class StepOneBajajFDFragment : Fragment() {
listOfTenure
)
binding.spTenure.setAdapter(tenureAdapter)
binding.spTenure.setText(
tenureAdapter.getItem(0)?.Tenure.plus(
" Months | "
).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false
)
tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt()
interest = tenureAdapter.getItem(0)?.ROI ?: 0.0
binding.tvROI.text =
tenureAdapter.getItem(0)?.ROI.toString().plus(" %")
setUpRecyclerView()
} else {
binding.ORLayout.visibility = View.GONE


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

@ -17,8 +17,7 @@ import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.PanCheckRequest
import com.nivesh.production.bajajfd.model.PanCheckResponse
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
@ -42,6 +41,13 @@ class StepTwoBajajFDFragment : Fragment() {
private lateinit var rbBank: RadioButton
private lateinit var rbPaymentMode: RadioButton
private lateinit var listOfTitle: List<GetCodes>
private lateinit var listOfGender: List<GetCodes>
private lateinit var listOfAnnualIncome: List<GetCodes>
private lateinit var listOfRelationShip: List<GetCodes>
private lateinit var listOfMaritalStatus: List<GetCodes>
private lateinit var listOfOccupation: List<GetCodes>
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
companion object {
@ -65,6 +71,12 @@ class StepTwoBajajFDFragment : Fragment() {
val root = binding.root
stepTwoBajajFDViewModel = (activity as BajajFdMainActivity).stepTwoBajajFDViewModel
listOfTitle = ArrayList()
listOfGender = ArrayList()
listOfAnnualIncome = ArrayList()
listOfRelationShip = ArrayList()
listOfMaritalStatus = ArrayList()
listOfOccupation = ArrayList()
// Personal Details
binding.edtMobileNumber.filters = arrayOf<InputFilter>(LengthFilter(10))
@ -102,19 +114,9 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
})
val titleAdapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
resources.getStringArray(
R.array.title
)
)
binding.spTitle.setAdapter(titleAdapter)
binding.spTitle.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlTitle)
}
binding.edtFirstName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -151,19 +153,9 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlLastName)
}
})
val genderAdapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
resources.getStringArray(
R.array.gender
)
)
binding.spGender.setAdapter(genderAdapter)
binding.spGender.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlGender)
}
binding.edtEmail.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -176,18 +168,9 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlEmail)
}
})
binding.edtOccupation.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.tlOccupation)
}
})
binding.spOccupation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlOccupation)
}
binding.edtQualification.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -201,26 +184,11 @@ class StepTwoBajajFDFragment : Fragment() {
}
})
val maritalAdapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
resources.getStringArray(
R.array.maritalStatus
)
)
binding.spMarital.setAdapter(maritalAdapter)
binding.spMarital.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlMarital)
}
val relationShipAdapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
resources.getStringArray(
R.array.maritalStatus
)
)
binding.spRelation.setAdapter(relationShipAdapter)
binding.spRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlRelation)
}
@ -261,7 +229,7 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlAddressLine2)
}
})
binding.edtState.addTextChangedListener(object : TextWatcher {
binding.edtAddressLine3.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
@ -270,21 +238,16 @@ class StepTwoBajajFDFragment : Fragment() {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
removeError(binding.tlState)
removeError(binding.tlAddressLine3)
}
})
binding.edtCity.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.tlCity)
}
})
binding.spState.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlState)
}
binding.spCity.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlCity)
}
binding.edtPinCode.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -299,11 +262,9 @@ class StepTwoBajajFDFragment : Fragment() {
})
// Nominee Details
binding.spNomineeTitle.setAdapter(titleAdapter)
binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ ->
binding.tlNomineeTitle.error = null
}
binding.edtNomineeFirstName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -340,12 +301,9 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlNomineeLastName)
}
})
binding.edtNomineeDOB.setOnClickListener {
removeError(binding.tlNomineeDOB)
}
binding.spNomineeRelation.setAdapter(relationShipAdapter)
binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlNomineeRelation)
}
@ -379,12 +337,9 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlGuardianAge)
}
})
binding.spGuardianRelation.setAdapter(relationShipAdapter)
binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlGuardianRelation)
}
binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@ -479,7 +434,6 @@ class StepTwoBajajFDFragment : Fragment() {
binding.llPersonalDetail.visibility = View.VISIBLE
}
}
binding.tvNomineeDetails.setOnClickListener {
if (binding.llNomineeDetail.visibility == View.VISIBLE) {
binding.llNomineeDetail.visibility = View.GONE
@ -487,7 +441,6 @@ class StepTwoBajajFDFragment : Fragment() {
binding.llNomineeDetail.visibility = View.VISIBLE
}
}
binding.tvBankDetails.setOnClickListener {
if (binding.llBankDetails.visibility == View.VISIBLE) {
binding.llBankDetails.visibility = View.GONE
@ -496,6 +449,12 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
titleApi()
genderApi()
relationShipApi()
maritalStatusApi()
occupationApi()
annualIncomeApi()
binding.btnNext.setOnClickListener {
if (validation()) {
// Applicant Details
@ -516,7 +475,7 @@ class StepTwoBajajFDFragment : Fragment() {
(activity as BajajFdMainActivity).applicantDetails.ApplicantMobile =
binding.edtMobileNumber.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantOccupation =
binding.edtOccupation.text.toString()
binding.spOccupation.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantQualification =
binding.edtQualification.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantMaritalStatus =
@ -527,11 +486,11 @@ class StepTwoBajajFDFragment : Fragment() {
binding.edtAddressLine1.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantAddress2 =
binding.edtAddressLine2.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantAddress3 = ""
(activity as BajajFdMainActivity).applicantDetails.ApplicantAddress3 = binding.edtAddressLine3.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantCity =
binding.edtCity.text.toString()
binding.spCity.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantState =
binding.edtState.text.toString()
binding.spState.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantCountry = "India"
(activity as BajajFdMainActivity).applicantDetails.ApplicantPincode =
binding.edtPinCode.text.toString().toInt()
@ -610,6 +569,7 @@ class StepTwoBajajFDFragment : Fragment() {
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 0
}
return root
}
@ -672,6 +632,330 @@ class StepTwoBajajFDFragment : Fragment() {
}
private fun titleApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.salutationCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.titleApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getCodeResponse: GetCodeResponse =
Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
listOfTitle = getCodeResponse.Response.GetCodesList
if (listOfTitle.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfTitle
)
binding.spTitle.setAdapter(adapter)
binding.spTitle.setText(
adapter.getItem(0)?.Value,
false
)
binding.spNomineeTitle.setAdapter(adapter)
binding.spNomineeTitle.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun genderApi() {
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 = ""
stepTwoBajajFDViewModel.genderApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getGenderMutableData.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 -> {
listOfGender = getCodeResponse.Response.GetCodesList
if (listOfGender.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfGender
)
binding.spGender.setAdapter(adapter)
binding.spGender.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun relationShipApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.relationshipCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.relationShipApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getrelationShipMutableData.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 -> {
listOfRelationShip = getCodeResponse.Response.GetCodesList
if (listOfGender.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfRelationShip
)
binding.spRelation.setAdapter(adapter)
binding.spRelation.setText(
adapter.getItem(0)?.Value,
false
)
binding.spNomineeRelation.setAdapter(adapter)
binding.spNomineeRelation.setText(
adapter.getItem(0)?.Value,
false
)
binding.spGuardianRelation.setAdapter(adapter)
binding.spGuardianRelation.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun maritalStatusApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.maritalCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.maritalStatusApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getMaritalStatusMutableData.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 -> {
listOfMaritalStatus = getCodeResponse.Response.GetCodesList
if (listOfMaritalStatus.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfMaritalStatus
)
binding.spMarital.setAdapter(adapter)
binding.spMarital.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun occupationApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.occupationCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.occupationApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getOccupationMutableData.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 -> {
listOfOccupation = getCodeResponse.Response.GetCodesList
if (listOfOccupation.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfOccupation
)
binding.spOccupation.setAdapter(adapter)
binding.spOccupation.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun annualIncomeApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.annualIncome)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.annualIncomeApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getAnnualIncomeMutableData.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 -> {
listOfAnnualIncome = getCodeResponse.Response.GetCodesList
if (listOfGender.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfAnnualIncome
)
binding.spIncome.setAdapter(adapter)
binding.spIncome.setText(
adapter.getItem(0)?.Value,
false
)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
// validations
private fun validation(): Boolean {
return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText
@ -680,17 +964,17 @@ class StepTwoBajajFDFragment : Fragment() {
binding.tlMobileNumber,
getString(R.string.emptyMobileNumber)
)
} else if (binding.edtMobileNumber.text?.length != 10) { // EditText
} else if (!isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText
commonErrorMethod(
binding.edtMobileNumber,
binding.tlMobileNumber,
getString(R.string.inValidMobileNumber)
getString(R.string.inValidIndianMobileNumber)
)
} else if (!isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText
} else if (binding.edtMobileNumber.text?.length != 10) { // EditText
commonErrorMethod(
binding.edtMobileNumber,
binding.tlMobileNumber,
getString(R.string.inValidIndianMobileNumber)
getString(R.string.inValidMobileNumber)
)
} else if (binding.edtDOB.text.toString().isEmpty()) { // EditText
commonErrorMethod(binding.edtDOB, binding.tlDOB, getString(R.string.emptyDOB))
@ -758,9 +1042,9 @@ class StepTwoBajajFDFragment : Fragment() {
commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.emptyEmail))
} else if (isValidEmail(binding.edtEmail.text.toString())) { // EditText
commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.validEmail))
} else if (binding.edtOccupation.text.toString().isEmpty()) { // EditText
commonErrorMethod(
binding.edtOccupation,
} else if (binding.spOccupation.text.toString().isEmpty()) { // EditText
commonSpinnerErrorMethod(
binding.spOccupation,
binding.tlOccupation,
getString(R.string.emptyOccupation)
)
@ -800,10 +1084,16 @@ class StepTwoBajajFDFragment : Fragment() {
binding.tlAddressLine2,
getString(R.string.emptyAddressLine2)
)
} else if (binding.edtState.text.toString().isEmpty()) { // EditText
commonErrorMethod(binding.edtState, binding.tlState, getString(R.string.emptyState))
} else if (binding.edtCity.text.toString().isEmpty()) { // EditText
commonErrorMethod(binding.edtCity, binding.tlCity, getString(R.string.emptyCity))
}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))
} 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
commonErrorMethod(
binding.edtPinCode,


+ 16
- 8
app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt View File

@ -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.R
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import java.util.regex.Matcher
import java.util.regex.Pattern
@ -91,14 +92,19 @@ class Common {
fun removeError(textInputLayout: TextInputLayout) {
if (textInputLayout.error != null) {
textInputLayout.error = null
if(textInputLayout.isErrorEnabled){
textInputLayout.isErrorEnabled = false;
}
}
}
fun showDialogValidation(activity: Activity?, message: CharSequence?) {
val builder = AlertDialog.Builder(activity)
builder.setMessage(message)
builder.setPositiveButton("OK") { dialogInterface, _ ->
dialogInterface.dismiss()
if (activity != null) {
builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ ->
dialogInterface.dismiss()
}
}
builder.show()
}
@ -106,11 +112,13 @@ class Common {
fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?) {
val builder = AlertDialog.Builder(activity)
builder.setMessage(message)
builder.setPositiveButton("OK") { dialogInterface, _ ->
dialogInterface.dismiss()
}
builder.setNegativeButton("Cancel") { dialogInterface, _ ->
dialogInterface.dismiss()
if (activity != null) {
builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ ->
dialogInterface.dismiss()
}
builder.setNegativeButton(activity.getString(R.string.cancel)) { dialogInterface, _ ->
dialogInterface.dismiss()
}
}
builder.show()
}
@ -139,7 +147,7 @@ class Common {
strMessage: String
): Boolean {
inputText.requestFocus()
inputError.error = strMessage
inputError.error = strMessage
return false
}


+ 10
- 0
app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt View File

@ -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.FDStepsCountRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Resource
@ -20,6 +21,15 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel()
getRatesMutableData.postValue(handleRatesResponse(response))
}
val getStepsCountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getStepsCount(requestBody: FDStepsCountRequest, token : String) = viewModelScope.launch {
getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token)
getStepsCountMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->


+ 25
- 2
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt View File

@ -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.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
@ -13,21 +14,43 @@ import kotlinx.coroutines.launch
class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
// TODO: Implement the ViewModel
val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getMaturityAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getCodeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getCodeMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getCodeMutableData.postValue(handleRatesResponse(response))
}
val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getRates(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.getRatesResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
val getMaturityAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMaturityAmount(requestBody: GetMaturityAmountRequest) = viewModelScope.launch {
getMaturityAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token)
getMaturityAmountMutableData.postValue(handleRatesResponse(response))
}
val getMinAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMinAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getMinAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMinAmountMutableData.postValue(handleRatesResponse(response))
}
val getMaxAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMaxAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getMaxAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMaxAmountMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->


+ 43
- 0
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt View File

@ -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.model.PanCheckRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
@ -45,4 +46,46 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
getPanCheckMutableData.postValue(handleRatesResponse(response))
}
val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleRatesResponse(response))
}
val getGenderMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun genderApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getGenderMutableData.postValue(Resource.Loading())
val response = mainRepository.genderCheck(getCodeRequest, token)
getGenderMutableData.postValue(handleRatesResponse(response))
}
val getAnnualIncomeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getAnnualIncomeMutableData.postValue(Resource.Loading())
val response = mainRepository.annualIncomeCheck(getCodeRequest, token)
getAnnualIncomeMutableData.postValue(handleRatesResponse(response))
}
val getrelationShipMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun relationShipApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getrelationShipMutableData.postValue(Resource.Loading())
val response = mainRepository.relationShipCheck(getCodeRequest, token)
getrelationShipMutableData.postValue(handleRatesResponse(response))
}
val getMaritalStatusMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getMaritalStatusMutableData.postValue(Resource.Loading())
val response = mainRepository.maritalStatusCheck(getCodeRequest, token)
getMaritalStatusMutableData.postValue(handleRatesResponse(response))
}
val getOccupationMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun occupationApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getOccupationMutableData.postValue(Resource.Loading())
val response = mainRepository.occupationCheck(getCodeRequest, token)
getOccupationMutableData.postValue(handleRatesResponse(response))
}
}

+ 228
- 310
app/src/main/res/layout/fragment_bajajfd_step_one.xml View File

@ -5,6 +5,7 @@
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@color/NiveshColorAppBg"
tool:context=".ui.fragment.StepTwoBajajFDFragment">
@ -13,358 +14,279 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_80"
android:fillViewport="true"
android:padding="@dimen/margin_10"
android:background="@color/NiveshColorAppBg"
android:fillViewport="true"
android:padding="@dimen/margin_5"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/btnNext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardViewOne"
style="@style/CustomCardViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:foreground="?android:attr/selectableItemBackground"
app:cardElevation="@dimen/margin_1"
app:cardUseCompatPadding="true">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardViewOne"
style="@style/CustomCardViewTopStyle"
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardPreventCornerOverlap="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:orientation="vertical"
android:paddingTop="@dimen/margin_10">
<ImageView
android:id="@+id/logo"
android:layout_width="@dimen/margin_150"
android:layout_height="@dimen/margin_18"
android:layout_marginStart="@dimen/margin_20"
android:layout_marginTop="@dimen/margin_5"
android:contentDescription="@string/contentDescription"
android:src="@drawable/bajaj_logo" />
<TextView
android:id="@+id/tvFdRating"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_20"
android:text="@string/schemeRating"
android:textColor="@color/greyColor2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:padding="@dimen/margin_10">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutTwo"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlDepositAmount"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10">
<ImageView
android:id="@+id/logo"
android:layout_width="@dimen/margin_150"
android:layout_height="@dimen/margin_18"
android:layout_marginTop="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_10"
android:contentDescription="@string/contentDescription"
android:src="@drawable/bajaj_logo"
app:layout_constraintBottom_toBottomOf="@+id/tvFdRating"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.02" />
android:layout_margin="@dimen/margin_5"
android:hint="@string/investmentAmount">
<TextView
android:id="@+id/tvFdRating"
style="@style/regularStyle"
android:layout_width="wrap_content"
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:text="@string/schemeRating"
android:textColor="@color/greyColor2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo"
app:layout_constraintVertical_bias="0.0" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlDepositAmount"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="0dp"
android:layout_height="@dimen/margin_53"
android:layout_margin="@dimen/margin_10"
android:hint="@string/investmentAmount"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvFdRating">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/svg_rs"
android:inputType="number"
android:maxLength="12"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
android:drawableStart="@drawable/svg_rs"
android:inputType="number"
android:maxLength="12"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
<TextView
android:id="@+id/txtMinAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginTop="@dimen/margin_1"
android:text="@string/minAmount"
android:textSize="@dimen/text_size_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlInterestPayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10"
app:hintEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/txtMinAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spInterestPayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectInterestPayout"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlInterestTenure"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10"
app:hintEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spTenure"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectInterestTenure"
android:inputType="none"
android:labelFor="@+id/spInterestTenure"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/minMax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_12"
android:layout_marginTop="@dimen/margin_2"
android:text="@string/minMaxValidation"
android:textColor="@color/greyColor2"
android:textSize="@dimen/text_size_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlInterestTenure" />
<TextView
android:id="@+id/txtMinAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:textSize="@dimen/text_size_12" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlInterestPayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
app:hintEnabled="false">
<!-- OR Layout -->
<TextView
android:id="@+id/ORLayout"
android:layout_width="wrap_content"
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spInterestPayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/OR"
android:textColor="@color/black"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectInterestPayout"
android:inputType="none"
android:padding="@dimen/margin_10"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/minMax" />
tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlInterestTenure"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvTenure"
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spTenure"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:nestedScrollingEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/ORLayout" />
<TextView
android:id="@+id/tvSwitchLabel"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginTop="@dimen/margin_15"
android:text="@string/upto0.25"
android:textColor="@color/black"
app:layout_constraintBottom_toBottomOf="@+id/swSeniorCitizen"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rvTenure"
app:layout_constraintVertical_bias="0.018" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swSeniorCitizen"
style="@style/regularStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_10"
android:text="@string/upto0.25next"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/tvSwitchLabel"
app:layout_constraintTop_toBottomOf="@+id/rvTenure"
app:layout_constraintVertical_bias="0.018" />
</androidx.constraintlayout.widget.ConstraintLayout>
android:padding="@dimen/margin_10"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectInterestTenure"
android:inputType="none"
android:labelFor="@+id/spInterestTenure"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
tool:ignore="DuplicateSpeakableTextCheck,LabelFor,TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvMaturityInstruction"
android:id="@+id/minMax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginTop="@dimen/margin_1"
android:text="@string/minMaxValidation"
android:textColor="@color/greyColor2"
android:textSize="@dimen/text_size_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlInterestTenure" />
<!-- OR Layout -->
<TextView
android:id="@+id/ORLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/OR"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvTenure"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginTop="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_10"
android:nestedScrollingEnabled="false"
android:orientation="horizontal" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swSeniorCitizen"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/greyColor3"
android:paddingStart="@dimen/margin_20"
android:paddingTop="@dimen/margin_3"
android:paddingEnd="@dimen/margin_1"
android:paddingBottom="@dimen/margin_3"
android:text="@string/maturityInstructions"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:text="@string/upto0.25next"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutThree"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_20">
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<RadioButton
android:id="@+id/rbAutoCredit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:text="@string/additionalDetailOne"
android:textSize="@dimen/text_size_12" />
<RadioButton
android:id="@+id/rbAutoRenew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="@string/additionalDetailTwo"
android:textSize="@dimen/text_size_12" />
<RadioButton
android:id="@+id/rbAutoBoth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="@string/additionalDetailThree"
android:textSize="@dimen/text_size_12" />
</RadioGroup>
</LinearLayout>
<TextView
android:id="@+id/tvTaxDeducted"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/taxDeductedAtSourceTds"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/radioGroup"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/tvUploadFormLabel"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:text="@string/TDSForm"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTaxDeducted"
app:layout_constraintVertical_bias="0.0" />
<RadioButton
android:id="@+id/rbDeductTax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:orientation="horizontal"
android:text="@string/deductTds"
android:textSize="@dimen/text_size_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvUploadFormLabel" />
<TextView
android:id="@+id/tvMaturityInstruction"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/greyColor3"
android:paddingStart="@dimen/margin_15"
android:paddingTop="@dimen/margin_3"
android:paddingEnd="@dimen/margin_1"
android:paddingBottom="@dimen/margin_3"
android:text="@string/maturityInstructions"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_10">
<TextView
android:id="@+id/tvSubmitLabel"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_5"
android:text="@string/nonDeductTDS"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rbDeductTax"
app:layout_constraintVertical_bias="0.0" />
<RadioButton
android:id="@+id/rbAutoCredit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:text="@string/additionalDetailOne"
android:textSize="@dimen/text_size_12" />
</androidx.constraintlayout.widget.ConstraintLayout>
<RadioButton
android:id="@+id/rbAutoRenew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="@string/additionalDetailTwo"
android:textSize="@dimen/text_size_12" />
</LinearLayout>
<RadioButton
android:id="@+id/rbAutoBoth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="@string/additionalDetailThree"
android:textSize="@dimen/text_size_12" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardViewTwo"
style="@style/CustomCardViewBottomStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bajaj_logo"
android:foreground="?android:attr/selectableItemBackground"
android:padding="@dimen/margin_10"
app:cardBackgroundColor="@color/greyColor4"
app:cardPreventCornerOverlap="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cardViewOne"
app:layout_constraintVertical_bias="0.0">
</RadioGroup>
<TextView
android:id="@+id/tvTaxDeducted"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_20"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_15"
android:text="@string/taxDeductedAtSourceTds"
android:textColor="@color/black" />
<TextView
android:id="@+id/tvUploadFormLabel"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:drawablePadding="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:text="@string/TDSForm"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
<RadioButton
android:id="@+id/rbDeductTax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:buttonTint="@color/black"
android:checked="true"
android:orientation="horizontal"
android:text="@string/deductTds"
android:textSize="@dimen/text_size_12" />
<TextView
android:id="@+id/tvSubmitLabel"
style="@style/regularStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:padding="@dimen/margin_5"
android:text="@string/nonDeductTDS"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="@dimen/margin_25"
android:background="@color/greyColor4"
android:orientation="vertical"
android:padding="@dimen/margin_20">
android:padding="@dimen/margin_15">
<LinearLayout
android:layout_width="match_parent"
@ -447,14 +369,10 @@
android:textSize="@dimen/text_size_14" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.core.widget.NestedScrollView>
@ -464,13 +382,13 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_15"
android:backgroundTint="@color/colorPrimary"
android:text="@string/next"
android:textColor="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/margin_15"
tool:ignore="TextContrastCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 117
- 30
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -114,6 +114,8 @@
android:id="@+id/edtMobileNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="phone"
android:maxEms="10"
android:textSize="@dimen/text_size_14" />
@ -132,6 +134,8 @@
android:id="@+id/edtDOB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:drawableEnd="@drawable/svg_cal"
android:inputType="date"
android:textSize="@dimen/text_size_14" />
@ -150,6 +154,8 @@
android:id="@+id/edtPANNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:maxEms="10"
android:textSize="@dimen/text_size_14" />
@ -205,6 +211,8 @@
android:id="@+id/edtFirstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="40"
android:textSize="@dimen/text_size_14" />
@ -224,6 +232,8 @@
android:id="@+id/edtMiddleName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="40"
android:textSize="@dimen/text_size_14" />
@ -244,24 +254,14 @@
android:id="@+id/edtLastName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="40"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
<!-- <Spinner-->
<!-- android:id="@+id/spGender"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/margin_5"-->
<!-- android:background="@drawable/rounded_corner_with_line"-->
<!-- android:minHeight="@dimen/margin_48"-->
<!-- android:paddingStart="@dimen/margin_10"-->
<!-- android:textSize="@dimen/text_size_14"-->
<!-- android:paddingEnd="0dp"-->
<!-- android:entries="@array/gender" />-->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlGender"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
@ -301,6 +301,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:maxEms="50"
android:textSize="@dimen/text_size_14" />
@ -308,19 +310,43 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlOccupation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:hint="@string/enterOccupation">
app:hintEnabled="false"
android:layout_margin="@dimen/margin_5">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtOccupation"
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spOccupation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/enterOccupation"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlIncome"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false"
android:layout_margin="@dimen/margin_5">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spIncome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectIncome"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -336,6 +362,8 @@
android:id="@+id/edtQualification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
@ -409,6 +437,8 @@
android:id="@+id/edtRelationName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -427,6 +457,8 @@
android:id="@+id/edtAddressLine1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -445,6 +477,8 @@
android:id="@+id/edtAddressLine2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -452,37 +486,64 @@
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlState"
android:id="@+id/tlAddressLine3"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:hint="@string/state">
android:hint="@string/enterAddress2">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtState"
android:id="@+id/edtAddressLine3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlCity"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:id="@+id/tlState"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:hint="@string/city">
app:hintEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtCity"
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spState"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxEms="100"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectState"
android:inputType="none"
android:labelFor="@+id/tlState"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlCity"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false"
android:layout_margin="@dimen/margin_5">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectCity"
android:inputType="none"
android:labelFor="@+id/tlCity"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -500,6 +561,8 @@
android:id="@+id/edtPinCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:textSize="@dimen/text_size_14"
android:maxEms="6" />
@ -570,6 +633,8 @@
android:id="@+id/edtNomineeFirstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -588,6 +653,8 @@
android:id="@+id/edtNomineeMiddleName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -606,6 +673,8 @@
android:id="@+id/edtNomineeLastName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:textSize="@dimen/text_size_14" />
@ -625,6 +694,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/svg_cal"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="date"
android:textSize="@dimen/text_size_14" />
@ -677,6 +748,8 @@
android:id="@+id/edtGuardianName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
@ -695,6 +768,8 @@
android:id="@+id/edtGuardianAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
@ -740,6 +815,8 @@
android:id="@+id/edtGuardianAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
@ -758,6 +835,8 @@
android:id="@+id/edtGuardianPinCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="60"
android:textSize="@dimen/text_size_14" />
@ -833,6 +912,8 @@
android:id="@+id/edtIFSC"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -849,6 +930,8 @@
android:id="@+id/edtAccountNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14"/>
</com.google.android.material.textfield.TextInputLayout>
@ -865,6 +948,8 @@
android:id="@+id/edtBankName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -881,6 +966,8 @@
android:id="@+id/edtBankBranch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>


+ 6
- 4
app/src/main/res/layout/row_dropdown.xml View File

@ -2,20 +2,22 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingEnd="@dimen/margin_1"
android:paddingStart="0dp">
android:paddingStart="0dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rlParent"
android:layout_gravity="start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/txtYear"
android:layout_width="@dimen/margin_49"
android:layout_height="@dimen/margin_30"
android:padding="@dimen/margin_10"
android:layout_width="@dimen/margin_55"
android:layout_height="@dimen/margin_35"
android:gravity="center"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />


+ 4
- 1
app/src/main/res/layout/spinner_dropdown.xml View File

@ -2,7 +2,10 @@
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_8"
android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_8"
android:paddingTop="@dimen/margin_8"
android:paddingBottom="@dimen/margin_8"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:id="@+id/tvText"


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

@ -18,7 +18,7 @@
<string name="selectInterestPayout">Select Interest Payout</string>
<string name="selectInterestTenure">Select Investment Tenure</string>
<string name="upto0.25">Up to 0.25% p.a for </string>
<string name="upto0.25next">Senior Citizens, 60+</string>
<string name="upto0.25next">Up to 0.25% p.a for Senior Citizens, 60+</string>
<string name="maturityInstructions">Maturity Instructions:</string>
<string name="additionalDetailOne">Automatically credit to my bank account</string>
<string name="additionalDetailTwo">Automatically renew principal amount</string>
@ -32,7 +32,7 @@
<string name="cumulativeText">Cumulative</string>
<string name="regularInterestPayment">Regular Interest Payment:</string>
<string name="maturityAmount">Maturity Amount:</string>
<string name="minAmount">min amount : Rs 5,000</string>
<string name="minAmount">min amount : Rs </string>
<string name="OR">OR, enter tenure in months</string>
<string name="OneYear">1 Year</string>
<string name="TwoYears">2 Years</string>
@ -67,13 +67,15 @@
<string name="enterLastName">Enter Last Name</string>
<string name="selectGender">Select Gender</string>
<string name="enterEmailAddress">Enter Email Address</string>
<string name="enterOccupation">Enter Occupation</string>
<string name="enterOccupation">Select Occupation</string>
<string name="enterQualification">Enter Qualification</string>
<string name="selectMaritalStatus">Select Marital Status</string>
<string name="selectRelation">Select Relationship</string>
<string name="relationName">Relation Name</string>
<string name="enterAddress1">Enter Address 1</string>
<string name="enterAddress2">Enter Address 2</string>
<string name="enterAddress1">Enter Address Line 1</string>
<string name="enterAddress2">Enter Address Line 2</string>
<string name="enterAddress3">Enter Address Line 3</string>
<string name="state">State</string>
<string name="city">City</string>
<string name="pinCode">PinCode</string>
@ -140,6 +142,7 @@
<string name="validEmail">Please enter valid email address</string>
<string name="emptyAddressLine1">Please enter address 1</string>
<string name="emptyAddressLine2">Please enter address 2</string>
<string name="emptyAddressLine3">Please enter address 3</string>
<string name="emptyArea">Please enter area</string>
<string name="emptyCity">Please select city</string>
@ -205,4 +208,19 @@
<string name="seniorCitizen">Senior Citizen</string>
<string name="nonSeniorCitizen">Non Senior Citizen</string>
<string name="minAmountCategory">MINAmount</string>
<string name="MaxAmountCategory">MAXAmount</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="salutationCategory">Salutation</string>
<string name="genderCategory">Gender</string>
<string name="maritalCategory">MaritalStatus</string>
<string name="occupationCategory">Occupation</string>
<string name="relationshipCategory">NomineeRelationship</string>
<string name="selectIncome">Select Income</string>
<string name="selectState">Select State</string>
<string name="selectCity">Select City</string>
<string name="annualIncome">AnnualIncome</string>
</resources>

+ 62
- 43
app/src/main/res/values/strings.xml View File

@ -17,7 +17,7 @@
<string name="selectInterestPayout">Select Interest Payout</string>
<string name="selectInterestTenure">Select Investment Tenure</string>
<string name="upto0.25">Up to 0.25% p.a for </string>
<string name="upto0.25next">Senior Citizens, 60+</string>
<string name="upto0.25next">Up to 0.25% p.a for Senior Citizens, 60+</string>
<string name="maturityInstructions">Maturity Instructions:</string>
<string name="additionalDetailOne">Automatically credit to my bank account</string>
<string name="additionalDetailTwo">Automatically renew principal amount</string>
@ -31,7 +31,7 @@
<string name="cumulativeText">Cumulative</string>
<string name="regularInterestPayment">Regular Interest Payment:</string>
<string name="maturityAmount">Maturity Amount:</string>
<string name="minAmount">min amount : Rs 5,000</string>
<string name="minAmount">min amount : Rs </string>
<string name="OR">OR, enter tenure in months</string>
<string name="OneYear">1 Year</string>
<string name="TwoYears">2 Years</string>
@ -67,13 +67,15 @@
<string name="enterLastName">Enter Last Name</string>
<string name="selectGender">Select Gender</string>
<string name="enterEmailAddress">Enter Email Address</string>
<string name="enterOccupation">Enter Occupation</string>
<string name="enterOccupation">Select Occupation</string>
<string name="enterQualification">Enter Qualification</string>
<string name="selectMaritalStatus">Select Marital Status</string>
<string name="selectRelation">Select Relationship</string>
<string name="relationName">Relation Name</string>
<string name="enterAddress1">Enter Address 1</string>
<string name="enterAddress2">Enter Address 2</string>
<string name="enterAddress1">Enter Address Line 1</string>
<string name="enterAddress2">Enter Address Line 2</string>
<string name="enterAddress3">Enter Address Line 3</string>
<string name="state">State</string>
<string name="city">City</string>
<string name="pinCode">PinCode</string>
@ -145,6 +147,7 @@
<string name="emptyAddressLine1">Please enter address 1</string>
<string name="emptyAddressLine2">Please enter address 2</string>
<string name="emptyAddressLine3">Please enter address 3</string>
<string name="emptyArea">Please enter area</string>
<string name="emptyCity">Please select city</string>
@ -214,21 +217,36 @@
<string name="nonSeniorCitizen">Non Senior Citizen</string>
<string-array name="interestPayoutList">
<item>On Maturity</item>
<item>Monthly</item>
<item>Quarterly</item>
<item>Half Yearly</item>
<item>Yearly</item>
</string-array>
<string-array name="tenure">
<item>On Maturity</item>
<item>Monthly</item>
<item>Quarterly</item>
<item>Half Yearly</item>
<item>Yearly</item>
</string-array>
<string name="minAmountCategory">MINAmount</string>
<string name="MaxAmountCategory">MAXAmount</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="salutationCategory">Salutation</string>
<string name="genderCategory">Gender</string>
<string name="maritalCategory">MaritalStatus</string>
<string name="occupationCategory">Occupation</string>
<string name="relationshipCategory">NomineeRelationship</string>
<string name="selectIncome">Select Income</string>
<string name="selectState">Select State</string>
<string name="selectCity">Select City</string>
<string name="annualIncome">AnnualIncome</string>
<!-- <string-array name="interestPayoutList">-->
<!-- <item>On Maturity</item>-->
<!-- <item>Monthly</item>-->
<!-- <item>Quarterly</item>-->
<!-- <item>Half Yearly</item>-->
<!-- <item>Yearly</item>-->
<!-- </string-array>-->
<!-- <string-array name="tenure">-->
<!-- <item>On Maturity</item>-->
<!-- <item>Monthly</item>-->
<!-- <item>Quarterly</item>-->
<!-- <item>Half Yearly</item>-->
<!-- <item>Yearly</item>-->
<!-- </string-array>-->
<array name="addressType">
<item>Aadhaar Card</item>
@ -237,29 +255,30 @@
<item>Driving Licence</item>
</array>
<array name="title">
<item>Mr</item>
<item>Mrs</item>
</array>
<array name="gender">
<item>Male</item>
<item>Female</item>
</array>
<array name="maritalStatus">
<item>Marital Status</item>
<item>Married</item>
<item>Unmarried</item>
</array>
<array name="interestPayoutLists">
<item>Interest Payout</item>
<item>On Maturity</item>
<item>Monthly</item>
<item>Quarterly</item>
<item>Half Yearly</item>
<item>Yearly</item>
</array>
<!-- <array name="title">-->
<!-- <item>Mr</item>-->
<!-- <item>Mrs</item>-->
<!-- </array>-->
<!-- <array name="gender">-->
<!-- <item>Male</item>-->
<!-- <item>Female</item>-->
<!-- </array>-->
<!-- <array name="maritalStatus">-->
<!-- <item>Marital Status</item>-->
<!-- <item>Married</item>-->
<!-- <item>Unmarried</item>-->
<!-- </array>-->
<!-- <array name="interestPayoutLists">-->
<!-- <item>Interest Payout</item>-->
<!-- <item>On Maturity</item>-->
<!-- <item>Monthly</item>-->
<!-- <item>Quarterly</item>-->
<!-- <item>Half Yearly</item>-->
<!-- <item>Yearly</item>-->
<!-- </array>-->
</resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.