diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt new file mode 100644 index 0000000..d900477 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt @@ -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 + } +} diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt index 44ac534..9bf3033 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt @@ -5,10 +5,12 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentStatePagerAdapter +import androidx.viewpager2.adapter.FragmentStateAdapter -abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) { - val registeredFragments = SparseArray() +abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) { + private val registeredFragments = SparseArray() override fun instantiateItem(container: ViewGroup, position: Int): Any { val fragment = super.instantiateItem(container, position) as Fragment @@ -16,12 +18,6 @@ abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) 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] diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt index 2238ef6..5d988c5 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt @@ -1,11 +1,12 @@ 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.SaveFDOtherDataRequest interface BajajFDInterface { 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) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt index e976e20..13fecab 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt @@ -3,6 +3,6 @@ package com.nivesh.production.bajajfd.interfaces import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse interface SendData { - fun sendDataFragment(message: CreateFDApplicationResponse, currentItem: Int) - + fun sendDataFragment(message: CreateFDApplicationResponse) + fun sendDataFragmentStepFour(message: CreateFDApplicationResponse) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 2982565..d7d5bbc 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -15,6 +15,7 @@ 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.DisableAdapter import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding @@ -37,21 +38,21 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding 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 lateinit var sectionsPagerAdapter: SectionsPagerAdapter @@ -62,19 +63,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { init() } - init { - getClientDetailsResponse = getClientDetailsResponse() - createFDRequest = CreateFDRequest() - createFDApplicantRequest = CreateFDApplicationRequest() - - fdInvestmentDetails = FDInvestmentDetails() - applicantDetails = ApplicantDetails() - applicantRelationDetails = ApplicantRelationDetails() - fdBankDetails = FdBankDetails() - nomineeDetails = NomineeDetails() - nomineeGuardianDetails = NomineeGuardianDetails() - } - private fun init() { binding = ActivityBajajFdBinding.inflate(layoutInflater) @@ -85,26 +73,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { this, FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) )[BajajFDViewModel::class.java] - stepOneBajajFDViewModel = ViewModelProvider( - this, - StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[StepOneBajajFDViewModel::class.java] - stepTwoBajajFDViewModel = ViewModelProvider( - this, - StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[StepTwoBajajFDViewModel::class.java] - stepThreeBajajFDViewModel = ViewModelProvider( - this, - StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[StepThreeBajajFDViewModel::class.java] - stepFourBajajFDViewModel = ViewModelProvider( - this, - StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[StepFourBajajFDViewModel::class.java] - stepFiveBajajFDViewModel = ViewModelProvider( - this, - StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[StepFiveBajajFDViewModel::class.java] if (Common.isNetworkAvailable(this)) { getStepsCountApi() @@ -234,28 +202,26 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { if (stepCount == 3) { fragments = arrayOf( - StepOneBajajFDFragment.getInstance(this), - StepTwoBajajFDFragment.getInstance(this), - StepFourBajajFDFragment.getInstance(this), - StepFiveBajajFDFragment.getInstance(this) + stepOneBajajFDFragment, + stepTwoBajajFDFragment, + stepFourBajajFDFragment, + stepFiveBajajFDFragment ) } else if (stepCount == 4) { fragments = arrayOf( - StepOneBajajFDFragment.getInstance(this), - StepTwoBajajFDFragment.getInstance(this), - StepThreeBajajFDFragment.getInstance(this), - StepFourBajajFDFragment.getInstance(this), - StepFiveBajajFDFragment.getInstance(this) + stepOneBajajFDFragment, + stepTwoBajajFDFragment, + stepThreeBajajFDFragment, + stepFourBajajFDFragment, + stepFiveBajajFDFragment ) } // 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.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrolled( position: Int, @@ -330,8 +296,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN checkFDKYCRequest.NiveshClientCode = 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) { is Resource.Success -> { Log.e("response", "-->$response") @@ -393,124 +359,28 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } // step 2 response - override fun stepTwoApi(data: CreateFDRequest) { + override fun stepTwoApi(data: CreateFDApplicationResponse) { Log.e("stepTwoApi", " response ---> " + Gson().toJson(data)) - createFDApi(data, 2, "2") + binding.viewPager.currentItem = 2 + stepThreeBajajFDFragment.displayReceivedData(data) } // step 3 response - override fun stepThreeApi(data: CreateFDRequest) { + override fun stepThreeApi(data: CreateFDApplicationResponse) { Log.e("stepThreeApi", " response --->" + Gson().toJson(data)) // call create fd api - createFDApi(data, 3, "3") + binding.viewPager.currentItem = 3 + stepFourBajajFDFragment.displayReceivedData(data) } // 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") - fun paymentDialog(payUrl: String, value: String) { + fun paymentDialog(payUrl: String, value: String) { Log.e("payUrl", "-->$payUrl") Log.e("value", "-->$value") val dialogWebView = Dialog(this@BajajFdMainActivity) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt index 0d3d811..fc035c6 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt @@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity open class BaseActivity : AppCompatActivity() { private lateinit var mActivity: Activity + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mActivity = this diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt index 4295636..e485989 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt @@ -7,6 +7,9 @@ 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) { @@ -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() + } + } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt index 4186ee3..ad8f74f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt @@ -6,9 +6,12 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider +import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.interfaces.BajajFDInterface 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.providerfactory.StepFiveModelProviderFactory import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel class StepFiveBajajFDFragment : Fragment() { @@ -37,7 +40,6 @@ class StepFiveBajajFDFragment : Fragment() { _binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false) val root = binding.root - stepFiveBajajFDViewModel= (activity as BajajFdMainActivity).stepFiveBajajFDViewModel // val textView: TextView = binding.sectionLabel // stepFourViewModel.text.observe(viewLifecycleOwner) { @@ -51,6 +53,14 @@ class StepFiveBajajFDFragment : Fragment() { 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() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 60a5e1d..0a4a03f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -5,17 +5,21 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.lifecycle.ViewModelProvider 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.api.ApiClient 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.repositories.MainRepository 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.Companion.showDialogValidation 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.StepFourBajajFDViewModel @@ -27,22 +31,8 @@ class StepFourBajajFDFragment : BaseFragment() { private lateinit var listOfCustomer: MutableList private var selectedList: 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( inflater: LayoutInflater, container: ViewGroup?, @@ -50,9 +40,15 @@ class StepFourBajajFDFragment : BaseFragment() { ): View { _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 { _, _ -> @@ -77,7 +73,8 @@ class StepFourBajajFDFragment : BaseFragment() { saveFDOtherDataRequest.Values = selectedList saveFDOtherDataRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value) + // bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value) + saveFDOtherData(saveFDOtherDataRequest, payUrl, value) } else { showDialogValidation( activity as BajajFdMainActivity, @@ -89,7 +86,48 @@ class StepFourBajajFDFragment : BaseFragment() { binding.btnBack.setOnClickListener { (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() .plus(" % p.a.") payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl - Value = getFDDetailsResponse.Response.FDDataResponse.Value + value = getFDDetailsResponse.Response.FDDataResponse.Value } // 650 -> refreshToken() else -> { @@ -216,6 +254,6 @@ class StepFourBajajFDFragment : BaseFragment() { override fun onDestroyView() { super.onDestroyView() - // _binding = null + _binding = null } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index d902315..179a9e3 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -12,17 +12,19 @@ import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.RadioButton -import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView.LayoutManager import com.google.gson.Gson import com.nivesh.production.bajajfd.R 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.interfaces.BajajFDInterface 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.providerfactory.StepOneModelProviderFactory import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.removeError @@ -35,7 +37,6 @@ class StepOneBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepOneBinding? = null private val binding get() = _binding!! - private lateinit var bajajFDInterface: BajajFDInterface private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel private lateinit var rgMaturity: RadioButton private lateinit var listOfTenure: MutableList @@ -47,25 +48,19 @@ class StepOneBajajFDFragment : BaseFragment() { private var tenure: Int = 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( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { _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() binding.edtAmount.filters = arrayOf(InputFilter.LengthFilter(8)) // upto 1 Cr @@ -160,16 +155,21 @@ class StepOneBajajFDFragment : BaseFragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = "" (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() interestPayoutApi() - return root } private fun interestPayoutApi() { @@ -337,7 +337,9 @@ class StepOneBajajFDFragment : BaseFragment() { private fun maturityAmountApi(tenure: Int, interest: Double) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) { + if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0 && binding.spInterestPayout.text.toString() + .isNotEmpty() + ) { val maturityAmountRequest = GetMaturityAmountRequest() maturityAmountRequest.FDProvider = getString(R.string.bajaj) maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt() @@ -374,7 +376,10 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Error -> { response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) + Common.showDialogValidation( + activity as BajajFdMainActivity, + message + ) } } is Resource.Loading -> { @@ -505,6 +510,6 @@ class StepOneBajajFDFragment : BaseFragment() { override fun onDestroyView() { super.onDestroyView() - // _binding = null + _binding = null } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index e57c40a..cd85e64 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -19,14 +19,17 @@ import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import androidx.core.content.FileProvider +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import com.google.gson.Gson import com.nivesh.production.bajajfd.BuildConfig import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.api.ApiClient 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.repositories.MainRepository 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.Constants import com.nivesh.production.bajajfd.util.Resource @@ -43,7 +46,6 @@ class StepThreeBajajFDFragment : BaseFragment() { private val binding get() = _binding!! private lateinit var listOfDocType: List - private lateinit var bajajFDInterface: BajajFDInterface private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var dialog: Dialog @@ -58,18 +60,6 @@ class StepThreeBajajFDFragment : BaseFragment() { private var checkPANUploadFile: 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( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -> @@ -87,8 +77,15 @@ class StepThreeBajajFDFragment : BaseFragment() { ): View { _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()) { uri: Uri? -> @@ -161,7 +158,6 @@ class StepThreeBajajFDFragment : BaseFragment() { } docTypeApi() - return root } @SuppressLint("Range") @@ -311,7 +307,7 @@ class StepThreeBajajFDFragment : BaseFragment() { stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - Log.e("UploadImage", "Response-->"+response.data.toString()) + Log.e("UploadImage", "Response-->" + response.data.toString()) val getUploadResponse: UploadResponse = Gson().fromJson(response.data?.toString(), UploadResponse::class.java) getUploadResponse.Response.StatusCode.let { code -> @@ -325,7 +321,8 @@ class StepThreeBajajFDFragment : BaseFragment() { uploadPosition, Toast.LENGTH_LONG ).show() - bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) + // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) + createFDApi((activity as BajajFdMainActivity).createFDRequest) } } // 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() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -445,4 +487,5 @@ class StepThreeBajajFDFragment : BaseFragment() { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 4637d23..a8510ab 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -16,7 +16,7 @@ import android.widget.ArrayAdapter import android.widget.RadioButton import android.widget.TextView import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView 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.PaymentModeAdapter 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.interfaces.BajajFDInterface 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.providerfactory.StepTwoModelProviderFactory import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorAutoCompleteMethod 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.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 @@ -64,10 +66,8 @@ class StepTwoBajajFDFragment : BaseFragment() { private lateinit var listOfMaritalStatus: List private lateinit var listOfOccupation: List private lateinit var listOfPayMode: List - private lateinit var listOfStates: List private lateinit var listOfCities: List - private lateinit var listOfIFSC: MutableList private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel @@ -75,27 +75,21 @@ class StepTwoBajajFDFragment : BaseFragment() { private lateinit var paymentModeAdapter: PaymentModeAdapter 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( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { _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() listOfGender = 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 { apiForEligibleBankList() } @@ -549,8 +537,6 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.llBankDetails.visibility = View.GONE } - - binding.addBankDetail.setOnClickListener { if (binding.llBankDetails.visibility == View.GONE) { binding.llBankDetails.visibility = View.VISIBLE @@ -721,10 +707,13 @@ class StepTwoBajajFDFragment : BaseFragment() { (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = (activity as BajajFdMainActivity).createFDApplicantRequest Log.e( - "CreateFDRequest", + "StepTwoResponse", "-->" + 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 } - 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) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (ifsc.length == 11) { @@ -889,8 +923,6 @@ class StepTwoBajajFDFragment : BaseFragment() { } - - private fun datePicker(edtDOB: TextInputEditText) { val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) @@ -1079,7 +1111,7 @@ class StepTwoBajajFDFragment : BaseFragment() { getCodeRequest.Category = getString(R.string.paymentModeCategory) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, token) stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -1089,10 +1121,10 @@ class StepTwoBajajFDFragment : BaseFragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 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() else -> { @@ -1121,13 +1153,13 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { - binding.rvPaymentMode.layoutManager = - LinearLayoutManager(activity as BajajFdMainActivity) + binding.rvPaymentMode.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) paymentModeAdapter = PaymentModeAdapter( - listOfPayMode, + listOfPayMode, listOfPayMode[0].Value - ) - binding.rvPaymentMode.adapter = paymentModeAdapter + ) + binding.rvPaymentMode.adapter = paymentModeAdapter } @@ -1785,14 +1817,15 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.tlPinCode, 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( binding.edtGuardianName, binding.tlGuardianName, 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() ) { // EditText commonErrorAutoCompleteMethod( @@ -1839,7 +1872,7 @@ class StepTwoBajajFDFragment : BaseFragment() { override fun onDestroyView() { super.onDestroyView() - // _binding = null + _binding = null } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt index a659e8c..5a946ad 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt @@ -43,4 +43,11 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() getFDOtherMutableData.postValue(handleRatesResponse(response)) } + val getFDKYCMutableData: MutableLiveData> = MutableLiveData() + fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String) = viewModelScope.launch { + getFDKYCMutableData.postValue(Resource.Loading()) + val response = mainRepository.checkFDKYCRequest(requestBody, token) + getFDKYCMutableData.postValue(handleRatesResponse(response)) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt index f7acd5b..2009dfa 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -7,6 +7,7 @@ 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.model.SaveFDOtherDataRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource @@ -53,4 +54,11 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie val response = mainRepository.paymentReQueryResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } + + val getFDOtherMutableData: MutableLiveData> = MutableLiveData() + fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String) = viewModelScope.launch { + getFDOtherMutableData.postValue(Resource.Loading()) + val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) + getFDOtherMutableData.postValue(handleRatesResponse(response)) + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt index 940ab26..b684e8e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt @@ -51,12 +51,7 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View getMaxAmountMutableData.postValue(handleRatesResponse(response)) } - val getFDKYCMutableData: MutableLiveData> = 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): Resource { // if (response.isSuccessful) { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt index 65b7ecf..85f5acd 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.CreateFDRequest import com.nivesh.production.bajajfd.model.DocumentUpload import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest @@ -28,5 +29,11 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi getDocumentUploadMutableData.postValue(handleRatesResponse(response)) } + val getFDResponseMutableData: MutableLiveData> = MutableLiveData() + fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch { + getFDResponseMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDKYCResponse(getRatesRequest, token) + getFDResponseMutableData.postValue(handleRatesResponse(response)) + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index a284c59..5ce7894 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -104,4 +104,11 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View getPaymentModeMutableData.postValue(handleRatesResponse(response)) } + val getFDResponseMutableData: MutableLiveData> = MutableLiveData() + fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch { + getFDResponseMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDKYCResponse(getRatesRequest, token) + getFDResponseMutableData.postValue(handleRatesResponse(response)) + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_bajaj_fd.xml b/app/src/main/res/layout/activity_bajaj_fd.xml index b7b4a42..fbfbeaa 100644 --- a/app/src/main/res/layout/activity_bajaj_fd.xml +++ b/app/src/main/res/layout/activity_bajaj_fd.xml @@ -137,7 +137,7 @@ -