Browse Source

Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into PankajBranch

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
PankajBranch
pankaj 2 years ago
parent
commit
04ac6410e7
67 changed files with 2718 additions and 1148 deletions
  1. +25
    -0
      app/src/main/AndroidManifest.xml
  2. +49
    -74
      app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt
  3. +74
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt
  4. +88
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt
  5. +39
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt
  6. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
  7. +149
    -69
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  8. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt
  9. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/Bank.kt
  10. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/CheckFDKYCRequest.kt
  11. +11
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt
  12. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt
  13. +8
    -8
      app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt
  14. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/DeviceInfo.kt
  15. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt
  16. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt
  17. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt
  18. +12
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt
  19. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  20. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetFDBankListResponse.kt
  21. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt
  22. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt
  23. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeListResponse.kt
  24. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt
  25. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ObjectResponse.kt
  26. +3
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt
  27. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt
  28. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt
  29. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt
  30. +9
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt
  31. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt
  32. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXX.kt
  33. +9
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt
  34. +9
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt
  35. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/UserRequest.kt
  36. +4
    -4
      app/src/main/java/com/nivesh/production/bajajfd/model/getClientDetailsResponse.kt
  37. +31
    -10
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  38. +183
    -42
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  39. +117
    -19
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  40. +38
    -18
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  41. +264
    -9
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  42. +631
    -156
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  43. +49
    -17
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  44. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  45. +31
    -25
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  46. +24
    -23
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt
  47. +17
    -10
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt
  48. +10
    -13
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  49. +30
    -30
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  50. BIN
      app/src/main/res/drawable/camera.png
  51. BIN
      app/src/main/res/drawable/gallery.png
  52. +6
    -0
      app/src/main/res/drawable/svg_camera.xml
  53. +5
    -0
      app/src/main/res/drawable/svg_close.xml
  54. +5
    -0
      app/src/main/res/drawable/svg_image.xml
  55. +71
    -0
      app/src/main/res/layout/camera_gallery_layout.xml
  56. +13
    -68
      app/src/main/res/layout/fragment_bajajfd_step_four.xml
  57. +94
    -87
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  58. +168
    -209
      app/src/main/res/layout/fragment_bajajfd_step_two.xml
  59. +96
    -0
      app/src/main/res/layout/item_bank_list_preview.xml
  60. +0
    -167
      app/src/main/res/layout/item_banklist_preview.xml
  61. +39
    -0
      app/src/main/res/layout/item_customer_list_preview.xml
  62. +39
    -0
      app/src/main/res/layout/item_payment_list_preview.xml
  63. +54
    -0
      app/src/main/res/layout/layout_bank_list.xml
  64. +18
    -0
      app/src/main/res/layout/row_bank_list.xml
  65. +42
    -21
      app/src/main/res/values-hi-rIN/strings.xml
  66. +29
    -57
      app/src/main/res/values/strings.xml
  67. +23
    -0
      app/src/main/res/xml/file_paths.xml

+ 25
- 0
app/src/main/AndroidManifest.xml View File

@ -4,6 +4,20 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
@ -31,6 +45,17 @@
android:name="android.app.lib_name"
android:value="" />
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
</manifest>

+ 49
- 74
app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt View File

@ -8,109 +8,84 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.BankList
import com.nivesh.production.bajajfd.model.ClientBanklist
class BankListAdapter( private val bankList: List<BankList>,
private var checkedPosition: Int = -2,
private val selectedAccount: String? = null
)
:RecyclerView.Adapter<BankListAdapter.BankListViewHolder>()
{
inner class BankListViewHolder (itemView:View):RecyclerView.ViewHolder(itemView)
{
class BankListAdapter(
private val bankList: List<ClientBanklist>?,
private val selectedAccount: String? = null
) : RecyclerView.Adapter<BankListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
val bankName: TextView = itemView.findViewById(R.id.bankName)
val bankAcNoTV: TextView = itemView.findViewById(R.id.bankAcNoTV)
val bankIfscTV: TextView = itemView.findViewById(R.id.bankIfscTV)
val bankTypeTV: TextView = itemView.findViewById(R.id.bankTypeTV)
val tvBankName: TextView = itemView.findViewById(R.id.tvBankName)
val tvBankAccountNumber: TextView = itemView.findViewById(R.id.tvBankAccountNumber)
val tvBankIFSC: TextView = itemView.findViewById(R.id.tvBankIFSC)
}
private var checkedPosition: Int = -2
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): BankListViewHolder {
return BankListViewHolder(LayoutInflater.from(parent.context).inflate(
R.layout.item_banklist_preview,
return BankListViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.item_bank_list_preview,
parent,
false
))
false
)
)
}
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList =bankList[position]
holder.itemView.apply {
holder.bankName.text = bankList.BankName
holder.bankIfscTV.text = bankList.IFSCCode
holder.bankAcNoTV.text = bankList.AccountNumber
holder.bankTypeTV.text = bankList.AccountType
if (selectedAccount == bankList.AccountNumber && checkedPosition == -2
) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition
} else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
} else if (checkedPosition == holder.adapterPosition)
{
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
} else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
setOnClickListener{ onItemClickListener?.let {
it(bankList)
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
val bankList = bankList?.get(position)
if (bankList !=null) {
holder.itemView.apply {
holder.tvBankName.text = bankList.BankName
holder.tvBankIFSC.text = bankList.IFSCCode
holder.tvBankAccountNumber.text = bankList.AccountNumber
if (selectedAccount == bankList.AccountNumber && checkedPosition == -2
) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition
} else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
} else if (checkedPosition == holder.adapterPosition) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
} else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
setOnClickListener {
onItemClickListener?.let {
it(bankList)
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
}
}
}
}
}
}
override fun getItemCount(): Int {
return bankList.size
return bankList?.size!!
}
private var onItemClickListener: ((ClientBanklist) -> Unit)? = null
private var onItemClickListener:((BankList) ->Unit)?=null
fun setOnItemClickListener(listener:(BankList) -> Unit)
{
onItemClickListener= listener
fun setOnItemClickListener(listener: (ClientBanklist) -> Unit) {
onItemClickListener = listener
}
fun getSelected(): BankList? {
fun getSelected(): ClientBanklist? {
return if (checkedPosition != -1) {
bankList[checkedPosition]
bankList?.get(checkedPosition)
} else null
}

+ 74
- 0
app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt View File

@ -0,0 +1,74 @@
package com.nivesh.production.bajajfd.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.GetCodes
class CustomerListAdapter(
private val bankList: List<GetCodes>?
) : RecyclerView.Adapter<CustomerListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
val tvBankName: TextView = itemView.findViewById(R.id.tvBankName)
}
private var checkedPosition: Int = -2
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): BankListViewHolder {
return BankListViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.item_customer_list_preview,
parent,
false
)
)
}
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position)
if (bankList != null) {
holder.itemView.apply {
holder.tvBankName.text = bankList.Value
setOnClickListener {
onItemClickListener?.let {
it(bankList)
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
}
}
}
}
}
}
override fun getItemCount(): Int {
return bankList?.size!!
}
private var onItemClickListener: ((GetCodes) -> Unit)? = null
fun setOnItemClickListener(listener: (GetCodes) -> Unit) {
onItemClickListener = listener
}
fun getSelected(): GetCodes? {
return if (checkedPosition != -1) {
bankList?.get(checkedPosition)
} else null
}
}

+ 88
- 0
app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt View File

@ -0,0 +1,88 @@
package com.nivesh.production.bajajfd.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.GetCodes
class PaymentModeAdapter(
private val bankList: List<GetCodes>?,
private val selectedAccount: String? = null
) : RecyclerView.Adapter<PaymentModeAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector)
val tvBankName: TextView = itemView.findViewById(R.id.tvBankName)
}
private var checkedPosition: Int = -2
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): BankListViewHolder {
return BankListViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.item_payment_list_preview,
parent,
false
)
)
}
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val bankList = bankList?.get(position)
if (bankList != null) {
holder.itemView.apply {
holder.tvBankName.text = bankList.Value
if (selectedAccount == bankList.Value && checkedPosition == -2
) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
checkedPosition = holder.adapterPosition
} else if (checkedPosition == -1) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
} else if (checkedPosition == holder.adapterPosition) {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
} else {
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline)
}
setOnClickListener {
onItemClickListener?.let {
it(bankList)
holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
}
}
}
}
}
}
override fun getItemCount(): Int {
return bankList?.size!!
}
private var onItemClickListener: ((GetCodes) -> Unit)? = null
fun setOnItemClickListener(listener: (GetCodes) -> Unit) {
onItemClickListener = listener
}
fun getSelected(): GetCodes? {
return if (checkedPosition != -1) {
bankList?.get(checkedPosition)
} else null
}
}

+ 39
- 0
app/src/main/java/com/nivesh/production/bajajfd/adapter/RecommendedBankListAdapter.kt View File

@ -0,0 +1,39 @@
package com.nivesh.production.bajajfd.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.Bank
class RecommendedBankListAdapter(
private val bankList: List<Bank>
) : RecyclerView.Adapter<RecommendedBankListAdapter.MyViewHolder>() {
class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val txtYear: TextView
init {
txtYear = view.findViewById(R.id.txtYear)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val itemView: View = LayoutInflater.from(parent.context)
.inflate(R.layout.row_bank_list, parent, false)
return MyViewHolder(itemView)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val bank: Bank = bankList[position]
holder.txtYear.text = bank.BankName
}
override fun getItemCount(): Int {
return bankList.size
}
}

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

@ -26,7 +26,7 @@ class ApiClient {
.client(client)
.build()
}
val getApiClient by lazy {
val getApiClient: ApiInterface by lazy {
client.create(ApiInterface::class.java)
}
}

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

@ -8,76 +8,156 @@ import retrofit2.http.*
interface ApiInterface {
@POST("GetRates")
suspend fun getRates(@Body getRatesRequest: GetRatesRequest, @Header("token") token: String): Response<JsonObject>
@POST("CheckFDCKYC")
suspend fun checkFDKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("CreateFDApplication")
suspend fun createFDApp(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("DocumentsUpload")
suspend fun documentsUpload(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("SaveFDOtherData")
suspend fun saveFDOtherData(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("GetFDDetails")
suspend fun getFDDetails(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("FinaliseFD")
suspend fun finaliseFD(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("FinaliseKYC")
suspend fun finaliseKYC(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("PaymentRequery")
suspend fun paymentReQuery(@Body requestBody: RequestBody, @Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetRates")
suspend fun getRates(
@Body getRatesRequest: GetRatesRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CheckFDCKYC")
suspend fun checkFDKYC(
@Body checkFDKYCRequest: CheckFDKYCRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CreateFDApplication")
suspend fun createFDApp(
@Body createFDRequest: CreateFDRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/DocumentsUpload")
suspend fun documentsUpload(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/SaveFDOtherData")
suspend fun saveFDOtherData(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetFDDetails")
suspend fun getFDDetails(
@Body requestBody: GetFDDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseFD")
suspend fun finaliseFD(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseKYC")
suspend fun finaliseKYC(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PaymentRequery")
suspend fun paymentReQuery(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
// @FormUrlEncoded
@POST("GetCodes")
suspend fun getCodes(@Body requestBody: GetCodeRequest, @Header("token") token: String): Response<JsonObject>
@POST("CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount(@Body requestBody: GetMaturityAmountRequest, @Header("token") token: String): Response<JsonObject>
@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("api/GetClientDetailV2_S")
suspend fun getClientDetails(@Body getClientDetailsRequest: getClientDetailsRequest, @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>
@POST("api/GetStateMaster")
suspend fun stateApi( @Header("token") token: String): Response<JsonObject>
@POST("api/GetCity")
suspend fun cityApi(@Body cityRequest: CityRequest, @Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun getCodes(
@Body requestBody: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount(
@Body requestBody: GetMaturityAmountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PanCheck_S")
suspend fun panCheckApi(
@Body panCheck: PanCheckRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/getFDStepsCount")
suspend fun getFDStepsCount(
@Body fdStepsCountRequest: FDStepsCountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi/api/GetClientDetailV2_S")
suspend fun getClientDetails(
@Body getClientDetailsRequest: getClientDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun titleApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun genderApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun annualIncomeApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun relationShipApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun maritalStatusApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun occupationApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetStateMaster")
suspend fun stateApi(@Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCity")
suspend fun cityApi(
@Body cityRequest: CityRequest,
@Header("token") token: String
): Response<JsonObject>
@GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj")
suspend fun bankListApi(@Header("token") token: String): Response<JsonObject>
@GET("WebApi/api/GetIFSC_Autofill?prefix={prefix}")
suspend fun getIFSCApi(@Path("prefix") ifsc : String): Response<JsonObject>
@GET("WebApi/api/GetBankDetailsFromIFSC?")
suspend fun getIFSCDetailsApi(@Query("ifsc") ifsc : String,@Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
suspend fun payModeApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
}

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

@ -4,7 +4,7 @@ import com.nivesh.production.bajajfd.model.CreateFDRequest
interface BajajFDInterface {
fun stepOneApi(data: String?)
fun stepTwoApi(data: String?)
fun stepThreeApi(data: String?)
fun stepTwoApi(data: CreateFDRequest)
fun stepThreeApi(data: CreateFDRequest)
fun stepFourApi(data: String?)
}

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

@ -0,0 +1,6 @@
package com.nivesh.production.bajajfd.model
data class Bank(
val BankName: String,
val IFSC4Mapping: String
)

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

@ -0,0 +1,8 @@
package com.nivesh.production.bajajfd.model
data class CheckFDKYCRequest(
var DOB: String? ="",
var Mobile: String? = "",
var NiveshClientCode: String? = "",
var PAN: String?= ""
)

+ 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? = 0
)

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

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

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

@ -3,15 +3,15 @@ package com.nivesh.production.bajajfd.model
import java.io.Serializable
data class DataObject(
val BSE_State_Code: String,
val CAMS_statecode: String,
val Country_Id: Int,
val State_Code: String,
val State_Id: Int,
val State_Name: String,
val signzyCode: String
var BSE_State_Code: String? = "",
var CAMS_statecode: String? = "",
var Country_Id: Int? = 0,
var State_Code: String?= "",
var State_Id: Int? = 0,
var State_Name: String? = "",
var signzyCode: String? = ""
): Serializable {
override fun toString(): String {
return State_Name
return State_Name.toString()
}
}

+ 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_os_version: String? = "",
var device_token: String? = "",
var device_type: String? = ""
var device_type: String? = "",
var device_id_for_UMSId : String? = ""
)

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

@ -0,0 +1,10 @@
package com.nivesh.production.bajajfd.model
data class DocumentUpload(
val Description: String? = null,
val DocumentType: String? = null,
val FDProvider: String? = null,
val ImageEncodeToBase64: String? = null,
val NiveshClientCode: String? = null,
val UniqueId: String? = null
)

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

@ -0,0 +1,6 @@
package com.nivesh.production.bajajfd.model
data class Errors(
val ErrorCode: Int,
val ErrorMessage: String
)

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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class FDCreationDetailsResponse(
val DocumentUploadFlag: Int,
val UniqueId: String,
val kycFlag: Int
)

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

@ -0,0 +1,12 @@
package com.nivesh.production.bajajfd.model
data class FDDataResponse(
val FDAmount: Double,
val Frequency: String,
val ParameterName: String,
val PaymentUrl: String,
val RateOfInterest: Double,
val Tenure: Int,
val UniqueId: String,
val Value: String
)

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

@ -5,7 +5,7 @@ data class GetCodes(
val Value: String
) {
override fun toString(): String {
return Value
return Label
}


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

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

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

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

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

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

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

@ -0,0 +1,6 @@
package com.nivesh.production.bajajfd.model
data class GetIFSCCodeListResponse(
val IFSCCodes: MutableList<String>,
val Response: ResponseXXXXXXXXXX
)

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

@ -0,0 +1,10 @@
package com.nivesh.production.bajajfd.model
data class GetIFSCCodeResponse(
val ADDRESS: String,
val BANK: String,
val BRANCH: String,
val IFSC: String,
val MICR: String,
val Response: ResponseXXXXXXXXX
)

+ 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 clientDetails: ClientDetails,
val languageid: Int,
val membersList: List<Any>
val membersList: List<Any>,
val ClientBanklist : List<ClientBanklist>
)

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

@ -1,5 +1,7 @@
import com.nivesh.production.bajajfd.model.Errors
data class Response(
val Errors: List<Any>,
val Errors: List<Errors>,
val Message: String,
var ROIDatalist: MutableList<ROIDataList>,
val Status: String,


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

@ -1,7 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseX(
val Errors: List<Any>,
val Errors: List<Errors>,
val GetCodesList: List<GetCodes>,
val Message: String,
val Status: String,


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

@ -1,7 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseXX(
val Errors: Any,
val Errors: List<Errors>,
val MaturityAmount: Double,
val Message: String,
val Status: String,


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

@ -1,7 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXX(
val Errors: Any,
val Errors: List<Errors>,
val Message: String,
val Status: String,
val StatusCode: Int,


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

@ -0,0 +1,9 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXX(
val BankList: List<Bank>,
val Errors: List<Errors>,
val Message: String,
val Status: String,
val StatusCode: Int
)

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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXX(
val message: String,
val status: String,
val status_code: Int
)

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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXXX(
val message: String,
val status: String,
val status_code: Int
)

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

@ -0,0 +1,9 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXXXX(
val Errors: List<Errors>,
val FDCreationDetailsResponse: FDCreationDetailsResponse,
val Message: String,
val Status: String,
val StatusCode: Int
)

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

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

+ 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 LoggedInRoleId: Int = 0,
var Source: String? = "",
var UID: String? = "",
var UID: Int? = 0,
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
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
)

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

@ -7,20 +7,24 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun getCodesResponse(requestBody: GetCodeRequest , token: String) =
suspend fun getCodesResponse(requestBody: GetCodeRequest, token: String) =
apiInterface.getCodes(requestBody, token)
suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest , token: String) =
suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) =
apiInterface.getFDStepsCount(requestBody, token)
suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest , token: String) =
suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) =
apiInterface.getClientDetails(getClientDetails, token)
suspend fun createCalculateFDMaturityAmount(requestBody: GetMaturityAmountRequest, token: String) =
suspend fun createCalculateFDMaturityAmount(
requestBody: GetMaturityAmountRequest,
token: String
) =
apiInterface.getCalculateFDMaturityAmount(requestBody, token)
suspend fun checkFDKYCResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) =
apiInterface.createFDApp(createFDRequest, token)
suspend fun documentsUploadResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
@ -28,8 +32,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun getFDDetailsResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) =
apiInterface.getFDDetails(getRatesRequest, token)
suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
@ -64,8 +68,25 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun occupationCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.occupationApi(getCodeRequest, token)
suspend fun stateCheck( token: String) =
apiInterface.stateApi( token)
suspend fun stateCheck(token: String) =
apiInterface.stateApi(token)
suspend fun cityCheck(cityRequest: CityRequest, token: String) =
apiInterface.cityApi(cityRequest, token)
suspend fun bankListCheck(token: String) =
apiInterface.bankListApi(token)
suspend fun ifscCodeCheck(str: String) =
apiInterface.getIFSCApi(str)
suspend fun ifscCodeDetailsCheck(str: String, token: String) =
apiInterface.getIFSCDetailsApi(str, token)
suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token)
suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) =
apiInterface.checkFDKYC(checkFDKYCRequest, token)
}

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

@ -18,7 +18,9 @@ import com.nivesh.production.bajajfd.ui.fragment.*
import com.nivesh.production.bajajfd.ui.providerfactory.*
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape
import com.nivesh.production.bajajfd.util.Common.Companion.getDate
import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.*
@ -41,12 +43,15 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
var fdBankDetails: FdBankDetails
var nomineeDetails: NomineeDetails
var nomineeGuardianDetails: NomineeGuardianDetails
var getClientDetailsResponse : getClientDetailsResponse
var getClientDetailsResponse: getClientDetailsResponse
private var stepCount: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
init()
}
init {
getClientDetailsResponse = getClientDetailsResponse()
createFDRequest = CreateFDRequest()
@ -65,24 +70,31 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
binding = ActivityBajajFdBinding.inflate(layoutInflater)
setContentView(binding.root)
// createFDRequest = CreateFDRequest()
// createFDApplicantRequest = CreateFDApplicationRequest()
//
// fdInvestmentDetails = FDInvestmentDetails()
// applicantDetails = ApplicantDetails()
// applicantRelationDetails = ApplicantRelationDetails()
// fdBankDetails = FdBankDetails()
// nomineeDetails = NomineeDetails()
// nomineeGuardianDetails = NomineeGuardianDetails()
//start Repository
viewModel = ViewModelProvider(this, FDModelProviderFactory(MainRepository(ApiClient.getApiClient)))[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(this, StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(this, StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(this, StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(this, StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(this, StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)))[StepFiveBajajFDViewModel::class.java]
viewModel = ViewModelProvider(
this,
FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(
this,
StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
if (Common.isNetworkAvailable(this)) {
getStepsCountApi()
@ -93,7 +105,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
private fun getStepsCountApi(){
private fun getStepsCountApi() {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
@ -107,18 +119,22 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
stepsCountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
stepCount = stepsCountResponse.Response.StepsCount
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
// setViewPager(stepsCountResponse.Response.StepsCount)
}
// 650 -> refreshToken()
else -> {}
650 -> refreshToken(fdStepsCount)
else -> {
showDialogValidation(
this@BajajFdMainActivity,
stepsCountResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -128,51 +144,66 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
private fun refreshToken(fdStepsCount: FDStepsCountRequest) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
}
}
private fun getClientDetailsApi(stepsCount: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)){
val getClientDetailsRequest = getClientDetailsRequest()
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = "App"
getClientDetailsRequest.sub_broker_code = "1014"
getClientDetailsRequest.AppOrWeb = getString(R.string.app)
getClientDetailsRequest.sub_broker_code = "1038"
val userRequest = UserRequest()
userRequest.UID = "19060"
userRequest.UID = 19060
userRequest.IPAddress = ""
userRequest.Source = "Nivesh"
userRequest.AppOrWeb = "App"
userRequest.Source = getString(R.string.source)
userRequest.AppOrWeb = getString(R.string.app)
userRequest.LoggedInRoleId = 5
val deviceInfo = DeviceInfo()
deviceInfo.device_id = ""
deviceInfo.device_id_for_UMSId = ""
deviceInfo.device_type = getString(R.string.app)
deviceInfo.device_model = ""
deviceInfo.device_token = ""
deviceInfo.device_name = ""
deviceInfo.app_version = "2.44.13"
deviceInfo.device_os_version = "Android 11"
deviceInfo.app_version = ""
deviceInfo.device_os_version = ""
userRequest.deviceInfo = deviceInfo
getClientDetailsRequest.UserRequest = userRequest
Log.e("getClientDetailRequest","-->"+Gson().toJson(getClientDetailsRequest))
Log.e("getClientDetailRequest", "-->" + Gson().toJson(getClientDetailsRequest))
viewModel.getClientDetails(getClientDetailsRequest, token)
viewModel.getClientDetailsMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
getClientDetailsResponse =
Gson().fromJson(response.data?.toString(), getClientDetailsResponse::class.java)
getClientDetailsResponse =
Gson().fromJson(
response.data?.toString(),
getClientDetailsResponse::class.java
)
getClientDetailsResponse.response?.status_code.let { code ->
when (code) {
200 -> {
setViewPager(stepsCount)
checkFDCKYCApi()
}
// 650 -> refreshToken()
else -> {}
else -> {
showDialogValidation(this@BajajFdMainActivity, response.message)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -263,6 +294,61 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
private fun checkFDCKYCApi() {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
if (getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!!) {
val checkFDKYCRequest = CheckFDKYCRequest()
checkFDKYCRequest.Mobile =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE
checkFDKYCRequest.DOB =
getDate(getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB!!)
checkFDKYCRequest.PAN =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN
checkFDKYCRequest.NiveshClientCode =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString()
stepOneBajajFDViewModel.checkFDKYC( checkFDKYCRequest, token)
stepOneBajajFDViewModel.getFDKYCMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getCodeResponse: GetCodeResponse =
Gson().fromJson(
response.data?.toString(),
GetCodeResponse::class.java
)
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
fdInvestmentDetails.CustomerType = ""
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
}
// set background for selected/ default step
private fun setBackground(
drawable: Drawable?,
@ -283,15 +369,23 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
// step 2 response
override fun stepTwoApi(data: String?) {
override fun stepTwoApi(data: CreateFDRequest) {
Log.e("stepTwoApi", " response ---> $data")
binding.viewPager.currentItem = 2
if (stepCount == 4) {
// go to step 3 image Upload
binding.viewPager.currentItem = 2
} else {
// call create fd api bypass step 3
createFDApi(data, 2)
}
}
// step 3 response
override fun stepThreeApi(data: String?) {
override fun stepThreeApi(data: CreateFDRequest) {
Log.e("stepThreeApi", " response ---> $data")
binding.viewPager.currentItem = 3
// call create fd api
createFDApi(data, 3)
}
// step 4 response
@ -300,4 +394,51 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
binding.viewPager.currentItem = 4
}
private fun createFDApi(data: CreateFDRequest, currentItem: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
viewModel.createFDApi(data, token)
viewModel.getFDResponseMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.viewPager.currentItem = currentItem
StepFourBajajFDFragment.getInstance(this)
.getFDData(createFDApplicationResponse)
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
}

+ 117
- 19
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt View File

@ -1,15 +1,23 @@
package com.nivesh.production.bajajfd.ui.fragment
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.CustomerListAdapter
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel
class StepFourBajajFDFragment : Fragment() {
@ -17,6 +25,7 @@ class StepFourBajajFDFragment : Fragment() {
private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
private var _binding: FragmentBajajfdStepFourBinding? = null
private val binding get() = _binding!!
var uniqueId: String? = ""
private lateinit var bajajFDInterface: BajajFDInterface
@ -48,41 +57,130 @@ class StepFourBajajFDFragment : Fragment() {
binding.tvInterestPayout.text = ""
binding.tvRateOfInterest.text = ""
binding.swDirectorBajajFinance.setOnCheckedChangeListener { _, _ ->
}
binding.swPromoterBajajFinance.setOnCheckedChangeListener { _, _ ->
binding.checkBox.setOnCheckedChangeListener { _, _ ->
}
binding.swRelativeDirector.setOnCheckedChangeListener { _, _ ->
binding.btnNext.setOnClickListener {
if (binding.checkBox.isChecked) {
bajajFDInterface.stepFourApi("stepFourResponse")
} else {
showDialogValidation(
activity as BajajFdMainActivity,
resources.getString(R.string.validTermsConditions)
)
}
}
binding.swShareholder.setOnCheckedChangeListener { _, _ ->
return root
}
}
binding.swPoliticallyExposed.setOnCheckedChangeListener { _, _ ->
fun getFDData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
//
getFDDetailsApi(uniqueId!!)
customerListApi()
}
}
binding.swCitizen.setOnCheckedChangeListener { _, _ ->
private fun customerListApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.customerCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token)
stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getCodeResponse: GetCodeResponse =
Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
setUpRecyclerView(getCodeResponse.Response.GetCodesList)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
binding.checkBox.setOnCheckedChangeListener { _, _ ->
}
}
private fun setUpRecyclerView(getCustomerList: List<GetCodes>) {
binding.rvTerms.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
val customerListAdapter = CustomerListAdapter(getCustomerList)
binding.rvTerms.adapter = customerListAdapter
}
binding.btnNext.setOnClickListener {
if (binding.checkBox.isChecked) {
bajajFDInterface.stepThreeApi("stepThreeResponse")
}else{
showDialogValidation(activity as BajajFdMainActivity, resources.getString(R.string.validTermsConditions))
private fun getFDDetailsApi(uniqueId: String) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getFDDetailsRequest = GetFDDetailsRequest()
getFDDetailsRequest.FDProvider = getString(R.string.bajaj)
getFDDetailsRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
getFDDetailsRequest.UniqueId = uniqueId
stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token)
stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getFDDetailsResponse: GetFDDetailsResponse =
Gson().fromJson(
response.data?.toString(),
GetFDDetailsResponse::class.java
)
getFDDetailsResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.tvInvestedAmount.text =
getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString()
binding.tvTenure.text =
getFDDetailsResponse.Response.FDDataResponse.Tenure.toString()
binding.tvInterestPayout.text =
getFDDetailsResponse.Response.FDDataResponse.Frequency
binding.tvRateOfInterest.text =
getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString()
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
return root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null


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

@ -73,6 +73,7 @@ class StepOneBajajFDFragment : Fragment() {
listOfMinAmount = ArrayList()
listOfMaxAmount = ArrayList()
listOfFrequency = ArrayList()
rgMaturity = RadioButton(activity as BajajFdMainActivity)
// Amount
binding.edtAmount.addTextChangedListener(object : TextWatcher {
@ -103,7 +104,6 @@ class StepOneBajajFDFragment : Fragment() {
}
}
// Tenure
binding.spTenure.setOnItemClickListener { _, _, position, _ ->
removeError(binding.tlInterestTenure)
@ -122,6 +122,7 @@ class StepOneBajajFDFragment : Fragment() {
}
// Maturity Options
rgMaturity.text = getString(R.string.additionalDetailOne)
binding.radioGroup.setOnCheckedChangeListener { group, checkedId ->
rgMaturity = group.findViewById(checkedId)
Log.e("Maturity", "-->" + rgMaturity.text)
@ -132,7 +133,6 @@ class StepOneBajajFDFragment : Fragment() {
Log.e("DeductTax", "-->" + binding.rbDeductTax.isChecked)
}
// Next Button
binding.btnNext.setOnClickListener {
if (validation()) {
@ -160,13 +160,15 @@ class StepOneBajajFDFragment : Fragment() {
(activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = ""
(activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = ""
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails
Log.e("Maturity", "-->" + rgMaturity.text)
bajajFDInterface.stepOneApi("stepOneResponse")
}
}
minAmountApi()
interestPayoutApi()
return root
}
@ -204,14 +206,19 @@ class StepOneBajajFDFragment : Fragment() {
}
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -221,7 +228,6 @@ class StepOneBajajFDFragment : Fragment() {
}
}
private fun minAmountApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
@ -247,14 +253,19 @@ class StepOneBajajFDFragment : Fragment() {
maxAmountApi()
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -283,14 +294,19 @@ class StepOneBajajFDFragment : Fragment() {
listOfMaxAmount = getCodeResponse.Response.GetCodesList
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -300,7 +316,6 @@ class StepOneBajajFDFragment : Fragment() {
}
}
private fun setUpRecyclerView() {
recyclerViewDropDownAdapter = HorizontalRecyclerViewAdapter(
@ -320,7 +335,6 @@ class StepOneBajajFDFragment : Fragment() {
binding.rvTenure.adapter = recyclerViewDropDownAdapter
}
private fun maturityAmountApi(tenure: Int, interest: Double) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) {
@ -349,7 +363,10 @@ class StepOneBajajFDFragment : Fragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getMaturityAmountResponse.Response.Errors[0].ErrorMessage
)
}
}
}
@ -357,7 +374,7 @@ class StepOneBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -369,7 +386,6 @@ class StepOneBajajFDFragment : Fragment() {
}
}
private fun validation(): Boolean {
return if (binding.edtAmount.text.toString().isEmpty()) {
commonErrorMethod(
@ -464,14 +480,19 @@ class StepOneBajajFDFragment : Fragment() {
}
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getRatesResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -486,5 +507,4 @@ class StepOneBajajFDFragment : Fragment() {
super.onDestroyView()
_binding = null
}
}

+ 264
- 9
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt View File

@ -1,23 +1,53 @@
package com.nivesh.production.bajajfd.ui.fragment
import android.Manifest
import android.app.ActionBar.LayoutParams
import android.app.Dialog
import android.content.pm.PackageManager
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.nivesh.production.bajajfd.BuildConfig
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel
import java.io.File
class StepThreeBajajFDFragment : Fragment() {
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes>
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment {
val stepTwoFragment = StepThreeBajajFDFragment()
@ -25,10 +55,38 @@ class StepThreeBajajFDFragment : Fragment() {
return stepTwoFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri ->
val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
binding.iv.setImageBitmap(bitmap)
}
private val takeImageResult =
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
latestTmpUri?.let { uri ->
// binding.iv.setImageURI(uri)
uploadDocument()
}
}
}
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
Log.e("permission:", "Granted")
} else {
Log.e("permission:", "Denied")
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -36,24 +94,221 @@ class StepThreeBajajFDFragment : Fragment() {
_binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false)
val root = binding.root
stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel
binding.btnNext.setOnClickListener{
if (validate()){
binding.btnNext.setOnClickListener {
if (validate()) {
//
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
}
}
binding.btnBack.setOnClickListener{
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1
}
binding.btnAadhaarFrontUpload.setOnClickListener {
selectImage()
}
binding.spDocType.onItemClickListener =
AdapterView.OnItemClickListener { parent, _, position, _ ->
val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes
when (getCodes.Value) {
resources.getString(R.string.aadhar) ->
setAadhaarUploadLayout()
else -> {
setOtherUploadLayout(getCodes.Value)
}
}
}
docTypeApi()
return root
}
private fun validate(): Boolean {
private fun selectImage() {
dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
val tvGallery: TextView = dialog.findViewById(R.id.tvGallery)
val tvCamera: TextView = dialog.findViewById(R.id.tvCamera)
ivCut.setOnClickListener {
dialog.cancel()
}
tvGallery.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED -> {
selectImageIntent.launch("image/*")
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
else -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
}
}
tvCamera.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED -> {
takeImage()
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
else -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
}
}
dialog.show()
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
}
private fun checkCameraStoragePermission(
permission: String,
selectImageIntent: ActivityResultLauncher<String>
) {
TODO("Not yet implemented")
}
private fun setOtherUploadLayout(itemName: String) {
binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
View.INVISIBLE
if (binding.btnAadhaarBackUpload.visibility == View.VISIBLE) binding.btnAadhaarBackUpload.visibility =
View.INVISIBLE
}
private fun setAadhaarUploadLayout() {
binding.tvAadhaarFront.text = resources.getString(R.string.aadhaarFront)
binding.tvAadhaarBack.text = resources.getString(R.string.aadhaarBack)
binding.tvAadhaarBack.visibility = View.VISIBLE
binding.btnAadhaarBackUpload.visibility = View.VISIBLE
binding.tvAadhaarFront.visibility = View.VISIBLE
binding.btnAadhaarFrontUpload.visibility = View.VISIBLE
}
private fun uploadDocument() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val documentUpload = DocumentUpload()
}
}
private fun docTypeApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token)
stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val getCodeResponse: GetCodeResponse =
Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
listOfDocType = getCodeResponse.Response.GetCodesList
if (listOfDocType.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfDocType
)
binding.spDocType.setAdapter(adapter)
binding.spDocType.setText(
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfDocType[0].Value)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun validate(): Boolean {
return false
}
private fun takeImage() {
lifecycleScope.launchWhenStarted {
getTmpFileUri().let { uri ->
latestTmpUri = uri
takeImageResult.launch(uri)
}
}
}
private fun getTmpFileUri(): Uri {
val tmpFile =
File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply {
createNewFile()
deleteOnExit()
}
return FileProvider.getUriForFile(
requireActivity(),
"${BuildConfig.APPLICATION_ID}.provider",
tmpFile
)
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null


+ 631
- 156
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
File diff suppressed because it is too large
View File


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

@ -1,6 +1,5 @@
package com.nivesh.production.bajajfd.util
import android.annotation.SuppressLint
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
@ -14,10 +13,11 @@ import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.R
import retrofit2.HttpException
import java.io.IOException
import java.text.SimpleDateFormat
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.*
import java.util.regex.Matcher
import java.util.regex.Pattern
@ -25,7 +25,7 @@ import java.util.regex.Pattern
class Common {
companion object{
companion object {
/**
*Before use this method write following code in model class
app:Application(in activity and model)
@ -33,10 +33,12 @@ class Common {
val connectivityManager = getApplication<NewsApplication>().getSystemService(....
**/
//internet check
fun isNetworkAvailable(activity: Activity): Boolean {
fun isNetworkAvailable(activity: Activity): Boolean {
val connectivityManager = activity.getSystemService(
Context.CONNECTIVITY_SERVICE
) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val activeNetwork = connectivityManager.activeNetwork ?: return false
@ -63,11 +65,11 @@ class Common {
//valid email check
fun isValidEmail(target: String?): Boolean {
return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches()
return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches()
}
//valid Name Check
fun isValidName(nameText: String?): Boolean {
fun isValidName(nameText: String?): Boolean {
val pattern = Pattern.compile(("^[a-zA-Z\\s]{2,70}$"))
val matcher = pattern.matcher(nameText.toString())
return matcher.matches()
@ -95,7 +97,7 @@ class Common {
fun removeError(textInputLayout: TextInputLayout) {
if (textInputLayout.error != null) {
textInputLayout.error = null
if(textInputLayout.isErrorEnabled){
if (textInputLayout.isErrorEnabled) {
textInputLayout.isErrorEnabled = false;
}
}
@ -127,7 +129,7 @@ class Common {
}
// set Default Step
fun defaultShape(): GradientDrawable {
fun defaultShape(): GradientDrawable {
val shape = GradientDrawable()
shape.shape = GradientDrawable.OVAL
shape.setColor(Color.WHITE)
@ -136,7 +138,7 @@ class Common {
}
// set Selected Step
fun selectedShape(): GradientDrawable {
fun selectedShape(): GradientDrawable {
val shape = GradientDrawable()
shape.shape = GradientDrawable.OVAL
shape.setColor(Color.parseColor(Colors.colorDefault))
@ -144,17 +146,17 @@ class Common {
return shape
}
fun commonErrorMethod(
fun commonErrorMethod(
inputText: TextInputEditText,
inputError: TextInputLayout,
strMessage: String
): Boolean {
inputText.requestFocus()
inputError.error = strMessage
inputError.error = strMessage
return false
}
fun commonSpinnerErrorMethod(
fun commonErrorAutoCompleteMethod(
inputText: MaterialAutoCompleteTextView,
inputError: TextInputLayout,
strMessage: String
@ -164,11 +166,41 @@ class Common {
return false
}
fun getDate(string :String): String {
val input = SimpleDateFormat("dd-MM-yyyy", Locale.US)
val mDate : Date? = input.parse(string)
val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US)
fun commonSpinnerErrorMethod(
inputText: MaterialAutoCompleteTextView,
inputError: TextInputLayout,
strMessage: String
): Boolean {
inputText.requestFocus()
inputError.error = strMessage
return false
}
fun getDate(string: String): String {
val input = SimpleDateFormat("dd/MM/yyyy", Locale.US)
val mDate: Date? = input.parse(string)
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
return simpleDateFormat.format(mDate as Date)
}
fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
try {
if (response.isSuccessful && response.body() != null) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
} catch (t: Throwable) {
return when (t) {
is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
else -> Resource.Error(t.localizedMessage?.toString() ?: "")
}
}
return Resource.Error(response.message())
}
}
}

+ 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() {
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"
}
}

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

@ -4,47 +4,53 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.FDStepsCountRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.getClientDetailsRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
import okhttp3.RequestBody
class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
// TODO: Implement the ViewModel
val getRatesMutableData: MutableLiveData<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()
fun getStepsCount(requestBody: FDStepsCountRequest, token : String) = viewModelScope.launch {
fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch {
getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token)
getStepsCountMutableData.postValue(handleRatesResponse(response))
}
val getClientDetailsMutableData: MutableLiveData<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))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String) =
viewModelScope.launch {
getClientDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
getClientDetailsMutableData.postValue(handleRatesResponse(response))
}
return Resource.Error(response.message())
val getFDResponseMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch {
getFDResponseMutableData.postValue(Resource.Loading())
val response = mainRepository.createFDKYCResponse(getRatesRequest, token)
getFDResponseMutableData.postValue(handleRatesResponse(response))
}
// private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
// try {
// if ( response.isSuccessful && response.body() != null) {
// response.body()?.let { resultResponse ->
// return Resource.Success(resultResponse)
// }
// }
// } catch (t: Throwable) {
// return when (t) {
// is IOException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause))
// is HttpException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause))
// else -> Resource.Error(t.localizedMessage?.toString() ?: "")
// }
// }
// return Resource.Error(response.message())
// }
}

+ 24
- 23
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt View File

@ -4,50 +4,51 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetFDDetailsRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val getFDDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch {
getFDDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getFDDetailsResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
getFDDetailsMutableData.postValue(handleRatesResponse(response))
}
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token)
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
fun finaliseFD(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) =
viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
fun finaliseFD(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseFDResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
fun finaliseKYC(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseKYCResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))


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

@ -4,19 +4,19 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CheckFDKYCRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
// TODO: Implement the ViewModel
val getCodeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getCodeMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
@ -51,14 +51,21 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View
getMaxAmountMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
val getFDKYCMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String) = viewModelScope.launch {
getFDKYCMutableData.postValue(Resource.Loading())
val response = mainRepository.checkFDKYCRequest(requestBody, token)
getFDKYCMutableData.postValue(handleRatesResponse(response))
}
// private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
// if (response.isSuccessful) {
// response.body()?.let { resultResponse ->
// return Resource.Success(resultResponse)
// }
// }
// return Resource.Error(response.message())
//
// }
}

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

@ -1,33 +1,30 @@
package com.nivesh.production.bajajfd.viewModel
import androidx.lifecycle.*
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun documentsUpload(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.documentsUploadResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
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))
}
}

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

@ -4,43 +4,15 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CityRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.PanCheckRequest
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
// TODO: Implement the ViewModel
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getPanCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun checkFDKYC(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.checkFDKYCResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
// fun createFDApp(getRatesRequest: GetRatesRequest) = viewModelScope.launch {
// getRatesMutableData.postValue(Resource.Loading())
// val response = mainRepository.createFDAppResponse(getRatesRequest)
// getRatesMutableData.postValue(handleRatesResponse(response))
// }
fun panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch {
getPanCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.panCheck(panCheck, token)
@ -104,4 +76,32 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
getCityListMutableData.postValue(handleRatesResponse(response))
}
val getFDBankListMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun bankListApi( token: String) = viewModelScope.launch {
getFDBankListMutableData.postValue(Resource.Loading())
val response = mainRepository.bankListCheck( token)
getFDBankListMutableData.postValue(handleRatesResponse(response))
}
val getifscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeApi(ifsc : String) = viewModelScope.launch {
getifscCodeCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeCheck(ifsc)
getifscCodeCheckMutableData.postValue(handleRatesResponse(response))
}
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String, token: String) = viewModelScope.launch {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc, token)
getifscCodeDetailsCheckMutableData.postValue(handleRatesResponse(response))
}
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleRatesResponse(response))
}
}

BIN
app/src/main/res/drawable/camera.png View File

Before After
Width: 1024  |  Height: 1024  |  Size: 28 KiB

BIN
app/src/main/res/drawable/gallery.png View File

Before After
Width: 840  |  Height: 880  |  Size: 96 KiB

+ 6
- 0
app/src/main/res/drawable/svg_camera.xml View File

@ -0,0 +1,6 @@
<vector android:height="48dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="@android:color/white" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>

+ 5
- 0
app/src/main/res/drawable/svg_close.xml View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
</vector>

+ 5
- 0
app/src/main/res/drawable/svg_image.xml View File

@ -0,0 +1,5 @@
<vector android:height="48dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
</vector>

+ 71
- 0
app/src/main/res/layout/camera_gallery_layout.xml View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10">
<ImageView
android:id="@+id/ivCut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/svg_close"
android:padding="@dimen/margin_10"
android:layout_margin="@dimen/margin_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.954"
app:layout_constraintStart_toEndOf="@+id/tvCamera"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
android:contentDescription="@string/selectOption" />
<TextView
android:id="@+id/tvSelectOption"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10"
android:text="@string/selectOption"
android:textColor="@color/black"
android:textSize="@dimen/text_size_20"
app:layout_constraintBottom_toTopOf="@+id/tvGallery"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvGallery"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="bottom|center"
android:scaleType="fitCenter"
android:text="@string/gallery"
app:drawableTopCompat="@drawable/svg_image"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.49"
app:layout_constraintStart_toEndOf="@+id/tvSelectOption"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
<TextView
android:id="@+id/tvCamera"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="bottom|center"
android:text="@string/camera"
app:drawableTopCompat="@drawable/svg_camera"
app:layout_constraintBottom_toBottomOf="@+id/tvGallery"
app:layout_constraintEnd_toStartOf="@+id/tvGallery"
app:layout_constraintHorizontal_bias="0.395"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvGallery"
app:layout_constraintVertical_bias="1.0" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 13
- 68
app/src/main/res/layout/fragment_bajajfd_step_four.xml View File

@ -202,82 +202,27 @@
android:text="@string/termsAndCondition"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
app:layout_constraintBottom_toTopOf="@+id/swDirectorBajajFinance"
app:layout_constraintBottom_toTopOf="@+id/llRVTerms"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/lblRateOfInterest" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swDirectorBajajFinance"
style="@style/regularStyle"
<LinearLayout
android:id="@+id/llRVTerms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:text="@string/directorOfBajajFinance"
android:layout_margin="@dimen/margin_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTermsCondition" />
app:layout_constraintTop_toBottomOf="@+id/tvTermsCondition"
android:orientation="vertical">
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swPromoterBajajFinance"
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:text="@string/promoterOfBajajFinanceLtd"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swDirectorBajajFinance" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvTerms"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swRelativeDirector"
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:text="@string/relativeOfBajajFinanceLtd"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swPromoterBajajFinance" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swShareholder"
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:text="@string/shareholderOfBajajFinanceLtd"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swRelativeDirector" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swPoliticallyExposed"
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:text="@string/politicallyExposedPerson"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swShareholder" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/swCitizen"
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:text="@string/outsideOfIndia"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swPoliticallyExposed" />
</LinearLayout>
<CheckBox
android:id="@+id/checkBox"
@ -285,7 +230,7 @@
android:layout_height="48dp"
android:layout_marginTop="@dimen/margin_10"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/swCitizen" />
app:layout_constraintTop_toBottomOf="@+id/llRVTerms" />
<TextView
android:id="@+id/tvTermsAndCondition"
@ -298,7 +243,7 @@
android:textSize="@dimen/text_size_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/checkBox"
app:layout_constraintTop_toBottomOf="@+id/swCitizen" />
app:layout_constraintTop_toBottomOf="@+id/llRVTerms" />
</androidx.constraintlayout.widget.ConstraintLayout>


+ 94
- 87
app/src/main/res/layout/fragment_bajajfd_step_three.xml View File

@ -81,6 +81,71 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tvPAN"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:text="@string/pan"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPANUpload"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnPANUpload" />
<Button
android:id="@+id/btnPANUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="21dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.925"
app:layout_constraintStart_toEndOf="@+id/tvPAN"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
tools:ignore="DuplicateSpeakableTextCheck" />
<TextView
android:id="@+id/tvPhotoUpload"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/photograph"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPhotoUpload"
app:layout_constraintStart_toStartOf="@+id/tvPAN"
app:layout_constraintTop_toTopOf="@+id/btnPhotoUpload" />
<Button
android:id="@+id/btnPhotoUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="21dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/spAddressType"
app:layout_constraintEnd_toEndOf="@+id/btnPANUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPhotoUpload"
app:layout_constraintTop_toBottomOf="@+id/btnPANUpload" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/spAddressType"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
@ -91,12 +156,10 @@
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
app:hintEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
app:layout_constraintTop_toBottomOf="@+id/btnPhotoUpload">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spTitle"
android:id="@+id/spDocType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
@ -104,7 +167,9 @@
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14"
tools:layout_editor_absoluteY="230dp" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
@ -116,127 +181,69 @@
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintStart_toStartOf="@+id/spAddressType"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.562" />
app:layout_constraintStart_toStartOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarFrontUpload" />
<Button
android:id="@+id/btnAadhaarFrontUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_16"
android:layout_marginBottom="@dimen/margin_8"
android:layout_marginTop="12dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintEnd_toEndOf="@+id/spAddressType"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvAadhaarFront"
app:layout_constraintTop_toBottomOf="@+id/spAddressType"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/tvAadhaarBack"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/aadhaarBack"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarBackUpload"
app:layout_constraintStart_toStartOf="@+id/tvAadhaarFront"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload" />
tools:ignore="DuplicateSpeakableTextCheck" />
<Button
android:id="@+id/btnAadhaarBackUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_6"
android:layout_marginBottom="@dimen/margin_8"
android:layout_marginTop="21dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPANUpload"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintHorizontal_bias="0.992"
app:layout_constraintStart_toEndOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarFrontUpload" />
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/tvPAN"
android:id="@+id/tvAadhaarBack"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/panUpload"
android:layout_marginStart="16dp"
android:text="@string/aadhaarBack"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPANUpload"
app:layout_constraintEnd_toStartOf="@+id/btnAadhaarBackUpload"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toTopOf="@+id/btnPANUpload"
app:layout_constraintVertical_bias="0.468" />
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarBackUpload"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintVertical_bias="0.406" />
<Button
android:id="@+id/btnPANUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_6"
android:layout_marginBottom="@dimen/margin_8"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="@+id/btnAadhaarBackUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPAN"
<ImageView
android:id="@+id/iv"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/bajaj_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarBackUpload" />
<TextView
android:id="@+id/tvPhotoUpload"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/photoUpload"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPhotoUpload"
app:layout_constraintStart_toStartOf="@+id/tvPAN"
app:layout_constraintTop_toTopOf="@+id/btnPhotoUpload" />
<Button
android:id="@+id/btnPhotoUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_10"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="@+id/btnPANUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPhotoUpload"
app:layout_constraintTop_toBottomOf="@+id/btnPANUpload" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>


+ 168
- 209
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -14,9 +14,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_80"
android:padding="@dimen/margin_5"
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"
@ -72,8 +72,8 @@
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_1"
android:text="@string/mandatoryField"
android:textColor="@color/greyColor2"
@ -91,8 +91,8 @@
android:paddingStart="@dimen/margin_18"
android:paddingEnd="@dimen/margin_15"
android:text="@string/personalDetails"
android:textSize="@dimen/text_size_14"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
app:drawableEndCompat="@drawable/svg_down_arrow" />
<LinearLayout
@ -114,10 +114,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -134,11 +134,11 @@
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="none"
android:focusable="false"
android:inputType="none"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -155,35 +155,35 @@
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:inputType="textCapCharacters"
android:maxEms="10"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvPANVerify"
android:visibility="gone"
style="@style/regularStyle"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/margin_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/margin_15"
android:textColor="@color/greyColor2"
android:textSize="@dimen/text_size_10"
android:textColor="@color/greyColor2" />
android:visibility="gone" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlTitle"
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_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -201,6 +201,32 @@
android:textSize="@dimen/text_size_14" />
</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="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@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/tlFirstName"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
@ -213,10 +239,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -234,10 +260,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -256,67 +282,22 @@
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>
<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
android:id="@+id/tlOccupation"
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">
android:layout_margin="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spOccupation"
@ -327,7 +308,7 @@
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -336,8 +317,8 @@
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">
android:layout_margin="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spIncome"
@ -348,7 +329,7 @@
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -364,10 +345,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -376,11 +357,11 @@
android:id="@+id/tlMarital"
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_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -398,51 +379,22 @@
android:textSize="@dimen/text_size_14" />
</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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:hint="@string/relationName">
android:hint="@string/enterEmailAddress">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtRelationName"
android:id="@+id/edtEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:maxEms="50"
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>
@ -459,10 +411,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -479,10 +431,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -493,16 +445,16 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:hint="@string/enterAddress2">
android:hint="@string/enterAddress3">
<com.google.android.material.textfield.TextInputEditText
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -525,7 +477,7 @@
android:inputType="none"
android:labelFor="@+id/tlState"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14"/>
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -534,8 +486,8 @@
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">
android:layout_margin="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spCity"
@ -563,11 +515,11 @@
android:id="@+id/edtPinCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:maxEms="6"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="number"
android:textSize="@dimen/text_size_14"
android:maxEms="6" />
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -588,7 +540,6 @@
app:drawableEndCompat="@drawable/svg_down_arrow" />
<LinearLayout
android:id="@+id/llNomineeDetail"
android:layout_width="match_parent"
@ -600,11 +551,11 @@
android:id="@+id/tlNomineeTitle"
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_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -635,10 +586,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -655,10 +606,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -675,10 +626,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -696,10 +647,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/svg_cal"
android:focusable="false"
android:inputType="none"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:inputType="none"
android:focusable="false"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -708,11 +659,11 @@
android:id="@+id/tlNomineeRelation"
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_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -751,10 +702,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -771,10 +722,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -783,11 +734,11 @@
android:id="@+id/tlGuardianRelation"
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_height="wrap_content"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -818,10 +769,10 @@
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:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -838,10 +789,10 @@
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="number"
android:maxEms="60"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -862,65 +813,45 @@
android:textSize="@dimen/text_size_14"
app:drawableRightCompat="@drawable/svg_down_arrow" />
<!-- RecyclerView for bankList and Add Bank-->
<!-- RecyclerView for bankList and Add Bank-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/margin_5"
android:orientation="vertical">
>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:id="@+id/rvClientBankList"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:itemCount="2"
tools:listitem="@layout/item_banklist_preview" />
android:layout_height="match_parent" />
<TextView
android:id="@+id/addBankDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_10"
android:drawablePadding="@dimen/margin_4"
android:padding="@dimen/margin_5"
android:text="@string/add_new_account"
android:textStyle="bold"
android:textColor="@color/black"
app:drawableEndCompat="@drawable/ic_add_icon"
android:padding="@dimen/margin_5"
android:drawablePadding="4dp"
android:textSize="@dimen/text_size_18"
>
android:textStyle="bold"
app:drawableEndCompat="@drawable/ic_add_icon">
</TextView>
</LinearLayout>
<!-- Add Bank Field-->
<!-- Add Bank Field-->
<LinearLayout
android:id="@+id/llBankDetails"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/margin_10">
android:padding="@dimen/margin_10"
android:visibility="gone">
<TextView
android:id="@+id/tvAccountType"
@ -964,10 +895,12 @@
android:layout_margin="@dimen/margin_5"
android:hint="@string/enterIfscCode">
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/edtIFSC"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_15"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14" />
@ -988,7 +921,7 @@
android:layout_height="wrap_content"
android:paddingTop="@dimen/margin_15"
android:paddingBottom="@dimen/margin_15"
android:textSize="@dimen/text_size_14"/>
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -1029,63 +962,89 @@
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAddBank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_5"
android:backgroundTint="@color/colorPrimaryDark"
android:text="@string/add"
android:textColor="@color/white"
android:textSize="@dimen/text_size_14" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_5"
android:background="@color/greyColor3"
android:orientation="horizontal"
android:paddingStart="@dimen/margin_18"
android:paddingEnd="@dimen/margin_15"
android:layout_marginTop="@dimen/margin_5"
android:background="@color/greyColor3">
android:paddingEnd="@dimen/margin_15">
<TextView
android:id="@+id/tvPaymentMode"
style="@style/semiBoldStyle"
android:layout_weight="0.4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.4"
android:text="@string/paymentMode"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14" />
<TextView
android:id="@+id/tvEligibleBankOption"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:layout_gravity="end"
android:gravity="end"
android:padding="@dimen/margin_3"
android:text="@string/eligibleBankOption"
android:textColor="@color/blue"
android:textSize="@dimen/text_size_14"
/>
android:textSize="@dimen/text_size_14" />
</LinearLayout>
<RadioGroup
android:id="@+id/rgPaymentMode"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_10"
android:orientation="horizontal">
android:layout_margin="@dimen/margin_5"
android:orientation="vertical">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:text="@string/Upi" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvPaymentMode"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:buttonTint="@color/black"
android:text="@string/netBanking" />
</LinearLayout>
</RadioGroup>
<!-- <RadioGroup-->
<!-- android:id="@+id/rgPaymentMode"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/margin_10"-->
<!-- android:orientation="horizontal">-->
<!-- <RadioButton-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:buttonTint="@color/black"-->
<!-- android:checked="true"-->
<!-- android:text="@string/Upi" />-->
<!-- <RadioButton-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="50dp"-->
<!-- android:buttonTint="@color/black"-->
<!-- android:text="@string/netBanking" />-->
<!-- </RadioGroup>-->
<TextView
style="@style/regularStyle"


+ 96
- 0
app/src/main/res/layout/item_bank_list_preview.xml View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="3dp"
app:cardElevation="3dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<RelativeLayout
android:padding="@dimen/margin_3"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/bankSelector"
android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:contentDescription="@null" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/bankSelector"
android:orientation="vertical">
<TextView
android:id="@+id/tvBankName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_4"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
style="@style/regularStyle"
android:id="@+id/bankAcNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size_14"
android:text="@string/accountNo" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvBankAccountNumber"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size_14"
android:text="" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="@dimen/margin_2"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankIfsc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/regularStyle"
android:textSize="@dimen/text_size_14"
android:text="@string/acIfsc" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvBankIFSC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/regularStyle"
android:textSize="@dimen/text_size_14"
android:text="" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>

+ 0
- 167
app/src/main/res/layout/item_banklist_preview.xml View File

@ -1,167 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="8dp"
app:cardElevation="8dp"
app:cardMaxElevation="10dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<!-- In the above cardview widget cardelevation property will give elevation to your card view
card corner radius will provide radius to your card view card background color will give
background color to your card view card max elevation will give the cardview maximum
elevation card prevent corner overlap will add padding to CardView on v20 and before to
prevent intersections between the Card content and rounded corners. Card use compact padding
will add padding in API v21+ as well to have the same measurements with previous versions -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- ImageVIew to display our Course Image -->
<ImageView
android:id="@+id/bankSelector"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:layout_centerVertical="true"
android:padding="5dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_toEndOf="@id/bankSelector"
>
<!-- Text View to display Course Name -->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text=""
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<!-- Text VIew to display Course Rating -->
<!-- Image used in present in drawable folder -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankAcNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text="A/c No: "
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankAcNoTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text=""
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankIfsc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text="A/c IFSC : "
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankIfscTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text=""
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text="A/c Type : "
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bankTypeTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:text=""
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>

+ 39
- 0
app/src/main/res/layout/item_customer_list_preview.xml View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="3dp"
app:cardElevation="3dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<LinearLayout
android:padding="@dimen/margin_3"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/bankSelector"
android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:contentDescription="@null" />
<TextView
android:id="@+id/tvBankName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

+ 39
- 0
app/src/main/res/layout/item_payment_list_preview.xml View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="3dp"
app:cardElevation="3dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<LinearLayout
android:padding="@dimen/margin_3"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/bankSelector"
android:layout_width="@dimen/margin_25"
android:layout_height="@dimen/margin_25"
android:layout_marginStart="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:padding="@dimen/margin_5"
android:contentDescription="@null" />
<TextView
android:id="@+id/tvBankName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

+ 54
- 0
app/src/main/res/layout/layout_bank_list.xml View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvSelectClient"
style="@style/BoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="@dimen/margin_15"
android:text="@string/information"
android:textColor="@color/red"
android:textSize="@dimen/text_size_16"
app:layout_constraintBottom_toTopOf="@+id/rvBankList"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/tvCancel"
style="@style/BoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_10"
android:gravity="center_vertical"
android:padding="@dimen/margin_10"
android:text="@string/x"
android:textColor="@color/black"
android:textSize="@dimen/text_size_19"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvSelectClient"
android:layout_width="0dp"
android:background="@color/greyColor2"
android:layout_height="@dimen/margin_1"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvBankList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/margin_60"
android:layout_marginBottom="@dimen/margin_5"
android:scrollbars="none"
app:layout_constraintTop_toBottomOf="@+id/tvSelectClient" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 18
- 0
app/src/main/res/layout/row_bank_list.xml View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_5"
android:orientation="vertical">
<TextView
android:background="@drawable/rounded_corner_with_line"
android:id="@+id/txtYear"
android:padding="@dimen/margin_10"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_35"
android:gravity="center"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
</LinearLayout>

+ 42
- 21
app/src/main/res/values-hi-rIN/strings.xml View File

@ -4,7 +4,6 @@
<string name="app">App</string>
<string name="source">nivesh</string>
<string name="step1">Step 1</string>
<string name="step2">Step 2</string>
<string name="step3">Step 3</string>
@ -41,9 +40,10 @@
<string name="FiveYears">5 Years</string>
<string name="bajajFD">BajajFD</string>
<string name="category">InterestPayoutFreq</string>
<string name="language">EN</string>
<string name="minMaxValidation">Min, 12 months, Max. 60 months</string>
<string name="language">en-UK-0</string>
<string name="minMaxValidation">Min. 12 months, Max. 60 months</string>
<string name="minAmountCategory">MINAmount</string>
<string name="MaxAmountCategory">MAXAmount</string>
<!-- Validations -->
<string name="emptyAmount">Please enter amount</string>
@ -55,6 +55,7 @@
<string name="emptyInterestPayout">Please select Interest Payout</string>
<string name="emptyInterestTenure">Please select Investment Tenure</string>
<!-- Step 2 -->
<string name="mandatoryField">All fields are mandatory other then optional</string>
<string name="personalDetails">Personal Details</string>
@ -75,12 +76,26 @@
<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>
<string name="verifiedText">Verified</string>
<string name="notVerifiedText">Not Verified</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 name="information">Information</string>
<string name="x">X</string>
<string name="accountNo">A/c No:</string>
<string name="acIfsc">A/c IFSC :</string>
<string name="add">Add</string>
<!-- Nominee Details -->
<string name="nomineeDetailsOptional">Nominee Details (Optional)</string>
@ -119,11 +134,14 @@
<string name="inValidMobileNumber">Mobile number should have at least 10 digits</string>
<string name="inValidIndianMobileNumber">Mobile number should start with 6,7,8 and 9</string>
<string name="emptyDOB">Please select date of birth</string>
<string name="emptyPAN">Please enter PAN number</string>
<string name="invalidPAN">Invalid PAN</string>
<string name="emptyTitle">Please select title</string>
<string name="emptyGender">Please select gender</string>
<string name="emptyFirstName">Please enter First Name</string>
<string name="validFirstName">Please enter valid First Name</string>
@ -133,13 +151,17 @@
<string name="emptyLastName">Please enter Last name</string>
<string name="validLastName">Please enter valid Last Name</string>
<string name="emptyEmail">Please enter email address</string>
<string name="validEmail">Please enter valid email address</string>
<string name="emptyOccupation">Please select occupation</string>
<string name="emptyIncome">Please select income</string>
<string name="emptyQualification">Please select Qualification</string>
<string name="emptyMaritalStatus">Please select marital status </string>
<string name="emptyRelation">Please select relation </string>
<string name="emptyRelationName">Please enter relation name</string>
<string name="emptyEmail">Please enter email address</string>
<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>
@ -150,14 +172,16 @@
<string name="emptyPinCode">Please enter PinCode</string>
<string name="validPinCode">Please enter valid PinCode</string>
<string name="emptyAccNo">Please enter valid account number</string>
<string name="emptyAccNo">Please enter account number</string>
<string name="emptyIFSCCode">Please enter IFSC code</string>
<string name="validIFSCCode">Please enter valid IFSC code</string>
<string name="emptyBankName">Please select bank name</string>
<string name="emptyBranchName">Please enter branch name</string>
<string name="emptyBankName">Please select bank name</string>
<string name="emptyPaymentMode">Please select payment mode</string>
<!-- Step Three -->
<string name="uploadKycDocuments">Upload KYC Documents</string>
<string name="addressProofType">Address Proof Type <font color='#E9161E'>*</font></string>
@ -166,6 +190,9 @@
<string name="panUpload">PAN Upload <font color='#E9161E'>*</font></string>
<string name="photoUpload">Photo Upload <font color='#E9161E'>*</font></string>
<string name="uploadFile">Upload File</string>
<string name="photograph">Photograph <font color='#E9161E'>*</font></string>
<string name="pan">PAN <font color='#E9161E'>*</font></string>
<string name="docType">Doctype</string>
<!-- Step Four -->
@ -182,6 +209,7 @@
<string name="politicallyExposedPerson">Are you a politically exposed person</string>
<string name="outsideOfIndia">I am not a citizen, national or tax resident of any country outside of India</string>
<string name="termsCondition">I undertake to inform company any change in status of my nationality or tax residence. I am making investment from my Indian resident Individual Savings bank account. I/ We confirm that 1/we have read and understood the detailed terms and conditions annexed to this Application including the interest rate and other charges. I have gone through the financials and other statements/particulars representations furnished/made by the company and after careful consideration I am making the deposit with the company at my own risk and volition. I have read and agree to the <font color='#5077FF'>Terms &amp; conditions</font></string>
<string name="validTermsConditions">Please accept terms &amp; conditions.</string>
@ -209,19 +237,12 @@
<string name="nonSeniorCitizen">Non Senior Citizen</string>
<string name="add_new_account">Add New Account</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>
<string name="aadhar">Aadhar</string>
<string name="gallery">Gallery</string>
<string name="camera">Camera</string>
<string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string>
</resources>

+ 29
- 57
app/src/main/res/values/strings.xml View File

@ -40,9 +40,10 @@
<string name="FiveYears">5 Years</string>
<string name="bajajFD">BajajFD</string>
<string name="category">InterestPayoutFreq</string>
<string name="language">EN</string>
<string name="language">en-UK-0</string>
<string name="minMaxValidation">Min. 12 months, Max. 60 months</string>
<string name="minAmountCategory">MINAmount</string>
<string name="MaxAmountCategory">MAXAmount</string>
<!-- Validations -->
<string name="emptyAmount">Please enter amount</string>
@ -75,12 +76,26 @@
<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>
<string name="verifiedText">Verified</string>
<string name="notVerifiedText">Not Verified</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 name="information">Information</string>
<string name="x">X</string>
<string name="accountNo">A/c No:</string>
<string name="acIfsc">A/c IFSC :</string>
<string name="add">Add</string>
<!-- Nominee Details -->
<string name="nomineeDetailsOptional">Nominee Details (Optional)</string>
@ -140,6 +155,8 @@
<string name="validEmail">Please enter valid email address</string>
<string name="emptyOccupation">Please select occupation</string>
<string name="emptyIncome">Please select income</string>
<string name="emptyQualification">Please select Qualification</string>
<string name="emptyMaritalStatus">Please select marital status </string>
<string name="emptyRelation">Please select relation </string>
@ -173,6 +190,9 @@
<string name="panUpload">PAN Upload <font color='#E9161E'>*</font></string>
<string name="photoUpload">Photo Upload <font color='#E9161E'>*</font></string>
<string name="uploadFile">Upload File</string>
<string name="photograph">Photograph <font color='#E9161E'>*</font></string>
<string name="pan">PAN <font color='#E9161E'>*</font></string>
<string name="docType">Doctype</string>
<!-- Step Four -->
@ -217,37 +237,15 @@
<string name="nonSeniorCitizen">Non Senior Citizen</string>
<string name="add_new_account">Add New Account</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>
<string name="aadhar">Aadhar</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="selectOption">Select Option</string>
<string name="gallery">Gallery</string>
<string name="camera">Camera</string>
<string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string>
<array name="addressType">
<item>Aadhaar Card</item>
@ -256,30 +254,4 @@
<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>-->
</resources>

+ 23
- 0
app/src/main/res/xml/file_paths.xml View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="my_images"
path="." />
<external-path
name="external"
path="." />
<external-files-path
name="external_files"
path="." />
<cache-path
name="cache"
path="." />
<external-cache-path
name="external_cache"
path="." />
<files-path
name="files"
path="." />
<!-- Android/data/com.nivesh.production.debug/files/Pictures -->
<!-- https://stackoverflow.com/questions/42516126/fileprovider-illegalargumentexception-failed-to-find-configured-root -->
</paths>

Loading…
Cancel
Save

Powered by TurnKey Linux.