Browse Source

completed 2nd step

PankajBranch
Hemant Khadase 2 years ago
parent
commit
9a393b2a86
11 changed files with 242 additions and 194 deletions
  1. +23
    -23
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  2. +11
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt
  3. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt
  4. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt
  5. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt
  6. +4
    -4
      app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt
  7. +43
    -18
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  8. +67
    -49
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  9. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  10. +7
    -17
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  11. +81
    -79
      app/src/main/res/layout/fragment_bajajfd_step_two.xml

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

@ -8,75 +8,75 @@ import retrofit2.http.*
interface ApiInterface { interface ApiInterface {
@POST("GetRates")
@POST("WebApi_Bajaj/GetRates")
suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response<JsonObject> suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response<JsonObject>
@POST("CheckFDCKYC")
@POST("WebApi_Bajaj/CheckFDCKYC")
suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("CreateFDApplication")
@POST("WebApi_Bajaj/CreateFDApplication")
suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("DocumentsUpload")
@POST("WebApi_Bajaj/DocumentsUpload")
suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("SaveFDOtherData")
@POST("WebApi_Bajaj/SaveFDOtherData")
suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("GetFDDetails")
@POST("WebApi_Bajaj/GetFDDetails")
suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("UpdateFDPaymentStatus")
@POST("WebApi_Bajaj/UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("FinaliseFD")
@POST("WebApi_Bajaj/FinaliseFD")
suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("FinaliseKYC")
@POST("WebApi_Bajaj/FinaliseKYC")
suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("PaymentRequery")
@POST("WebApi_Bajaj/PaymentRequery")
suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject> suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
// @FormUrlEncoded // @FormUrlEncoded
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("CalculateFDMaturityAmount")
@POST("WebApi_Bajaj/CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response<JsonObject> suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response<JsonObject>
@POST("api/PanCheck_S")
@POST("WebApi_Bajaj/api/PanCheck_S")
suspend fun panCheckApi(@Body panCheck: PanCheckRequest, @Header("token") token: String): Response<JsonObject> suspend fun panCheckApi(@Body panCheck: PanCheckRequest, @Header("token") token: String): Response<JsonObject>
@POST("getFDStepsCount")
@POST("WebApi_Bajaj/getFDStepsCount")
suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response<JsonObject> suspend fun getFDStepsCount(@Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String): Response<JsonObject>
@POST("api/GetClientDetailV2_S")
@POST("WebApi/api/GetClientDetailV2_S")
suspend fun getClientDetails(@Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String): Response<JsonObject> suspend fun getClientDetails(@Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun titleApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun genderApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun annualIncomeApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun relationShipApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun maritalStatusApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("GetCodes")
@POST("WebApi_Bajaj/GetCodes")
suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject> suspend fun occupationApi(@Body getCodeRequest: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("api/GetStateMaster")
@POST("WebApi_Bajaj/api/GetStateMaster")
suspend fun stateApi( @Header("token") token: String): Response<JsonObject> suspend fun stateApi( @Header("token") token: String): Response<JsonObject>
@POST("api/GetCity")
@POST("WebApi_Bajaj/api/GetCity")
suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response<JsonObject> suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response<JsonObject>

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

@ -0,0 +1,11 @@
package com.nivesh.production.bajajfd.model
data class ClientBanklist(
val AccountNumber: String,
val AccountType: String,
val BankName: String,
val BranchName: String,
val DefaultBankFlag: String,
val IFSCCode: String,
val IsValBank: Int
)

+ 2
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt View File

@ -7,5 +7,6 @@ data class DeviceInfo(
var device_name: String? ="", var device_name: String? ="",
var device_os_version: String? = "", var device_os_version: String? = "",
var device_token: String? = "", var device_token: String? = "",
var device_type: String? = ""
var device_type: String? = "",
var device_id_for_UMSId : String? = ""
) )

+ 2
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt View File

@ -4,5 +4,6 @@ data class ObjectResponse(
val TransactionCount: Int, val TransactionCount: Int,
val clientDetails: ClientDetails, val clientDetails: ClientDetails,
val languageid: Int, val languageid: Int,
val membersList: List<Any>
val membersList: List<Any>,
val ClientBanklist : List<ClientBanklist>
) )

+ 1
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt View File

@ -5,6 +5,6 @@ data class UserRequest(
var IPAddress: String? = "", var IPAddress: String? = "",
var LoggedInRoleId: Int = 0, var LoggedInRoleId: Int = 0,
var Source: String? = "", var Source: String? = "",
var UID: String? = "",
var UID: Int? = 0,
var deviceInfo: DeviceInfo? = null var deviceInfo: DeviceInfo? = null
) )

+ 4
- 4
app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt View File

@ -1,8 +1,8 @@
package com.nivesh.production.bajajfd.model package com.nivesh.production.bajajfd.model
data class getClientDetailsResponse( data class getClientDetailsResponse(
// val DataObject: Any ? = "",
// val Message: Any = "",
var ObjectResponse: ObjectResponse? = null,
var response: ResponseXXXXXXX? = null
// val DataObject: Any ?,
// val Message: Any,
val ObjectResponse: ObjectResponse? = null,
val response: ResponseXXXXXXX? = null
) )

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

@ -26,6 +26,7 @@ import com.nivesh.production.bajajfd.viewModel.*
class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
lateinit var binding: ActivityBajajFdBinding lateinit var binding: ActivityBajajFdBinding
private lateinit var viewModel: BajajFDViewModel private lateinit var viewModel: BajajFDViewModel
private lateinit var viewModel1: BajajFDViewModel
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
@ -41,12 +42,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
var fdBankDetails: FdBankDetails var fdBankDetails: FdBankDetails
var nomineeDetails: NomineeDetails var nomineeDetails: NomineeDetails
var nomineeGuardianDetails: NomineeGuardianDetails var nomineeGuardianDetails: NomineeGuardianDetails
var getClientDetailsResponse : getClientDetailsResponse
var getClientDetailsResponse: getClientDetailsResponse
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
init() init()
} }
init { init {
getClientDetailsResponse = getClientDetailsResponse() getClientDetailsResponse = getClientDetailsResponse()
createFDRequest = CreateFDRequest() createFDRequest = CreateFDRequest()
@ -77,12 +79,30 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
// nomineeGuardianDetails = NomineeGuardianDetails() // nomineeGuardianDetails = NomineeGuardianDetails()
//start Repository //start Repository
viewModel = ViewModelProvider(this, FDModelProviderFactory(MainRepository(ApiClient.getApiClient)))[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(this, StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(this, StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(this, StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(this, StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(this, StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFiveBajajFDViewModel::class.java]
viewModel = ViewModelProvider(
this,
FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(
this,
StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
if (Common.isNetworkAvailable(this)) { if (Common.isNetworkAvailable(this)) {
getStepsCountApi() getStepsCountApi()
@ -93,7 +113,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
} }
} }
private fun getStepsCountApi(){
private fun getStepsCountApi() {
val fdStepsCount = FDStepsCountRequest() val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj) fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872" fdStepsCount.NiveshClientCode = "8872"
@ -108,7 +128,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
when (code) { when (code) {
200 -> { 200 -> {
getClientDetailsApi(stepsCountResponse.Response.StepsCount) getClientDetailsApi(stepsCountResponse.Response.StepsCount)
// setViewPager(stepsCountResponse.Response.StepsCount)
// setViewPager(stepsCountResponse.Response.StepsCount)
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> {} else -> {}
@ -129,14 +149,14 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
} }
private fun getClientDetailsApi(stepsCount: Int) { private fun getClientDetailsApi(stepsCount: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)){
val getClientDetailsRequest = getClientDetailsRequest()
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "8872" getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = "App" getClientDetailsRequest.AppOrWeb = "App"
getClientDetailsRequest.sub_broker_code = "1014"
getClientDetailsRequest.sub_broker_code = "1038"
val userRequest = UserRequest() val userRequest = UserRequest()
userRequest.UID = "19060"
userRequest.UID = 19060
userRequest.IPAddress = "" userRequest.IPAddress = ""
userRequest.Source = "Nivesh" userRequest.Source = "Nivesh"
userRequest.AppOrWeb = "App" userRequest.AppOrWeb = "App"
@ -144,21 +164,26 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
val deviceInfo = DeviceInfo() val deviceInfo = DeviceInfo()
deviceInfo.device_id = "" deviceInfo.device_id = ""
deviceInfo.device_id_for_UMSId = ""
deviceInfo.device_type = "App"
deviceInfo.device_model = "" deviceInfo.device_model = ""
deviceInfo.device_token = "" deviceInfo.device_token = ""
deviceInfo.device_name = "" deviceInfo.device_name = ""
deviceInfo.app_version = "2.44.13"
deviceInfo.device_os_version = "Android 11"
deviceInfo.app_version = ""
deviceInfo.device_os_version = ""
userRequest.deviceInfo = deviceInfo userRequest.deviceInfo = deviceInfo
getClientDetailsRequest.UserRequest = userRequest getClientDetailsRequest.UserRequest = userRequest
Log.e("getClientDetailRequest","-->"+Gson().toJson(getClientDetailsRequest))
Log.e("getClientDetailRequest", "-->" + Gson().toJson(getClientDetailsRequest))
viewModel.getClientDetails(getClientDetailsRequest, token) viewModel.getClientDetails(getClientDetailsRequest, token)
viewModel.getClientDetailsMutableData.observe(this) { response -> viewModel.getClientDetailsMutableData.observe(this) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
Log.e("response", "-->$response") Log.e("response", "-->$response")
getClientDetailsResponse =
Gson().fromJson(response.data?.toString(), getClientDetailsResponse::class.java)
getClientDetailsResponse =
Gson().fromJson(
response.data?.toString(),
getClientDetailsResponse::class.java
)
getClientDetailsResponse.response?.status_code.let { code -> getClientDetailsResponse.response?.status_code.let { code ->
when (code) { when (code) {
200 -> { 200 -> {


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

@ -8,6 +8,7 @@ import android.text.InputFilter.LengthFilter
import android.text.TextWatcher import android.text.TextWatcher
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
@ -134,11 +135,6 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlTitle) removeError(binding.tlTitle)
} }
val splitStringName =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split(
"\\s".toRegex()
)?.toTypedArray()
binding.edtFirstName.addTextChangedListener(object : TextWatcher { binding.edtFirstName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -151,8 +147,6 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlFirstName) removeError(binding.tlFirstName)
} }
}) })
binding.edtFirstName.setText(splitStringName?.get(0).toString())
binding.edtMiddleName.addTextChangedListener(object : TextWatcher { binding.edtMiddleName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -165,8 +159,6 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlMiddleName) removeError(binding.tlMiddleName)
} }
}) })
binding.edtMiddleName.setText(splitStringName?.get(1).toString())
binding.edtLastName.addTextChangedListener(object : TextWatcher { binding.edtLastName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -179,7 +171,21 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlLastName) removeError(binding.tlLastName)
} }
}) })
binding.edtLastName.setText(splitStringName?.get(2).toString())
val splitStringName =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split(
"\\s".toRegex()
)?.toTypedArray()
if (splitStringName?.size == 1) {
binding.edtFirstName.setText(splitStringName[0])
} else if (splitStringName?.size == 2) {
binding.edtFirstName.setText(splitStringName[0])
binding.edtLastName.setText(splitStringName[1])
} else if (splitStringName?.size == 3) {
binding.edtFirstName.setText(splitStringName[0])
binding.edtMiddleName.setText(splitStringName[1])
binding.edtLastName.setText(splitStringName[2])
}
binding.spGender.setOnItemClickListener { _, _, _, _ -> binding.spGender.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlGender) removeError(binding.tlGender)
@ -220,23 +226,6 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlMarital) removeError(binding.tlMarital)
} }
binding.spRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlRelation)
}
binding.edtRelationName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
removeError(binding.tlRelationName)
}
})
binding.edtAddressLine1.addTextChangedListener(object : TextWatcher { binding.edtAddressLine1.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -249,6 +238,8 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlAddressLine1) removeError(binding.tlAddressLine1)
} }
}) })
binding.edtAddressLine1.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD1)
binding.edtAddressLine2.addTextChangedListener(object : TextWatcher { binding.edtAddressLine2.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -261,6 +252,8 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlAddressLine2) removeError(binding.tlAddressLine2)
} }
}) })
binding.edtAddressLine2.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD2)
binding.edtAddressLine3.addTextChangedListener(object : TextWatcher { binding.edtAddressLine3.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -273,6 +266,7 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlAddressLine3) removeError(binding.tlAddressLine3)
} }
}) })
binding.edtAddressLine3.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD3)
binding.spState.setOnItemClickListener { _, _, _, _ -> binding.spState.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlState) removeError(binding.tlState)
@ -292,11 +286,13 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlPinCode) removeError(binding.tlPinCode)
} }
}) })
binding.edtPinCode.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PINCODE)
// Nominee Details // Nominee Details
binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ -> binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ ->
binding.tlNomineeTitle.error = null binding.tlNomineeTitle.error = null
} }
binding.edtNomineeFirstName.addTextChangedListener(object : TextWatcher { binding.edtNomineeFirstName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -333,14 +329,29 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlNomineeLastName) removeError(binding.tlNomineeLastName)
} }
}) })
val splitNomineeName = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeName?.split(
"\\s".toRegex())?.toTypedArray()
if (splitNomineeName?.size == 1) {
binding.edtNomineeFirstName.setText(splitNomineeName[0])
}else if (splitNomineeName?.size == 2){
binding.edtNomineeFirstName.setText(splitNomineeName[0])
binding.edtNomineeLastName.setText(splitNomineeName[1])
}else if(splitNomineeName?.size == 3){
binding.edtNomineeFirstName.setText(splitNomineeName[0])
binding.edtNomineeMiddleName.setText(splitNomineeName[1])
binding.edtNomineeLastName.setText(splitNomineeName[2])
}
binding.edtNomineeDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB)
binding.edtNomineeDOB.setOnClickListener { binding.edtNomineeDOB.setOnClickListener {
removeError(binding.tlNomineeDOB) removeError(binding.tlNomineeDOB)
datePicker(binding.edtNomineeDOB) datePicker(binding.edtNomineeDOB)
} }
binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlNomineeRelation) removeError(binding.tlNomineeRelation)
} }
binding.cbNomineeSameAddress.setOnCheckedChangeListener { _, _ -> binding.cbNomineeSameAddress.setOnCheckedChangeListener { _, _ ->
} }
@ -358,6 +369,8 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlGuardianName) removeError(binding.tlGuardianName)
} }
}) })
binding.edtGuardianName.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeGuardian)
binding.edtGuardianAge.addTextChangedListener(object : TextWatcher { binding.edtGuardianAge.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -370,9 +383,11 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlGuardianAge) removeError(binding.tlGuardianAge)
} }
}) })
binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ -> binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlGuardianRelation) removeError(binding.tlGuardianRelation)
} }
binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher { binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -417,6 +432,8 @@ class StepTwoBajajFDFragment : Fragment() {
removeError(binding.tlIFSC) removeError(binding.tlIFSC)
} }
}) })
// binding.edtIFSC.setText()
binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { binding.edtAccountNumber.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
@ -717,14 +734,32 @@ class StepTwoBajajFDFragment : Fragment() {
) )
binding.spTitle.setAdapter(adapter) binding.spTitle.setAdapter(adapter)
if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title.isNullOrEmpty()) {
val titleText=(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title
val newTitleText= "$titleText."
if (titleText.isNullOrEmpty()) {
binding.spTitle.setText( binding.spTitle.setText(
adapter.getItem(0)?.Value, adapter.getItem(0)?.Value,
false false
) )
} else {
listOfTitle.filter {
it.Value == (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title
}else{
for (title in listOfTitle) {
if (title.Value ==newTitleText) {
binding.spTitle.setText(title.Value,false)
break
}
// binding.spTitle.setOnTouchListener { v, event ->
// when (event?.action) {
// MotionEvent.ACTION_DOWN -> {
// binding.spTitle.setText(
// adapter.getItem(0)?.Value,
// false
// )
//
// }
// }
//
// v?.onTouchEvent(event) ?: true
// }
} }
} }
@ -838,11 +873,6 @@ class StepTwoBajajFDFragment : Fragment() {
R.layout.spinner_dropdown, R.layout.spinner_dropdown,
listOfRelationShip listOfRelationShip
) )
binding.spRelation.setAdapter(adapter)
binding.spRelation.setText(
adapter.getItem(0)?.Value,
false
)
binding.spNomineeRelation.setAdapter(adapter) binding.spNomineeRelation.setAdapter(adapter)
binding.spNomineeRelation.setText( binding.spNomineeRelation.setText(
@ -1245,18 +1275,6 @@ class StepTwoBajajFDFragment : Fragment() {
binding.tlMarital, binding.tlMarital,
getString(R.string.emptyMaritalStatus) getString(R.string.emptyMaritalStatus)
) )
} else if (binding.spRelation.text.toString().isEmpty()) { // Spinner
commonSpinnerErrorMethod(
binding.spRelation,
binding.tlRelation,
getString(R.string.emptyRelation)
)
} else if (binding.edtRelationName.text.toString().isEmpty()) { // EditText
commonErrorMethod(
binding.edtRelationName,
binding.tlRelationName,
getString(R.string.emptyRelationName)
)
} else if (binding.edtAddressLine1.text.toString().isEmpty()) { // EditText } else if (binding.edtAddressLine1.text.toString().isEmpty()) { // EditText
commonErrorMethod( commonErrorMethod(
binding.edtAddressLine1, binding.edtAddressLine1,


+ 1
- 1
app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt View File

@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util
class Constants() { class Constants() {
companion object { companion object {
const val BASE_URL = "https://providential.in/WebApi_Bajaj/"
const val BASE_URL = "https://providential.in/"
const val token = "636F8F63-06C4-4D95-8562-392B34025FB0" const val token = "636F8F63-06C4-4D95-8562-392B34025FB0"
} }
} }

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

@ -5,37 +5,27 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.FDStepsCountRequest import com.nivesh.production.bajajfd.model.FDStepsCountRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.getClientDetailsRequest import com.nivesh.production.bajajfd.model.getClientDetailsRequest
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import okhttp3.RequestBody
class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
// TODO: Implement the ViewModel
val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
val getStepsCountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData() val getStepsCountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getStepsCount(requestBody: FDStepsCountRequest, token : String) = viewModelScope.launch {
fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch {
getStepsCountMutableData.postValue(Resource.Loading()) getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token) val response = mainRepository.getStepsCountResponse(requestBody, token)
getStepsCountMutableData.postValue(handleRatesResponse(response)) getStepsCountMutableData.postValue(handleRatesResponse(response))
} }
val getClientDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData() val getClientDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token : String) = viewModelScope.launch {
getClientDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
getClientDetailsMutableData.postValue(handleRatesResponse(response))
}
fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String) =
viewModelScope.launch {
getClientDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
getClientDetailsMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> { private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {


+ 81
- 79
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -201,6 +201,32 @@
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlGender"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_48"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spGender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectGender"
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 <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlFirstName" android:id="@+id/tlFirstName"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
@ -264,51 +290,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlGender"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_48"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spGender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectGender"
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/tlEmail"
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/enterEmailAddress">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtEmail"
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" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlOccupation" android:id="@+id/tlOccupation"
@ -398,55 +380,75 @@
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlRelation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_48"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spRelation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectRelation"
android:inputType="none"
android:labelFor="@+id/tlRelation"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlRelationName"
android:id="@+id/tlEmail"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5" android:layout_margin="@dimen/margin_5"
android:hint="@string/relationName">
android:hint="@string/enterEmailAddress">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtRelationName"
android:id="@+id/edtEmail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:paddingTop="@dimen/margin_15" android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15" android:paddingBottom="@dimen/margin_15"
android:inputType="text"
android:maxEms="100"
android:maxEms="50"
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<!-- <com.google.android.material.textfield.TextInputLayout-->
<!-- android:id="@+id/tlRelation"-->
<!-- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/margin_48"-->
<!-- android:layout_marginTop="@dimen/margin_10"-->
<!-- android:layout_marginBottom="@dimen/margin_5"-->
<!-- android:layout_marginStart="@dimen/margin_5"-->
<!-- android:layout_marginEnd="@dimen/margin_5"-->
<!-- app:hintEnabled="false"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">-->
<!-- <com.google.android.material.textfield.MaterialAutoCompleteTextView-->
<!-- android:id="@+id/spRelation"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:background="@drawable/rounded_corner_with_line"-->
<!-- android:hint="@string/selectRelation"-->
<!-- android:inputType="none"-->
<!-- android:labelFor="@+id/tlRelation"-->
<!-- android:textColorHint="#757575"-->
<!-- android:textSize="@dimen/text_size_14" />-->
<!-- </com.google.android.material.textfield.TextInputLayout>-->
<!-- <com.google.android.material.textfield.TextInputLayout-->
<!-- android:id="@+id/tlRelationName"-->
<!-- 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/relationName">-->
<!-- <com.google.android.material.textfield.TextInputEditText-->
<!-- 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" />-->
<!-- </com.google.android.material.textfield.TextInputLayout>-->
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlAddressLine1" android:id="@+id/tlAddressLine1"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
@ -493,7 +495,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5" android:layout_margin="@dimen/margin_5"
android:hint="@string/enterAddress2">
android:hint="@string/enterAddress3">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtAddressLine3" android:id="@+id/edtAddressLine3"


Loading…
Cancel
Save

Powered by TurnKey Linux.