Browse Source

changes

PankajBranch
Hemant Khadase 2 years ago
parent
commit
7eee4b276f
18 changed files with 361 additions and 301 deletions
  1. +24
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt
  2. +4
    -8
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt
  3. +4
    -3
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt
  4. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt
  5. +39
    -169
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  6. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt
  7. +15
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt
  8. +11
    -1
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
  9. +61
    -23
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  10. +29
    -24
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  11. +62
    -19
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  12. +78
    -45
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  13. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  14. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt
  15. +1
    -6
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt
  16. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  17. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  18. +1
    -1
      app/src/main/res/layout/activity_bajaj_fd.xml

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

@ -0,0 +1,24 @@
package com.nivesh.production.bajajfd.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import androidx.viewpager.widget.ViewPager
class DisableAdapter (context: Context, attrs: AttributeSet) : ViewPager(context, attrs) {
private var isPagingEnabled = true // change this value for enable and disable the viewpager swipe
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent?): Boolean {
return this.isPagingEnabled && super.onTouchEvent(event)
}
override fun onInterceptTouchEvent(event: MotionEvent?): Boolean {
return this.isPagingEnabled && super.onInterceptTouchEvent(event)
}
fun setPagingEnabled(b: Boolean) { isPagingEnabled = b
}
}

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

@ -5,10 +5,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
import androidx.fragment.app.FragmentStatePagerAdapter import androidx.fragment.app.FragmentStatePagerAdapter
import androidx.viewpager2.adapter.FragmentStateAdapter
abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) {
val registeredFragments = SparseArray<Fragment>()
abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
private val registeredFragments = SparseArray<Fragment>()
override fun instantiateItem(container: ViewGroup, position: Int): Any { override fun instantiateItem(container: ViewGroup, position: Int): Any {
val fragment = super.instantiateItem(container, position) as Fragment val fragment = super.instantiateItem(container, position) as Fragment
@ -16,12 +18,6 @@ abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager)
return 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) // Returns the fragment for the position (if instantiated)
fun getRegisteredFragment(position: Int): Fragment? { fun getRegisteredFragment(position: Int): Fragment? {
return registeredFragments[position] return registeredFragments[position]


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

@ -1,11 +1,12 @@
package com.nivesh.production.bajajfd.interfaces package com.nivesh.production.bajajfd.interfaces
import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse
import com.nivesh.production.bajajfd.model.CreateFDRequest import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.SaveFDOtherDataRequest import com.nivesh.production.bajajfd.model.SaveFDOtherDataRequest
interface BajajFDInterface { interface BajajFDInterface {
fun stepOneApi(data: String?) fun stepOneApi(data: String?)
fun stepTwoApi(data: CreateFDRequest)
fun stepThreeApi(data: CreateFDRequest)
fun stepFourApi(data: SaveFDOtherDataRequest, payUrl: String, value: String)
fun stepTwoApi(data: CreateFDApplicationResponse)
fun stepThreeApi(data: CreateFDApplicationResponse)
fun stepFourApi( payUrl: String, value: String)
} }

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

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

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

@ -15,6 +15,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.DisableAdapter
import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter
import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding
@ -37,21 +38,21 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
lateinit var binding: ActivityBajajFdBinding lateinit var binding: ActivityBajajFdBinding
private lateinit var viewModel: BajajFDViewModel private lateinit var viewModel: BajajFDViewModel
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel
var createFDRequest: CreateFDRequest
var createFDApplicantRequest: CreateFDApplicationRequest
var applicantDetails: ApplicantDetails
var fdInvestmentDetails: FDInvestmentDetails
var applicantRelationDetails: ApplicantRelationDetails
var fdBankDetails: FdBankDetails
var nomineeDetails: NomineeDetails
var nomineeGuardianDetails: NomineeGuardianDetails
var getClientDetailsResponse: getClientDetailsResponse
val stepOneBajajFDFragment = StepOneBajajFDFragment()
val stepTwoBajajFDFragment = StepTwoBajajFDFragment()
val stepThreeBajajFDFragment = StepThreeBajajFDFragment()
val stepFourBajajFDFragment = StepFourBajajFDFragment()
val stepFiveBajajFDFragment = StepFiveBajajFDFragment()
var createFDRequest: CreateFDRequest = CreateFDRequest()
var createFDApplicantRequest: CreateFDApplicationRequest = CreateFDApplicationRequest()
var applicantDetails: ApplicantDetails = ApplicantDetails()
var fdInvestmentDetails: FDInvestmentDetails = FDInvestmentDetails()
var applicantRelationDetails: ApplicantRelationDetails = ApplicantRelationDetails()
var fdBankDetails: FdBankDetails = FdBankDetails()
var nomineeDetails: NomineeDetails = NomineeDetails()
var nomineeGuardianDetails: NomineeGuardianDetails = NomineeGuardianDetails()
var getClientDetailsResponse: getClientDetailsResponse = getClientDetailsResponse()
private var stepCount: Int = 0 private var stepCount: Int = 0
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
@ -62,19 +63,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
init() init()
} }
init {
getClientDetailsResponse = getClientDetailsResponse()
createFDRequest = CreateFDRequest()
createFDApplicantRequest = CreateFDApplicationRequest()
fdInvestmentDetails = FDInvestmentDetails()
applicantDetails = ApplicantDetails()
applicantRelationDetails = ApplicantRelationDetails()
fdBankDetails = FdBankDetails()
nomineeDetails = NomineeDetails()
nomineeGuardianDetails = NomineeGuardianDetails()
}
private fun init() { private fun init() {
binding = ActivityBajajFdBinding.inflate(layoutInflater) binding = ActivityBajajFdBinding.inflate(layoutInflater)
@ -85,26 +73,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
this, this,
FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[BajajFDViewModel::class.java] )[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(
this,
StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
if (Common.isNetworkAvailable(this)) { if (Common.isNetworkAvailable(this)) {
getStepsCountApi() getStepsCountApi()
@ -234,28 +202,26 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
if (stepCount == 3) { if (stepCount == 3) {
fragments = arrayOf( fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
stepOneBajajFDFragment,
stepTwoBajajFDFragment,
stepFourBajajFDFragment,
stepFiveBajajFDFragment
) )
} else if (stepCount == 4) { } else if (stepCount == 4) {
fragments = arrayOf( fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepThreeBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
stepOneBajajFDFragment,
stepTwoBajajFDFragment,
stepThreeBajajFDFragment,
stepFourBajajFDFragment,
stepFiveBajajFDFragment
) )
} }
// set viewPager // set viewPager
sectionsPagerAdapter =
SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: ViewPager = binding.viewPager
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: DisableAdapter = binding.viewPager
viewPager.setPagingEnabled(false)
viewPager.adapter = sectionsPagerAdapter viewPager.adapter = sectionsPagerAdapter
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled( override fun onPageScrolled(
position: Int, position: Int,
@ -330,8 +296,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN
checkFDKYCRequest.NiveshClientCode = checkFDKYCRequest.NiveshClientCode =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString()
stepOneBajajFDViewModel.checkFDKYC(checkFDKYCRequest, token)
stepOneBajajFDViewModel.getFDKYCMutableData.observe(this) { response ->
viewModel.checkFDKYC(checkFDKYCRequest, token)
viewModel.getFDKYCMutableData.observe(this) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
Log.e("response", "-->$response") Log.e("response", "-->$response")
@ -393,124 +359,28 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
} }
// step 2 response // step 2 response
override fun stepTwoApi(data: CreateFDRequest) {
override fun stepTwoApi(data: CreateFDApplicationResponse) {
Log.e("stepTwoApi", " response ---> " + Gson().toJson(data)) Log.e("stepTwoApi", " response ---> " + Gson().toJson(data))
createFDApi(data, 2, "2")
binding.viewPager.currentItem = 2
stepThreeBajajFDFragment.displayReceivedData(data)
} }
// step 3 response // step 3 response
override fun stepThreeApi(data: CreateFDRequest) {
override fun stepThreeApi(data: CreateFDApplicationResponse) {
Log.e("stepThreeApi", " response --->" + Gson().toJson(data)) Log.e("stepThreeApi", " response --->" + Gson().toJson(data))
// call create fd api // call create fd api
createFDApi(data, 3, "3")
binding.viewPager.currentItem = 3
stepFourBajajFDFragment.displayReceivedData(data)
} }
// step 4 response // step 4 response
override fun stepFourApi(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
Log.e("stepFourApi", " response ---> " + Gson().toJson(data))
// binding.viewPager.currentItem = 4
saveFDOtherData(data, payUrl, value)
}
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 =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.viewPager.currentItem = currentItem
if (step == "2") {
val stepThreeBajajFDFragment: StepThreeBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepThreeBajajFDFragment
stepThreeBajajFDFragment.displayReceivedData(
createFDApplicationResponse
)
} else {
val stepFourFDFragment: StepFourBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepFourBajajFDFragment
stepFourFDFragment.displayReceivedData(
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 -> {
}
}
}
}
}
private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
if (Common.isNetworkAvailable(this)) {
viewModel.saveFDOtherData(data, token)
viewModel.getFDOtherMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->" + response.data.toString())
val saveFDOtherDataResponse: SaveFDOtherDataResponse =
Gson().fromJson(
response.data?.toString(),
SaveFDOtherDataResponse::class.java
)
saveFDOtherDataResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
paymentDialog(payUrl, value)
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,
saveFDOtherDataResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
override fun stepFourApi(payUrl: String, value: String) {
paymentDialog(payUrl, value)
} }
@SuppressLint("SetJavaScriptEnabled") @SuppressLint("SetJavaScriptEnabled")
fun paymentDialog(payUrl: String, value: String) {
fun paymentDialog(payUrl: String, value: String) {
Log.e("payUrl", "-->$payUrl") Log.e("payUrl", "-->$payUrl")
Log.e("value", "-->$value") Log.e("value", "-->$value")
val dialogWebView = Dialog(this@BajajFdMainActivity) val dialogWebView = Dialog(this@BajajFdMainActivity)


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

@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity
open class BaseActivity : AppCompatActivity() { open class BaseActivity : AppCompatActivity() {
private lateinit var mActivity: Activity private lateinit var mActivity: Activity
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
mActivity = this mActivity = this


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

@ -7,6 +7,9 @@ import com.nivesh.production.bajajfd.ui.activity.BaseActivity
open class BaseFragment : Fragment() { open class BaseFragment : Fragment() {
protected var mActivity: BaseActivity? = null protected var mActivity: BaseActivity? = null
override fun onAttach(context: Context) { override fun onAttach(context: Context) {
super.onAttach(context) super.onAttach(context)
if (context is BaseActivity) { if (context is BaseActivity) {
@ -18,4 +21,16 @@ open class BaseFragment : Fragment() {
} }
} }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onStart() {
super.onStart()
}
override fun onStop() {
super.onStop()
}
} }

+ 11
- 1
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt View File

@ -6,9 +6,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepFiveModelProviderFactory
import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel
class StepFiveBajajFDFragment : Fragment() { class StepFiveBajajFDFragment : Fragment() {
@ -37,7 +40,6 @@ class StepFiveBajajFDFragment : Fragment() {
_binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false)
val root = binding.root val root = binding.root
stepFiveBajajFDViewModel= (activity as BajajFdMainActivity).stepFiveBajajFDViewModel
// val textView: TextView = binding.sectionLabel // val textView: TextView = binding.sectionLabel
// stepFourViewModel.text.observe(viewLifecycleOwner) { // stepFourViewModel.text.observe(viewLifecycleOwner) {
@ -51,6 +53,14 @@ class StepFiveBajajFDFragment : Fragment() {
return root return root
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
}
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null _binding = null


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

@ -5,17 +5,21 @@ import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.CustomerListAdapter import com.nivesh.production.bajajfd.adapter.CustomerListAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding 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.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepFourModelProviderFactory
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants 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.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel
@ -27,22 +31,8 @@ class StepFourBajajFDFragment : BaseFragment() {
private lateinit var listOfCustomer: MutableList<GetCodes> private lateinit var listOfCustomer: MutableList<GetCodes>
private var selectedList: String = "" private var selectedList: String = ""
private var uniqueId: String = "" private var uniqueId: String = ""
private var payUrl : String = ""
private var Value : String = ""
private lateinit var bajajFDInterface: BajajFDInterface
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepFourBajajFDFragment {
val stepThreeFragment = StepFourBajajFDFragment()
stepThreeFragment.setApi(fdInterface)
return stepThreeFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private var payUrl: String = ""
private var value: String = ""
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?,
@ -50,9 +40,15 @@ class StepFourBajajFDFragment : BaseFragment() {
): View { ): View {
_binding = FragmentBajajfdStepFourBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepFourBinding.inflate(inflater, container, false)
val root = binding.root
return binding.root
}
stepFourBajajFDViewModel = (activity as BajajFdMainActivity).stepFourBajajFDViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
binding.checkBox.setOnCheckedChangeListener { _, _ -> binding.checkBox.setOnCheckedChangeListener { _, _ ->
@ -77,7 +73,8 @@ class StepFourBajajFDFragment : BaseFragment() {
saveFDOtherDataRequest.Values = selectedList saveFDOtherDataRequest.Values = selectedList
saveFDOtherDataRequest.NiveshClientCode = saveFDOtherDataRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value)
// bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value)
saveFDOtherData(saveFDOtherDataRequest, payUrl, value)
} else { } else {
showDialogValidation( showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
@ -89,7 +86,48 @@ class StepFourBajajFDFragment : BaseFragment() {
binding.btnBack.setOnClickListener { binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
} }
return root
}
private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
stepFourBajajFDViewModel.saveFDOtherData(data, token)
stepFourBajajFDViewModel.getFDOtherMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->" + response.data.toString())
val saveFDOtherDataResponse: SaveFDOtherDataResponse =
Gson().fromJson(
response.data?.toString(),
SaveFDOtherDataResponse::class.java
)
saveFDOtherDataResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
(activity as BajajFdMainActivity).stepFourApi(payUrl, value)
// paymentDialog(payUrl, value)
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
activity as BajajFdMainActivity,
saveFDOtherDataResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
} }
@ -187,7 +225,7 @@ class StepFourBajajFDFragment : BaseFragment() {
getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString() getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString()
.plus(" % p.a.") .plus(" % p.a.")
payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl
Value = getFDDetailsResponse.Response.FDDataResponse.Value
value = getFDDetailsResponse.Response.FDDataResponse.Value
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
@ -216,6 +254,6 @@ class StepFourBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
// _binding = null
_binding = null
} }
} }

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

@ -12,17 +12,19 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.RadioButton import android.widget.RadioButton
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView.LayoutManager import androidx.recyclerview.widget.RecyclerView.LayoutManager
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.HorizontalRecyclerViewAdapter import com.nivesh.production.bajajfd.adapter.HorizontalRecyclerViewAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepOneModelProviderFactory
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.removeError import com.nivesh.production.bajajfd.util.Common.Companion.removeError
@ -35,7 +37,6 @@ class StepOneBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepOneBinding? = null private var _binding: FragmentBajajfdStepOneBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
private lateinit var rgMaturity: RadioButton private lateinit var rgMaturity: RadioButton
private lateinit var listOfTenure: MutableList<ROIDataList> private lateinit var listOfTenure: MutableList<ROIDataList>
@ -47,25 +48,19 @@ class StepOneBajajFDFragment : BaseFragment() {
private var tenure: Int = 0 private var tenure: Int = 0
private var interest: Double = 0.0 private var interest: Double = 0.0
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment {
val stepStartFragment = StepOneBajajFDFragment()
stepStartFragment.setApi(fdInterface)
return stepStartFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View { ): View {
_binding = FragmentBajajfdStepOneBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepOneBinding.inflate(inflater, container, false)
val root = binding.root
return binding.root
}
stepOneBajajFDViewModel = (activity as BajajFdMainActivity).stepOneBajajFDViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
listOfTenure = ArrayList() listOfTenure = ArrayList()
binding.edtAmount.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(8)) // upto 1 Cr binding.edtAmount.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(8)) // upto 1 Cr
@ -160,16 +155,21 @@ class StepOneBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = "" (activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = ""
(activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = ""
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails
Log.e("Maturity", "-->" + rgMaturity.text)
bajajFDInterface.stepOneApi("stepOneResponse")
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails =
(activity as BajajFdMainActivity).fdInvestmentDetails
Log.e(
"StepOneData",
"-->" + Gson().toJson((activity as BajajFdMainActivity).fdInvestmentDetails)
)
// bajajFDInterface.stepOneApi("stepOneResponse")
(activity as BajajFdMainActivity).stepOneApi("stepOneResponse")
} }
} }
minAmountApi() minAmountApi()
interestPayoutApi() interestPayoutApi()
return root
} }
private fun interestPayoutApi() { private fun interestPayoutApi() {
@ -337,7 +337,9 @@ class StepOneBajajFDFragment : BaseFragment() {
private fun maturityAmountApi(tenure: Int, interest: Double) { private fun maturityAmountApi(tenure: Int, interest: Double) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0 && binding.spInterestPayout.text.toString()
.isNotEmpty()
) {
val maturityAmountRequest = GetMaturityAmountRequest() val maturityAmountRequest = GetMaturityAmountRequest()
maturityAmountRequest.FDProvider = getString(R.string.bajaj) maturityAmountRequest.FDProvider = getString(R.string.bajaj)
maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt() maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt()
@ -374,7 +376,10 @@ class StepOneBajajFDFragment : BaseFragment() {
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
Common.showDialogValidation(
activity as BajajFdMainActivity,
message
)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {
@ -505,6 +510,6 @@ class StepOneBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
// _binding = null
_binding = null
} }
} }

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

@ -19,14 +19,17 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.BuildConfig import com.nivesh.production.bajajfd.BuildConfig
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding 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.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
@ -43,7 +46,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes> private lateinit var listOfDocType: List<GetCodes>
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog private lateinit var dialog: Dialog
@ -58,18 +60,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
private var checkPANUploadFile: Boolean? = false private var checkPANUploadFile: Boolean? = false
private var checkPhotoUploadFile: Boolean? = false private var checkPhotoUploadFile: Boolean? = false
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment {
val stepTwoFragment = StepThreeBajajFDFragment()
stepTwoFragment.setApi(fdInterface)
return stepTwoFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private val requestPermission = registerForActivityResult( private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission() ActivityResultContracts.RequestPermission()
) { isGranted: Boolean -> ) { isGranted: Boolean ->
@ -87,8 +77,15 @@ class StepThreeBajajFDFragment : BaseFragment() {
): View { ): View {
_binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false)
val root = binding.root
stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? -> { uri: Uri? ->
@ -161,7 +158,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
docTypeApi() docTypeApi()
return root
} }
@SuppressLint("Range") @SuppressLint("Range")
@ -311,7 +307,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
Log.e("UploadImage", "Response-->"+response.data.toString())
Log.e("UploadImage", "Response-->" + response.data.toString())
val getUploadResponse: UploadResponse = val getUploadResponse: UploadResponse =
Gson().fromJson(response.data?.toString(), UploadResponse::class.java) Gson().fromJson(response.data?.toString(), UploadResponse::class.java)
getUploadResponse.Response.StatusCode.let { code -> getUploadResponse.Response.StatusCode.let { code ->
@ -325,7 +321,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
uploadPosition, uploadPosition,
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
createFDApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
@ -352,6 +349,51 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
} }
private fun createFDApi(data: CreateFDRequest) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
stepThreeBajajFDViewModel.createFDApi(data, Constants.token)
stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { 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 -> {
(activity as BajajFdMainActivity).stepThreeApi(
createFDApplicationResponse
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun docTypeApi() { private fun docTypeApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest() val getCodeRequest = GetCodeRequest()
@ -445,4 +487,5 @@ class StepThreeBajajFDFragment : BaseFragment() {
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
} }
} }

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

@ -16,7 +16,7 @@ import android.widget.ArrayAdapter
import android.widget.RadioButton import android.widget.RadioButton
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
@ -25,10 +25,13 @@ import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.BankListAdapter import com.nivesh.production.bajajfd.adapter.BankListAdapter
import com.nivesh.production.bajajfd.adapter.PaymentModeAdapter import com.nivesh.production.bajajfd.adapter.PaymentModeAdapter
import com.nivesh.production.bajajfd.adapter.RecommendedBankListAdapter import com.nivesh.production.bajajfd.adapter.RecommendedBankListAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepTwoModelProviderFactory
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorAutoCompleteMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorAutoCompleteMethod
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
@ -40,7 +43,6 @@ 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.isValidName
import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan
import com.nivesh.production.bajajfd.util.Common.Companion.removeError 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.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel
@ -64,10 +66,8 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var listOfMaritalStatus: List<GetCodes> private lateinit var listOfMaritalStatus: List<GetCodes>
private lateinit var listOfOccupation: List<GetCodes> private lateinit var listOfOccupation: List<GetCodes>
private lateinit var listOfPayMode: List<GetCodes> private lateinit var listOfPayMode: List<GetCodes>
private lateinit var listOfStates: List<DataObject> private lateinit var listOfStates: List<DataObject>
private lateinit var listOfCities: List<DataObjectX> private lateinit var listOfCities: List<DataObjectX>
private lateinit var listOfIFSC: MutableList<String> private lateinit var listOfIFSC: MutableList<String>
private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
@ -75,27 +75,21 @@ class StepTwoBajajFDFragment : BaseFragment() {
private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter
private lateinit var stateObject: DataObject private lateinit var stateObject: DataObject
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment {
val stepOneFragment = StepTwoBajajFDFragment()
stepOneFragment.setApi(fdInterface)
return stepOneFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
_binding = FragmentBajajfdStepTwoBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepTwoBinding.inflate(inflater, container, false)
val root = binding.root
stepTwoBajajFDViewModel = (activity as BajajFdMainActivity).stepTwoBajajFDViewModel
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepTwoBajajFDViewModel = ViewModelProvider(
this,
StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepTwoBajajFDViewModel::class.java]
listOfTitle = ArrayList() listOfTitle = ArrayList()
listOfGender = ArrayList() listOfGender = ArrayList()
listOfAnnualIncome = ArrayList() listOfAnnualIncome = ArrayList()
@ -533,12 +527,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
} }
// rbPaymentMode.text = getString(R.string.Upi)
// binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId ->
// rbPaymentMode = group.findViewById(checkedId)
// Log.e("paymentMode", "-->" + rbPaymentMode.text)
// }
binding.tvEligibleBankOption.setOnClickListener { binding.tvEligibleBankOption.setOnClickListener {
apiForEligibleBankList() apiForEligibleBankList()
} }
@ -549,8 +537,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.llBankDetails.visibility = View.GONE binding.llBankDetails.visibility = View.GONE
} }
binding.addBankDetail.setOnClickListener { binding.addBankDetail.setOnClickListener {
if (binding.llBankDetails.visibility == View.GONE) { if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE binding.llBankDetails.visibility = View.VISIBLE
@ -721,10 +707,13 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest =
(activity as BajajFdMainActivity).createFDApplicantRequest (activity as BajajFdMainActivity).createFDApplicantRequest
Log.e( Log.e(
"CreateFDRequest",
"StepTwoResponse",
"-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest)
) )
bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest)
// bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest)
// (activity as BajajFdMainActivity).stepTwoApi((activity as BajajFdMainActivity).createFDRequest)
createFDApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
@ -732,9 +721,54 @@ class StepTwoBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 0 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 0
} }
return root
} }
private fun createFDApi(data: CreateFDRequest) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
stepTwoBajajFDViewModel.createFDApi(data, token)
stepTwoBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { 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 -> {
(activity as BajajFdMainActivity).stepTwoApi(
createFDApplicationResponse
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun ifscCodeCheckApi(ifsc: String) { private fun ifscCodeCheckApi(ifsc: String) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
if (ifsc.length == 11) { if (ifsc.length == 11) {
@ -889,8 +923,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
} }
private fun datePicker(edtDOB: TextInputEditText) { private fun datePicker(edtDOB: TextInputEditText) {
val year = cal.get(Calendar.YEAR) val year = cal.get(Calendar.YEAR)
val month = cal.get(Calendar.MONTH) val month = cal.get(Calendar.MONTH)
@ -1079,7 +1111,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
getCodeRequest.Category = getString(R.string.paymentModeCategory) getCodeRequest.Category = getString(R.string.paymentModeCategory)
getCodeRequest.Language = getString(R.string.language) getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = "" getCodeRequest.InputValue = ""
stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token)
stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, token)
stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
@ -1089,10 +1121,10 @@ class StepTwoBajajFDFragment : BaseFragment() {
getCodeResponse.Response.StatusCode.let { code -> getCodeResponse.Response.StatusCode.let { code ->
when (code) { when (code) {
200 -> { 200 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()){
listOfPayMode = getCodeResponse.Response.GetCodesList
setUpRecyclerViewPaymentMode(listOfPayMode)
}
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
listOfPayMode = getCodeResponse.Response.GetCodesList
setUpRecyclerViewPaymentMode(listOfPayMode)
}
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
@ -1121,13 +1153,13 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
binding.rvPaymentMode.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity)
paymentModeAdapter = PaymentModeAdapter( paymentModeAdapter = PaymentModeAdapter(
listOfPayMode,
listOfPayMode,
listOfPayMode[0].Value listOfPayMode[0].Value
)
binding.rvPaymentMode.adapter = paymentModeAdapter
)
binding.rvPaymentMode.adapter = paymentModeAdapter
} }
@ -1785,14 +1817,15 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.tlPinCode, binding.tlPinCode,
getString(R.string.validPinCode) getString(R.string.validPinCode)
) )
}else if (binding.edtNomineeDOB.text.toString().isNotEmpty() && isMinor(binding.edtNomineeDOB.text.toString())){
} else if (binding.edtNomineeDOB.text.toString()
.isNotEmpty() && isMinor(binding.edtNomineeDOB.text.toString())
) {
commonErrorMethod( commonErrorMethod(
binding.edtGuardianName, binding.edtGuardianName,
binding.tlGuardianName, binding.tlGuardianName,
getString(R.string.validGuardianDetails) getString(R.string.validGuardianDetails)
) )
}
else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString()
} else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString()
.isEmpty() .isEmpty()
) { // EditText ) { // EditText
commonErrorAutoCompleteMethod( commonErrorAutoCompleteMethod(
@ -1839,7 +1872,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
// _binding = null
_binding = null
} }
} }


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

@ -43,4 +43,11 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel()
getFDOtherMutableData.postValue(handleRatesResponse(response)) getFDOtherMutableData.postValue(handleRatesResponse(response))
} }
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))
}
} }

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

@ -7,6 +7,7 @@ import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetFDDetailsRequest import com.nivesh.production.bajajfd.model.GetFDDetailsRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.SaveFDOtherDataRequest
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
@ -53,4 +54,11 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie
val response = mainRepository.paymentReQueryResponse(getRatesRequest, token) val response = mainRepository.paymentReQueryResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response)) getRatesMutableData.postValue(handleRatesResponse(response))
} }
val getFDOtherMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String) = viewModelScope.launch {
getFDOtherMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getFDOtherMutableData.postValue(handleRatesResponse(response))
}
} }

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

@ -51,12 +51,7 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View
getMaxAmountMutableData.postValue(handleRatesResponse(response)) getMaxAmountMutableData.postValue(handleRatesResponse(response))
} }
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> { // private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
// if (response.isSuccessful) { // if (response.isSuccessful) {


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

@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.DocumentUpload import com.nivesh.production.bajajfd.model.DocumentUpload
import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.model.GetRatesRequest
@ -28,5 +29,11 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi
getDocumentUploadMutableData.postValue(handleRatesResponse(response)) getDocumentUploadMutableData.postValue(handleRatesResponse(response))
} }
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))
}
} }

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

@ -104,4 +104,11 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
getPaymentModeMutableData.postValue(handleRatesResponse(response)) getPaymentModeMutableData.postValue(handleRatesResponse(response))
} }
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))
}
} }

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

@ -137,7 +137,7 @@
</LinearLayout> </LinearLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
<com.nivesh.production.bajajfd.adapter.DisableAdapter
android:id="@+id/viewPager" android:id="@+id/viewPager"
android:contentDescription="@string/viewpager" android:contentDescription="@string/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"


Loading…
Cancel
Save

Powered by TurnKey Linux.