Browse Source

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

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
#	app/src/main/res/values-hi-rIN/strings.xml
PankajBranch
Manoj 2 years ago
parent
commit
245c2e7607
40 changed files with 823 additions and 347 deletions
  1. +12
    -0
      app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt
  2. +74
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt
  3. +88
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt
  4. +6
    -17
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SectionsPagerAdapter.kt
  5. +29
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt
  6. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
  7. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  8. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt
  9. +6
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt
  10. +12
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt
  11. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt
  12. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt
  13. +3
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt
  14. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt
  15. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt
  16. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt
  17. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt
  18. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt
  19. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt
  20. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt
  21. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  22. +82
    -41
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  23. +13
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt
  24. +21
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt
  25. +55
    -55
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  26. +35
    -12
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  27. +7
    -3
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  28. +158
    -47
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  29. +38
    -16
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  30. +18
    -10
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  31. +11
    -23
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt
  32. +10
    -11
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt
  33. +3
    -1
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  34. +7
    -13
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  35. +13
    -68
      app/src/main/res/layout/fragment_bajajfd_step_four.xml
  36. +8
    -18
      app/src/main/res/layout/fragment_bajajfd_step_two.xml
  37. +39
    -0
      app/src/main/res/layout/item_customer_list_preview.xml
  38. +39
    -0
      app/src/main/res/layout/item_payment_list_preview.xml
  39. +2
    -0
      app/src/main/res/values-hi-rIN/strings.xml
  40. +2
    -0
      app/src/main/res/values/strings.xml

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

@ -3,4 +3,16 @@ package com.nivesh.production.bajajfd
import android.app.Application
class BajajApplication : Application() {
private var mInstance: BajajApplication? = null
// private val mRequestQueue: RequestQueue? = null
override fun onCreate() {
super.onCreate()
mInstance = this;
}
@Synchronized
fun getInstanceApp(): BajajApplication? {
return mInstance
}
}

+ 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
}
}

+ 6
- 17
app/src/main/java/com/nivesh/production/bajajfd/adapter/SectionsPagerAdapter.kt View File

@ -1,30 +1,19 @@
package com.nivesh.production.bajajfd.adapter
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class SectionsPagerAdapter(private val context: Context, fm: FragmentManager) :
FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
private var fragmentList: MutableList<Fragment> = ArrayList()
class SectionsPagerAdapter(private val fm: FragmentManager, private val fragments: Array<Fragment>, private val NumberOfTabs: Int) : SmartFragmentStatePagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
return fragmentList[position]
return fragments[position]
}
override fun getCount(): Int {
return fragmentList.size
override fun getPageTitle(position: Int): CharSequence? {
return null
}
fun addFragment(fragment: Fragment) {
try {
if (!fragment.isAdded) {
fragmentList.add(fragment)
}
} catch (e: Exception) {
e.printStackTrace()
}
override fun getCount(): Int {
return NumberOfTabs
}
}

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

@ -0,0 +1,29 @@
package com.nivesh.production.bajajfd.adapter
import android.util.SparseArray
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentStatePagerAdapter
abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) {
val registeredFragments = SparseArray<Fragment>()
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val fragment = super.instantiateItem(container, position) as Fragment
registeredFragments.put(position, fragment)
return fragment
}
// Unregister when the item is inactive
override fun destroyItem(container: View, position: Int, `object`: Any) {
registeredFragments.remove(position)
super.destroyItem(container, position, `object`)
}
// Returns the fragment for the position (if instantiated)
fun getRegisteredFragment(position: Int): Fragment? {
return registeredFragments[position]
}
}

+ 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)
}
}

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

@ -40,7 +40,7 @@ interface ApiInterface {
@POST("WebApi_Bajaj/api/GetFDDetails")
suspend fun getFDDetails(
@Body requestBody: RequestBody,
@Body requestBody: GetFDDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@ -91,7 +91,7 @@ interface ApiInterface {
suspend fun getFDStepsCount(
@Body fdStepsCountRequest: FDStepsCountRequest,
@Header("token") token: String
): Response<JsonObject>
): Response<JsonObject>
@POST("WebApi/api/GetClientDetailV2_S")
suspend fun getClientDetails(


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

@ -0,0 +1,8 @@
package com.nivesh.production.bajajfd.interfaces
import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse
interface SendData {
fun sendDataFragment(message: CreateFDApplicationResponse, currentItem: Int)
}

+ 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
)

+ 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
)

+ 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
)

+ 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,


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

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

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

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

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

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


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

@ -2,6 +2,7 @@ package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXXXXX(
val Errors: Any,
val FDDataResponse: FDDataResponse,
val Message: String,
val Status: String,
val StatusCode: Int

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

@ -32,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)


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

@ -3,11 +3,10 @@ package com.nivesh.production.bajajfd.ui.activity
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding
@ -18,12 +17,15 @@ 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.*
class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
lateinit var binding: ActivityBajajFdBinding
private lateinit var viewModel: BajajFDViewModel
@ -43,7 +45,9 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
var nomineeGuardianDetails: NomineeGuardianDetails
var getClientDetailsResponse: getClientDetailsResponse
var stepCount : Int = 0
private var stepCount: Int = 0
private lateinit var sectionsPagerAdapter : SectionsPagerAdapter
private lateinit var fragments: Array<Fragment>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -105,7 +109,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
private fun getStepsCountApi() {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.FDProvider = getString(com.nivesh.production.bajajfd.R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
viewModel.getStepsCount(fdStepsCount, token)
viewModel.getStepsCountMutableData.observe(this) { response ->
@ -120,17 +124,19 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
stepCount = stepsCountResponse.Response.StepsCount
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
}
// 650 -> refreshToken()
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 -> {
@ -140,24 +146,31 @@ 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()
getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = getString(R.string.app)
getClientDetailsRequest.AppOrWeb = getString(com.nivesh.production.bajajfd.R.string.app)
getClientDetailsRequest.sub_broker_code = "1038"
val userRequest = UserRequest()
userRequest.UID = 19060
userRequest.IPAddress = ""
userRequest.Source = getString(R.string.source)
userRequest.AppOrWeb = getString(R.string.app)
userRequest.Source = getString(com.nivesh.production.bajajfd.R.string.source)
userRequest.AppOrWeb = getString(com.nivesh.production.bajajfd.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_type = getString(com.nivesh.production.bajajfd.R.string.app)
deviceInfo.device_model = ""
deviceInfo.device_token = ""
deviceInfo.device_name = ""
@ -183,14 +196,16 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
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 -> {
@ -206,17 +221,28 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
if (stepCount == 3) {
fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
)
} else if (stepCount == 4) {
fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepThreeBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
)
}
// set viewPager
val sectionsPagerAdapter =
SectionsPagerAdapter(this@BajajFdMainActivity, supportFragmentManager)
sectionsPagerAdapter =
SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: ViewPager = binding.viewPager
sectionsPagerAdapter.addFragment(StepOneBajajFDFragment.getInstance(this@BajajFdMainActivity))
sectionsPagerAdapter.addFragment(StepTwoBajajFDFragment.getInstance(this@BajajFdMainActivity))
if (stepsCount == 4) {
sectionsPagerAdapter.addFragment(StepThreeBajajFDFragment.getInstance(this@BajajFdMainActivity))
}
sectionsPagerAdapter.addFragment(StepFourBajajFDFragment.getInstance(this@BajajFdMainActivity))
sectionsPagerAdapter.addFragment(StepFiveBajajFDFragment.getInstance(this@BajajFdMainActivity))
viewPager.adapter = sectionsPagerAdapter
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
@ -282,12 +308,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
private fun checkFDCKYCApi() {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)){
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.Mobile =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE
checkFDKYCRequest.DOB =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB
getDate(getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB!!)
checkFDKYCRequest.PAN =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN
checkFDKYCRequest.NiveshClientCode =
@ -309,14 +336,19 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
fdInvestmentDetails.CustomerType = ""
}
// 650 -> refreshToken()
else -> {}
else -> {
showDialogValidation(
this@BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -366,7 +398,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
override fun stepThreeApi(data: CreateFDRequest) {
Log.e("stepThreeApi", " response ---> $data")
// call create fd api
createFDApi(data, 3)
createFDApi(data, 3, "3")
}
// step 4 response
@ -375,15 +407,15 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
binding.viewPager.currentItem = 4
}
private fun createFDApi(data: CreateFDRequest, currentItem: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)){
private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) {
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 =
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
@ -392,17 +424,31 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
when (code) {
200 -> {
binding.viewPager.currentItem = currentItem
StepFourBajajFDFragment.getInstance(this).getFDData(createFDApplicationResponse)
if (step == "2"){
val stepThreeBajajFDFragment: StepThreeBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepThreeBajajFDFragment
stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse)
}
else{
val stepFourFDFragment: StepFourBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepFourBajajFDFragment
stepFourFDFragment.displayReceivedData(createFDApplicationResponse)
}
}
// 650 -> refreshToken()
else -> {}
else -> {
showDialogValidation(
this@BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -410,11 +456,6 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
}
}
}
}

+ 13
- 0
app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt View File

@ -0,0 +1,13 @@
package com.nivesh.production.bajajfd.ui.activity
import android.app.Activity
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
open class BaseActivity : AppCompatActivity() {
private lateinit var mActivity: Activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mActivity = this
}
}

+ 21
- 0
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt View File

@ -0,0 +1,21 @@
package com.nivesh.production.bajajfd.ui.fragment
import android.content.Context
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.nivesh.production.bajajfd.ui.activity.BaseActivity
open class BaseFragment : Fragment() {
protected var mActivity: BaseActivity? = null
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is BaseActivity) {
mActivity = context
} else try {
throw ClassCastException("You need to extend BaseActivity to calling activity.")
} catch (e: Exception) {
e.printStackTrace()
}
}
}

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

@ -6,14 +6,13 @@ 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.CreateFDApplicationResponse
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetCodeResponse
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.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
@ -21,12 +20,12 @@ import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel
class StepFourBajajFDFragment : Fragment() {
class StepFourBajajFDFragment : BaseFragment() {
private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
private var _binding: FragmentBajajfdStepFourBinding? = null
private val binding get() = _binding!!
var uniqueId : String? = ""
private var uniqueId: String? = ""
private lateinit var bajajFDInterface: BajajFDInterface
@ -42,7 +41,6 @@ class StepFourBajajFDFragment : Fragment() {
bajajFDInterface = bajajFDInterfaces
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -53,57 +51,41 @@ class StepFourBajajFDFragment : Fragment() {
stepFourBajajFDViewModel = (activity as BajajFdMainActivity).stepFourBajajFDViewModel
binding.tvInvestedAmount.text = ""
binding.tvTenure.text = ""
binding.tvInterestPayout.text = ""
binding.tvRateOfInterest.text = ""
binding.swDirectorBajajFinance.setOnCheckedChangeListener { _, _ ->
}
binding.swPromoterBajajFinance.setOnCheckedChangeListener { _, _ ->
}
binding.swRelativeDirector.setOnCheckedChangeListener { _, _ ->
}
binding.swShareholder.setOnCheckedChangeListener { _, _ ->
}
binding.swPoliticallyExposed.setOnCheckedChangeListener { _, _ ->
}
binding.swCitizen.setOnCheckedChangeListener { _, _ ->
}
binding.checkBox.setOnCheckedChangeListener { _, _ ->
}
binding.btnNext.setOnClickListener {
if (binding.checkBox.isChecked) {
bajajFDInterface.stepFourApi("stepFourResponse")
}else{
showDialogValidation(activity as BajajFdMainActivity, resources.getString(R.string.validTermsConditions))
} else {
showDialogValidation(
activity as BajajFdMainActivity,
resources.getString(R.string.validTermsConditions)
)
}
}
binding.btnBack.setOnClickListener{
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
}
return root
}
fun getFDData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
//
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
Log.e("createFDApplication", "Response-->"+createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
customerListApi()
}
private fun paymentModeApi() {
private fun customerListApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.genderCategory)
getCodeRequest.Category = getString(R.string.customerCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token)
@ -116,7 +98,9 @@ class StepFourBajajFDFragment : Fragment() {
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
setUpRecyclerView(getCodeResponse.Response.GetCodesList)
}
}
// 650 -> refreshToken()
else -> {}
@ -139,24 +123,41 @@ class StepFourBajajFDFragment : Fragment() {
}
private fun getFDDetailsApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetRatesRequest()
stepFourBajajFDViewModel.getFDDetails(getCodeRequest, Constants.token)
private fun setUpRecyclerView(getCustomerList: List<GetCodes>) {
binding.rvTerms.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
val customerListAdapter = CustomerListAdapter(getCustomerList)
binding.rvTerms.adapter = customerListAdapter
}
private fun getFDDetailsApi(uniqueId: String) {
if (Common.isNetworkAvailable(mActivity!!)) {
val getFDDetailsRequest = GetFDDetailsRequest()
getFDDetailsRequest.FDProvider = mActivity!!.getString(R.string.bajaj)
getFDDetailsRequest.NiveshClientCode = (mActivity 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 getCodeResponse: GetCodeResponse =
Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
val getFDDetailsResponse: GetFDDetailsResponse =
Gson().fromJson(
response.data?.toString(),
GetFDDetailsResponse::class.java
)
getFDDetailsResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.tvInvestedAmount.text = ""
binding.tvTenure.text = ""
binding.tvInterestPayout.text = ""
binding.tvRateOfInterest.text = ""
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 -> {}
@ -174,12 +175,11 @@ class StepFourBajajFDFragment : Fragment() {
}
}
}
}
}
override fun onDestroyView() {
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}

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

@ -31,7 +31,7 @@ import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
class StepOneBajajFDFragment : Fragment() {
class StepOneBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepOneBinding? = null
private val binding get() = _binding!!
@ -145,7 +145,7 @@ class StepOneBajajFDFragment : Fragment() {
(activity as BajajFdMainActivity).fdInvestmentDetails.NiveshClientCode = "8872"
(activity as BajajFdMainActivity).fdInvestmentDetails.Provider =
getString(R.string.bajaj)
(activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = ""
(activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = "192.168.1.23"
(activity as BajajFdMainActivity).fdInvestmentDetails.Device =
getString(R.string.app)
(activity as BajajFdMainActivity).fdInvestmentDetails.Source =
@ -206,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 -> {
@ -248,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 -> {
@ -284,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 -> {
@ -348,7 +363,10 @@ class StepOneBajajFDFragment : Fragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getMaturityAmountResponse.Response.Errors[0].ErrorMessage
)
}
}
}
@ -356,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 -> {
@ -462,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 -> {


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

@ -45,7 +45,7 @@ import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream
class StepThreeBajajFDFragment : Fragment() {
class StepThreeBajajFDFragment : BaseFragment() {
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
@ -54,7 +54,7 @@ class StepThreeBajajFDFragment : Fragment() {
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var uniqueId: String? = ""
private lateinit var dialog: Dialog
private lateinit var front: String
@ -382,7 +382,7 @@ class StepThreeBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -426,4 +426,8 @@ class StepThreeBajajFDFragment : Fragment() {
super.onDestroyView()
_binding = null
}
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
}
}

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

@ -23,6 +23,7 @@ import com.google.android.material.textfield.TextInputEditText
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.BankListAdapter
import com.nivesh.production.bajajfd.adapter.PaymentModeAdapter
import com.nivesh.production.bajajfd.adapter.RecommendedBankListAdapter
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
@ -38,13 +39,14 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail
import com.nivesh.production.bajajfd.util.Common.Companion.isValidName
import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan
import com.nivesh.production.bajajfd.util.Common.Companion.removeError
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel
import java.util.*
class StepTwoBajajFDFragment : Fragment() {
class StepTwoBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepTwoBinding? = null
private val binding get() = _binding!!
@ -60,6 +62,8 @@ class StepTwoBajajFDFragment : Fragment() {
private lateinit var listOfRelationShip: List<GetCodes>
private lateinit var listOfMaritalStatus: List<GetCodes>
private lateinit var listOfOccupation: List<GetCodes>
private lateinit var listOfPayMode: List<GetCodes>
private lateinit var listOfStates: List<DataObject>
private lateinit var listOfCities: List<DataObjectX>
@ -67,8 +71,8 @@ class StepTwoBajajFDFragment : Fragment() {
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
private lateinit var bankListAdapter: BankListAdapter
private lateinit var paymentModeAdapter: PaymentModeAdapter
private lateinit var stateObject: DataObject
private var retryCount: Int = 0
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment {
@ -99,6 +103,7 @@ class StepTwoBajajFDFragment : Fragment() {
listOfOccupation = ArrayList()
listOfStates = ArrayList()
listOfIFSC = ArrayList()
listOfPayMode = ArrayList()
stateObject = DataObject()
@ -123,7 +128,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
})
binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile)
binding.edtMobileNumber.setSelection(binding.edtMobileNumber.text.toString().length)
// create an OnDateSetListener
if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()) {
binding.edtDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.toString()))
@ -391,7 +396,11 @@ class StepTwoBajajFDFragment : Fragment() {
datePicker(binding.edtNomineeDOB)
}
binding.spNomineeRelation.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeRelationship)
binding.spNomineeRelation.setText(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(
0
)?.NomineeRelationship
)
binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ ->
removeError(binding.tlNomineeRelation)
}
@ -523,11 +532,11 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
rbPaymentMode.text = getString(R.string.Upi)
binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId ->
rbPaymentMode = group.findViewById(checkedId)
Log.e("paymentMode", "-->" + rbPaymentMode.text)
}
// rbPaymentMode.text = getString(R.string.Upi)
// binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId ->
// rbPaymentMode = group.findViewById(checkedId)
// Log.e("paymentMode", "-->" + rbPaymentMode.text)
// }
binding.tvEligibleBankOption.setOnClickListener {
apiForEligibleBankList()
@ -611,8 +620,9 @@ class StepTwoBajajFDFragment : Fragment() {
binding.edtAddressLine3.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantCity =
binding.spCity.text.toString()
// (activity as BajajFdMainActivity).applicantDetails.ApplicantState = binding.spState.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantState = stateObject.State_Code
// (activity as BajajFdMainActivity).applicantDetails.ApplicantState = binding.spState.text.toString()
(activity as BajajFdMainActivity).applicantDetails.ApplicantState =
stateObject.State_Code
(activity as BajajFdMainActivity).applicantDetails.ApplicantCountry = "India"
(activity as BajajFdMainActivity).applicantDetails.ApplicantPincode =
binding.edtPinCode.text.toString().toInt()
@ -762,7 +772,10 @@ class StepTwoBajajFDFragment : Fragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getIFSCCodeListResponse.Response.message
)
}
}
}
@ -770,7 +783,10 @@ class StepTwoBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(
activity as BajajFdMainActivity,
message
)
}
}
is Resource.Loading -> {
@ -801,7 +817,10 @@ class StepTwoBajajFDFragment : Fragment() {
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getIFSCCodeResponse.Response.message
)
}
}
}
@ -809,7 +828,7 @@ class StepTwoBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -868,6 +887,9 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH)
@ -940,7 +962,7 @@ class StepTwoBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -970,7 +992,6 @@ class StepTwoBajajFDFragment : Fragment() {
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
retryCount = 0
listOfTitle = getCodeResponse.Response.GetCodesList
if (listOfTitle.isNotEmpty()) {
val adapter = ArrayAdapter(
@ -1022,10 +1043,15 @@ class StepTwoBajajFDFragment : Fragment() {
occupationApi()
annualIncomeApi()
stateListApi()
paymentModeApi()
}
650 -> refreshToken()
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
@ -1033,7 +1059,7 @@ class StepTwoBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1045,14 +1071,65 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
private fun refreshToken() {
// retryCount++
// if(retryCount<=2){
// titleApi()
// }
private fun paymentModeApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.paymentModeCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token)
stepTwoBajajFDViewModel.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()){
listOfPayMode = getCodeResponse.Response.GetCodesList
setUpRecyclerViewPaymentMode(listOfPayMode)
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
paymentModeAdapter = PaymentModeAdapter(
listOfPayMode,
listOfPayMode[0].Value
)
binding.rvPaymentMode.adapter = paymentModeAdapter
}
private fun genderApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
@ -1070,7 +1147,6 @@ class StepTwoBajajFDFragment : Fragment() {
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
retryCount = 0
listOfGender = getCodeResponse.Response.GetCodesList
if (listOfGender.isNotEmpty()) {
val adapter = ArrayAdapter(
@ -1087,10 +1163,10 @@ class StepTwoBajajFDFragment : Fragment() {
}
// 650 -> refreshToken()
else -> {
retryCount++
if(retryCount<=2){
genderApi()
}
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Errors[0].ErrorMessage
)
}
}
}
@ -1098,7 +1174,7 @@ class StepTwoBajajFDFragment : Fragment() {
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1150,14 +1226,19 @@ class StepTwoBajajFDFragment : 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 -> {
@ -1202,14 +1283,19 @@ class StepTwoBajajFDFragment : 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 -> {
@ -1254,14 +1340,19 @@ class StepTwoBajajFDFragment : 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 -> {
@ -1306,14 +1397,19 @@ class StepTwoBajajFDFragment : 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 -> {
@ -1359,14 +1455,14 @@ class StepTwoBajajFDFragment : Fragment() {
cityListApi(adapter.getItem(0)?.State_Id)
stateObject = adapter.getItem(0) as DataObject
Log.e("if", " -->"+stateObject.State_Code)
Log.e("if", " -->" + stateObject.State_Code)
} else {
for (title in listOfStates) {
if (title.State_Code == newTitleText) {
binding.spState.setText(title.State_Name, false)
cityListApi(title.State_Id)
stateObject = title
Log.e("else", " -->"+stateObject.State_Code)
stateObject = title
Log.e("else", " -->" + stateObject.State_Code)
break
}
}
@ -1374,14 +1470,19 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
stateListResponse.response.message
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1446,14 +1547,19 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
cityListResponse.response.message
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
@ -1483,14 +1589,19 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
// 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getFDBankListResponse.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 -> {


+ 38
- 16
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,12 @@ 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 com.nivesh.production.bajajfd.ui.activity.BaseActivity
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 +26,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 +34,12 @@ class Common {
val connectivityManager = getApplication<NewsApplication>().getSystemService(....
**/
//internet check
fun isNetworkAvailable(activity: Activity): Boolean {
fun isNetworkAvailable(activity: BaseActivity): 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 +66,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 +98,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 +130,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 +139,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,13 +147,13 @@ 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
}
@ -164,7 +167,7 @@ class Common {
return false
}
fun commonSpinnerErrorMethod(
fun commonSpinnerErrorMethod(
inputText: MaterialAutoCompleteTextView,
inputError: TextInputLayout,
strMessage: String
@ -174,12 +177,31 @@ class Common {
return false
}
fun getDate(string :String): String {
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)
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())
}
}
}

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

@ -6,9 +6,9 @@ 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.GetRatesRequest
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
@ -30,19 +30,27 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel()
}
val getFDResponseMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun createFDApi(getRatesRequest: CreateFDRequest, token :String) = viewModelScope.launch {
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> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
// 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())
// }
}

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

@ -5,14 +5,15 @@ 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() {
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getPaymentModeMutableData.postValue(Resource.Loading())
@ -21,46 +22,33 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie
}
val getFDDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch {
getFDDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getFDDetailsResponse(getRatesRequest, token)
getFDDetailsMutableData.postValue(handleRatesResponse(response))
}
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch {
fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(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)
}
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) =
viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
return Resource.Error(response.message())
}
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 {
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))


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

@ -9,15 +9,14 @@ 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)
@ -59,14 +58,14 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View
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())
}
// 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())
//
// }
}

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

@ -1,6 +1,8 @@
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.DocumentUpload
import com.nivesh.production.bajajfd.model.GetCodeRequest


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

@ -6,25 +6,13 @@ import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
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()
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 panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch {
getPanCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.panCheck(panCheck, token)
@ -109,5 +97,11 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
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))
}
}

+ 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>


+ 8
- 18
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -1010,28 +1010,18 @@
</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">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:checked="true"
android:text="@string/Upi" />
android:layout_margin="@dimen/margin_5"
android:orientation="vertical">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:buttonTint="@color/black"
android:text="@string/netBanking" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvPaymentMode"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RadioGroup>
</LinearLayout>
<TextView
style="@style/regularStyle"


+ 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>

+ 2
- 0
app/src/main/res/values-hi-rIN/strings.xml View File

@ -243,5 +243,7 @@
<string name="gallery">Gallery</string>
<string name="camera">Camera</string>
<string name="selectOption">Select Option</string>
<string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string>
</resources>

+ 2
- 0
app/src/main/res/values/strings.xml View File

@ -244,6 +244,8 @@
<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>


Loading…
Cancel
Save

Powered by TurnKey Linux.