From 7eee4b276f96a9dc9633a707916ce0372ebf4370 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Wed, 4 Jan 2023 21:05:06 +0530 Subject: [PATCH 1/5] changes --- .../bajajfd/adapter/DisableAdapter.kt | 24 ++ .../adapter/SmartFragmentStatePagerAdapter.kt | 12 +- .../bajajfd/interfaces/BajajFDInterface.kt | 7 +- .../production/bajajfd/interfaces/SendData.kt | 4 +- .../ui/activity/BajajFdMainActivity.kt | 208 ++++-------------- .../bajajfd/ui/activity/BaseActivity.kt | 1 + .../bajajfd/ui/fragment/BaseFragment.kt | 15 ++ .../ui/fragment/StepFiveBajajFDFragment.kt | 12 +- .../ui/fragment/StepFourBajajFDFragment.kt | 84 +++++-- .../ui/fragment/StepOneBajajFDFragment.kt | 53 +++-- .../ui/fragment/StepThreeBajajFDFragment.kt | 81 +++++-- .../ui/fragment/StepTwoBajajFDFragment.kt | 123 +++++++---- .../bajajfd/viewModel/BajajFDViewModel.kt | 7 + .../viewModel/StepFourBajajFDViewModel.kt | 8 + .../viewModel/StepOneBajajFDViewModel.kt | 7 +- .../viewModel/StepThreeBajajFDViewModel.kt | 7 + .../viewModel/StepTwoBajajFDViewModel.kt | 7 + app/src/main/res/layout/activity_bajaj_fd.xml | 2 +- 18 files changed, 361 insertions(+), 301 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt 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 @@ - Date: Thu, 5 Jan 2023 10:32:53 +0530 Subject: [PATCH 2/5] added changes --- .../ui/activity/BajajFdMainActivity.kt | 15 +- .../ui/fragment/StepFourBajajFDFragment.kt | 144 ++- .../ui/fragment/StepOneBajajFDFragment.kt | 226 ++-- .../ui/fragment/StepThreeBajajFDFragment.kt | 215 ++-- .../ui/fragment/StepTwoBajajFDFragment.kt | 1138 +++++++++-------- .../nivesh/production/bajajfd/util/Common.kt | 37 +- .../production/bajajfd/util/Resource.kt | 28 +- .../bajajfd/viewModel/BajajFDViewModel.kt | 59 +- .../viewModel/StepFourBajajFDViewModel.kt | 84 +- .../viewModel/StepOneBajajFDViewModel.kt | 77 +- .../viewModel/StepThreeBajajFDViewModel.kt | 40 +- .../viewModel/StepTwoBajajFDViewModel.kt | 172 ++- .../layout/fragment_bajajfd_step_three.xml | 3 +- .../res/layout/fragment_bajajfd_step_two.xml | 50 +- 14 files changed, 1262 insertions(+), 1026 deletions(-) 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 d7d5bbc..e9c8e6c 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 @@ -88,7 +88,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { val fdStepsCount = FDStepsCountRequest() fdStepsCount.FDProvider = getString(R.string.bajaj) fdStepsCount.NiveshClientCode = "8872" - viewModel.getStepsCount(fdStepsCount, token) + viewModel.getStepsCount(fdStepsCount, token, this) viewModel.getStepsCountMutableData.observe(this) { response -> when (response) { is Resource.Success -> { @@ -121,6 +121,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -158,7 +161,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { userRequest.deviceInfo = deviceInfo getClientDetailsRequest.UserRequest = userRequest Log.e("getClientDetailRequest", "-->" + Gson().toJson(getClientDetailsRequest)) - viewModel.getClientDetails(getClientDetailsRequest, token) + viewModel.getClientDetails(getClientDetailsRequest, token, this) viewModel.getClientDetailsMutableData.observe(this) { response -> when (response) { is Resource.Success -> { @@ -189,6 +192,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -296,7 +302,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN checkFDKYCRequest.NiveshClientCode = getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() - viewModel.checkFDKYC(checkFDKYCRequest, token) + viewModel.checkFDKYC(checkFDKYCRequest, token, this) viewModel.getFDKYCMutableData.observe(this) { response -> when (response) { is Resource.Success -> { @@ -330,6 +336,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } 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 0a4a03f..6237cc2 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 @@ -89,42 +89,43 @@ class StepFourBajajFDFragment : BaseFragment() { } 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 - ) - } + stepFourBajajFDViewModel.saveFDOtherData(data, token, activity as BajajFdMainActivity) + 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.Error -> { + response.message?.let { message -> + showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { + + } + is Resource.DataError -> { - } } } } @@ -139,51 +140,55 @@ class StepFourBajajFDFragment : BaseFragment() { private fun customerListApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.customerCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) - stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { - listOfCustomer = getCodeResponse.Response.GetCodesList - setUpRecyclerView(listOfCustomer) - } - } - // 650 -> refreshToken() - else -> { - showDialogValidation( - activity as BajajFdMainActivity, - getCodeResponse.Response.Message - ) + + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.customerCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepFourBajajFDViewModel.paymentModeApi( + getCodeRequest, + Constants.token, + activity as BajajFdMainActivity + ) + stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { + listOfCustomer = getCodeResponse.Response.GetCodesList + setUpRecyclerView(listOfCustomer) } } + // 650 -> refreshToken() + else -> { + showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Message + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun setUpRecyclerView(getCustomerList: MutableList) { @@ -201,7 +206,11 @@ class StepFourBajajFDFragment : BaseFragment() { getFDDetailsRequest.NiveshClientCode = (mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId - stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) + stepFourBajajFDViewModel.getFDDetails( + getFDDetailsRequest, + Constants.token, + activity as BajajFdMainActivity + ) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -245,6 +254,9 @@ class StepFourBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } 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 179a9e3..634e7a0 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 @@ -178,7 +178,7 @@ class StepOneBajajFDFragment : BaseFragment() { getCodeRequest.Category = getString(R.string.category) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" - stepOneBajajFDViewModel.getCode(getCodeRequest, token) + stepOneBajajFDViewModel.getCode(getCodeRequest, token, activity as BajajFdMainActivity) stepOneBajajFDViewModel.getCodeMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -223,6 +223,9 @@ class StepOneBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -234,7 +237,7 @@ class StepOneBajajFDFragment : BaseFragment() { getCodeRequest.Category = getString(R.string.minAmountCategory) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" - stepOneBajajFDViewModel.getMinAmount(getCodeRequest, token) + stepOneBajajFDViewModel.getMinAmount(getCodeRequest, token, activity as BajajFdMainActivity) stepOneBajajFDViewModel.getMinAmountMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -270,6 +273,9 @@ class StepOneBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -281,7 +287,7 @@ class StepOneBajajFDFragment : BaseFragment() { getCodeRequest.Category = getString(R.string.MaxAmountCategory) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" - stepOneBajajFDViewModel.getMaxAmount(getCodeRequest, token) + stepOneBajajFDViewModel.getMaxAmount(getCodeRequest, token, activity as BajajFdMainActivity) stepOneBajajFDViewModel.getMaxAmountMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -311,6 +317,9 @@ class StepOneBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -336,55 +345,59 @@ 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 && binding.spInterestPayout.text.toString() - .isNotEmpty() - ) { - val maturityAmountRequest = GetMaturityAmountRequest() - maturityAmountRequest.FDProvider = getString(R.string.bajaj) - maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt() - maturityAmountRequest.Frequency = binding.spInterestPayout.text.toString() - maturityAmountRequest.Tenure = tenure - maturityAmountRequest.Interest = interest - stepOneBajajFDViewModel.getMaturityAmount(maturityAmountRequest) - stepOneBajajFDViewModel.getMaturityAmountMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getMaturityAmountResponse = - Gson().fromJson( - response.data?.toString(), - GetCalculateMaturityAmountResponse::class.java - ) - getMaturityAmountResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - binding.tvMaturityAmount.text = - getString(R.string.rs).plus(" ").plus( - getMaturityAmountResponse.Response.MaturityAmount.toString() - ) - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getMaturityAmountResponse.Response.Errors[0].ErrorMessage + 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() + maturityAmountRequest.Frequency = binding.spInterestPayout.text.toString() + maturityAmountRequest.Tenure = tenure + maturityAmountRequest.Interest = interest + stepOneBajajFDViewModel.getMaturityAmount( + maturityAmountRequest, + activity as BajajFdMainActivity + ) + stepOneBajajFDViewModel.getMaturityAmountMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getMaturityAmountResponse = + Gson().fromJson( + response.data?.toString(), + GetCalculateMaturityAmountResponse::class.java + ) + getMaturityAmountResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + binding.tvMaturityAmount.text = + getString(R.string.rs).plus(" ").plus( + getMaturityAmountResponse.Response.MaturityAmount.toString() ) - } + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getMaturityAmountResponse.Response.Errors[0].ErrorMessage + ) } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation( - activity as BajajFdMainActivity, - message - ) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation( + activity as BajajFdMainActivity, + message + ) } - is Resource.Loading -> { + } + is Resource.Loading -> { + + } + is Resource.DataError -> { - } } } } @@ -432,77 +445,78 @@ class StepOneBajajFDFragment : BaseFragment() { } private fun getRatesApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getRatesRequest = GetRatesRequest() - getRatesRequest.fdProvider = getString(R.string.bajaj) - getRatesRequest.frequency = binding.spInterestPayout.text.toString() - if (binding.swSeniorCitizen.isChecked) { - getRatesRequest.type = getString(R.string.seniorCitizen) - } else { - getRatesRequest.type = getString(R.string.nonSeniorCitizen) - } - stepOneBajajFDViewModel.getRates(getRatesRequest, token) - stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getRatesResponse: GetRatesResponse = - Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java) - getRatesResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (listOfTenure.isNotEmpty()) { - listOfTenure.clear() - } - listOfTenure = getRatesResponse.Response.ROIDatalist - // Tenure - if (listOfTenure.isNotEmpty()) { - listOfTenure.sortWith { lhs: ROIDataList, rhs: ROIDataList -> - rhs.Tenure.compareTo( - lhs.Tenure - ) - } - binding.ORLayout.visibility = View.VISIBLE - val tenureAdapter = - ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfTenure - ) - binding.spTenure.setAdapter(tenureAdapter) - - binding.spTenure.setText( - tenureAdapter.getItem(0)?.Tenure.plus( - " Months | " - ).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false + val getRatesRequest = GetRatesRequest() + getRatesRequest.fdProvider = getString(R.string.bajaj) + getRatesRequest.frequency = binding.spInterestPayout.text.toString() + if (binding.swSeniorCitizen.isChecked) { + getRatesRequest.type = getString(R.string.seniorCitizen) + } else { + getRatesRequest.type = getString(R.string.nonSeniorCitizen) + } + stepOneBajajFDViewModel.getRates(getRatesRequest, token, activity as BajajFdMainActivity) + stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getRatesResponse: GetRatesResponse = + Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java) + getRatesResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (listOfTenure.isNotEmpty()) { + listOfTenure.clear() + } + listOfTenure = getRatesResponse.Response.ROIDatalist + // Tenure + if (listOfTenure.isNotEmpty()) { + listOfTenure.sortWith { lhs: ROIDataList, rhs: ROIDataList -> + rhs.Tenure.compareTo( + lhs.Tenure ) - tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt() - interest = tenureAdapter.getItem(0)?.ROI ?: 0.0 - binding.tvROI.text = - tenureAdapter.getItem(0)?.ROI.toString().plus(" %") - setUpRecyclerView() - } else { - binding.ORLayout.visibility = View.GONE } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getRatesResponse.Response.Errors[0].ErrorMessage + binding.ORLayout.visibility = View.VISIBLE + val tenureAdapter = + ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfTenure + ) + binding.spTenure.setAdapter(tenureAdapter) + + binding.spTenure.setText( + tenureAdapter.getItem(0)?.Tenure.plus( + " Months | " + ).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false ) + tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt() + interest = tenureAdapter.getItem(0)?.ROI ?: 0.0 + binding.tvROI.text = + tenureAdapter.getItem(0)?.ROI.toString().plus(" %") + setUpRecyclerView() + } else { + binding.ORLayout.visibility = View.GONE } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getRatesResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { + + } + is Resource.DataError -> { - } } } } 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 cd85e64..6950612 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 @@ -248,16 +248,14 @@ class StepThreeBajajFDFragment : BaseFragment() { } private fun uploadDocument(uri: Uri) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - fileExt = fileExtension.extension - encodedFileToBase64(fileExtension) - if (checkPANUploadFile == true || checkPhotoUploadFile == true) { - mapImage["Main ".plus(selectedImage)] = front - } else { - selectedImage?.let { mapImage.put(it, front) } - } + val fileDir: File = requireActivity().cacheDir + val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) + fileExt = fileExtension.extension + encodedFileToBase64(fileExtension) + if (checkPANUploadFile == true || checkPhotoUploadFile == true) { + mapImage["Main ".plus(selectedImage)] = front + } else { + selectedImage?.let { mapImage.put(it, front) } } } @@ -292,71 +290,77 @@ class StepThreeBajajFDFragment : BaseFragment() { } private fun uploadDocApi(key: String, imageBase64: String, uploadPosition: Int) { - if (Common.isNetworkAvailable((activity as BajajFdMainActivity))) { - val du = DocumentUpload() - du.Description = key - du.DocumentType = key - du.FDProvider = getString(R.string.bajaj) - du.ImageEncodeToBase64 = - "data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64" - du.NiveshClientCode = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - du.UniqueId = uniqueId - stepThreeBajajFDViewModel.documentsUpload(du, Constants.token) - - stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("UploadImage", "Response-->" + response.data.toString()) - val getUploadResponse: UploadResponse = - Gson().fromJson(response.data?.toString(), UploadResponse::class.java) - getUploadResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - Log.e("check_upload_res", response.message.toString()) - if (uploadPosition == mapImage.size) { - Toast.makeText( - requireActivity(), - "".plus(mapImage.size.toString() + " Last Image Uploaded ") + - uploadPosition, - Toast.LENGTH_LONG - ).show() - // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) - createFDApi((activity as BajajFdMainActivity).createFDRequest) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getUploadResponse.Response.Message - ) + val du = DocumentUpload() + du.Description = key + du.DocumentType = key + du.FDProvider = getString(R.string.bajaj) + du.ImageEncodeToBase64 = + "data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64" + du.NiveshClientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + du.UniqueId = uniqueId + stepThreeBajajFDViewModel.documentsUpload( + du, + Constants.token, + activity as BajajFdMainActivity + ) + stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("UploadImage", "Response-->" + response.data.toString()) + val getUploadResponse: UploadResponse = + Gson().fromJson(response.data?.toString(), UploadResponse::class.java) + getUploadResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + Log.e("check_upload_res", response.message.toString()) + if (uploadPosition == mapImage.size) { + Toast.makeText( + requireActivity(), + "".plus(mapImage.size.toString() + " Last Image Uploaded ") + + uploadPosition, + Toast.LENGTH_LONG + ).show() + // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) + createFDApi((activity as BajajFdMainActivity).createFDRequest) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getUploadResponse.Response.Message + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { + + } + is Resource.DataError -> { - } } } } } private fun createFDApi(data: CreateFDRequest) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - - stepThreeBajajFDViewModel.createFDApi(data, Constants.token) + stepThreeBajajFDViewModel.createFDApi( + data, + Constants.token, + activity as BajajFdMainActivity + ) stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - Log.e("response", "-->$response") + Log.e("createFDApi", "response--> " + response.data.toString()) val createFDApplicationResponse: CreateFDApplicationResponse = Gson().fromJson( response.data?.toString(), @@ -387,64 +391,73 @@ class StepThreeBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } - } } private fun docTypeApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.docType) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token) - stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfDocType = getCodeResponse.Response.GetCodesList - if (listOfDocType.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfDocType - ) - binding.spDocType.setAdapter(adapter) - binding.spDocType.setText( - adapter.getItem(0)?.Value, - false - ) - setOtherUploadLayout(listOfDocType[0].Value) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( + + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.docType) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepThreeBajajFDViewModel.titleApi( + getCodeRequest, + Constants.token, + activity as BajajFdMainActivity + ) + stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfDocType = getCodeResponse.Response.GetCodesList + if (listOfDocType.isNotEmpty()) { + val adapter = ArrayAdapter( activity as BajajFdMainActivity, - getCodeResponse.Response.Message + R.layout.spinner_dropdown, + listOfDocType ) + binding.spDocType.setAdapter(adapter) + binding.spDocType.setText( + adapter.getItem(0)?.Value, + false + ) + setOtherUploadLayout(listOfDocType[0].Value) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Message + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { + + } + + is Resource.DataError -> { - } } } } 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 a8510ab..d3484bb 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 @@ -724,31 +724,91 @@ class StepTwoBajajFDFragment : BaseFragment() { } private fun createFDApi(data: CreateFDRequest) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + stepTwoBajajFDViewModel.createFDApi(data, token, activity as BajajFdMainActivity) + 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 -> { + + } + is Resource.DataError -> { + + } + } + } + } + - stepTwoBajajFDViewModel.createFDApi(data, token) - stepTwoBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response -> + private fun ifscCodeCheckApi(ifsc: String) { + if (ifsc.length == 11) { + stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - Log.e("response", "-->$response") - val createFDApplicationResponse: CreateFDApplicationResponse = + val getIFSCCodeListResponse = Gson().fromJson( response.data?.toString(), - CreateFDApplicationResponse::class.java + GetIFSCCodeListResponse::class.java ) - createFDApplicationResponse.Response.StatusCode.let { code -> + getIFSCCodeListResponse.Response.status_code.let { code -> when (code) { 200 -> { - (activity as BajajFdMainActivity).stepTwoApi( - createFDApplicationResponse - ) + if (listOfIFSC.size > 0) { + listOfIFSC.clear() + } + listOfIFSC = getIFSCCodeListResponse.IFSCCodes + if (listOfIFSC.size > 0) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfIFSC + ) + binding.edtIFSC.setAdapter(adapter) + } + binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> + if (listOfIFSC.size > 0) { + binding.edtIFSC.setText(listOfIFSC[position]) + binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) + getIFSCDetailsApi(listOfIFSC[position]) + } + } } - // 650 -> refreshToken() + // 650 -> refreshToken() else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - createFDApplicationResponse.Response.Errors[0].ErrorMessage + getIFSCCodeListResponse.Response.message ) } } @@ -757,121 +817,69 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Error -> { response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) + Common.showDialogValidation( + activity as BajajFdMainActivity, + message + ) } } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } } } + private fun getIFSCDetailsApi(ifscCode: String) { - private fun ifscCodeCheckApi(ifsc: String) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - if (ifsc.length == 11) { - stepTwoBajajFDViewModel.ifscCodeApi(ifsc) - stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getIFSCCodeListResponse = - Gson().fromJson( - response.data?.toString(), - GetIFSCCodeListResponse::class.java - ) - getIFSCCodeListResponse.Response.status_code.let { code -> - when (code) { - 200 -> { - if (listOfIFSC.size > 0) { - listOfIFSC.clear() - } - listOfIFSC = getIFSCCodeListResponse.IFSCCodes - if (listOfIFSC.size > 0) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfIFSC - ) - binding.edtIFSC.setAdapter(adapter) - } - binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> - if (listOfIFSC.size > 0) { - binding.edtIFSC.setText(listOfIFSC[position]) - binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(listOfIFSC[position]) - } - } - - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getIFSCCodeListResponse.Response.message - ) - } - } + stepTwoBajajFDViewModel.ifscCodeDetailsApi( + ifscCode, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getIFSCCodeResponse = + Gson().fromJson( + response.data?.toString(), + GetIFSCCodeResponse::class.java + ) + getIFSCCodeResponse.Response.status_code.let { code -> + when (code) { + 200 -> { + binding.edtBankName.setText(getIFSCCodeResponse.BANK) + binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH) } - } - - is Resource.Error -> { - response.message?.let { message -> + // 650 -> refreshToken() + else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - message + getIFSCCodeResponse.Response.message ) } } - is Resource.Loading -> { - - } } } - } - } - } - private fun getIFSCDetailsApi(ifscCode: String) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - stepTwoBajajFDViewModel.ifscCodeDetailsApi(ifscCode, token) - stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getIFSCCodeResponse = - Gson().fromJson( - response.data?.toString(), - GetIFSCCodeResponse::class.java - ) - getIFSCCodeResponse.Response.status_code.let { code -> - when (code) { - 200 -> { - binding.edtBankName.setText(getIFSCCodeResponse.BANK) - binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH) - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getIFSCCodeResponse.Response.message - ) - } - } - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } + } + is Resource.Loading -> { - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } - } - is Resource.Loading -> { + } + is Resource.DataError -> { - } } } } + } private fun validateBank(): Boolean { @@ -948,106 +956,104 @@ class StepTwoBajajFDFragment : BaseFragment() { } private fun panCheckApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val panCheck = PanCheckRequest() - panCheck.clientCode = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - panCheck.subBrokerCode = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code - panCheck.panNumber = binding.edtPANNumber.text.toString() - panCheck.mobileNumber = "" - stepTwoBajajFDViewModel.panCheck(panCheck, token) - stepTwoBajajFDViewModel.getPanCheckMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val panCheckResponse = - Gson().fromJson( - response.data?.toString(), - PanCheckResponse::class.java - ) - panCheckResponse.response.status_code.let { code -> - if (binding.tvPANVerify.visibility == View.GONE) { - binding.tvPANVerify.visibility = View.VISIBLE - } - when (code) { - 200 -> { - binding.tvPANVerify.text = getString(R.string.verifiedText) - binding.tvPANVerify.setTextColor( - ContextCompat.getColor( - activity as BajajFdMainActivity, - R.color.green - ) + val panCheck = PanCheckRequest() + panCheck.clientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + panCheck.subBrokerCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code + panCheck.panNumber = binding.edtPANNumber.text.toString() + panCheck.mobileNumber = "" + stepTwoBajajFDViewModel.panCheck(panCheck, token, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.getPanCheckMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val panCheckResponse = + Gson().fromJson( + response.data?.toString(), + PanCheckResponse::class.java + ) + panCheckResponse.response.status_code.let { code -> + if (binding.tvPANVerify.visibility == View.GONE) { + binding.tvPANVerify.visibility = View.VISIBLE + } + when (code) { + 200 -> { + binding.tvPANVerify.text = getString(R.string.verifiedText) + binding.tvPANVerify.setTextColor( + ContextCompat.getColor( + activity as BajajFdMainActivity, + R.color.green ) - } - // 650 -> refreshToken() - else -> { - binding.tvPANVerify.text = getString(R.string.notVerifiedText) - binding.tvPANVerify.setTextColor( - ContextCompat.getColor( - activity as BajajFdMainActivity, - R.color.red - ) + ) + } + // 650 -> refreshToken() + else -> { + binding.tvPANVerify.text = getString(R.string.notVerifiedText) + binding.tvPANVerify.setTextColor( + ContextCompat.getColor( + activity as BajajFdMainActivity, + R.color.red ) - } + ) } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun titleApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.salutationCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.titleApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfTitle = getCodeResponse.Response.GetCodesList - if (listOfTitle.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfTitle + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.salutationCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.titleApi(getCodeRequest, token, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfTitle = getCodeResponse.Response.GetCodesList + if (listOfTitle.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfTitle + ) + binding.spTitle.setAdapter(adapter) + + val titleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val newTitleText = "$titleText." + if (titleText?.isEmpty()!!) { + binding.spTitle.setText( + adapter.getItem(0)?.Value, + false ) - binding.spTitle.setAdapter(adapter) - - val titleText = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title - val newTitleText = "$titleText." - if (titleText?.isEmpty()!!) { - binding.spTitle.setText( - adapter.getItem(0)?.Value, - false - ) - } else { - for (title in listOfTitle) { - if (title.Value == newTitleText) { - binding.spTitle.setText(title.Value, false) - break - } + } else { + for (title in listOfTitle) { + if (title.Value == newTitleText) { + binding.spTitle.setText(title.Value, false) + break + } // binding.spTitle.setOnTouchListener { v, event -> // when (event?.action) { // MotionEvent.ACTION_DOWN -> { @@ -1061,93 +1067,98 @@ class StepTwoBajajFDFragment : BaseFragment() { // // v?.onTouchEvent(event) ?: true // } - } } - - binding.spNomineeTitle.setAdapter(adapter) - binding.spNomineeTitle.setText( - adapter.getItem(0)?.Value, - false - ) } - genderApi() - relationShipApi() - maritalStatusApi() - occupationApi() - annualIncomeApi() - stateListApi() - paymentModeApi() - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage + binding.spNomineeTitle.setAdapter(adapter) + binding.spNomineeTitle.setText( + adapter.getItem(0)?.Value, + false ) } + genderApi() + relationShipApi() + maritalStatusApi() + occupationApi() + annualIncomeApi() + stateListApi() + paymentModeApi() + + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } } private fun paymentModeApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.paymentModeCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { - listOfPayMode = getCodeResponse.Response.GetCodesList - setUpRecyclerViewPaymentMode(listOfPayMode) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.paymentModeCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.paymentModeApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { + listOfPayMode = getCodeResponse.Response.GetCodesList + setUpRecyclerViewPaymentMode(listOfPayMode) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } } @@ -1164,366 +1175,382 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun genderApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.genderCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.genderApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getGenderMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfGender = getCodeResponse.Response.GetCodesList - if (listOfGender.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfGender - ) - binding.spGender.setAdapter(adapter) - binding.spGender.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } - } + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.genderCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.genderApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getGenderMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfGender = getCodeResponse.Response.GetCodesList + if (listOfGender.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfGender + ) + binding.spGender.setAdapter(adapter) + binding.spGender.setText( + adapter.getItem(0)?.Value, + false + ) + } + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun relationShipApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.relationshipCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.relationShipApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getRelationShipMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfRelationShip = getCodeResponse.Response.GetCodesList - if (listOfGender.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfRelationShip - ) + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.relationshipCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.relationShipApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getRelationShipMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfRelationShip = getCodeResponse.Response.GetCodesList + if (listOfGender.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfRelationShip + ) - binding.spNomineeRelation.setAdapter(adapter) - binding.spNomineeRelation.setText( - adapter.getItem(0)?.Value, - false - ) + binding.spNomineeRelation.setAdapter(adapter) + binding.spNomineeRelation.setText( + adapter.getItem(0)?.Value, + false + ) - binding.spGuardianRelation.setAdapter(adapter) - binding.spGuardianRelation.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage + binding.spGuardianRelation.setAdapter(adapter) + binding.spGuardianRelation.setText( + adapter.getItem(0)?.Value, + false ) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } - } + is Resource.DataError -> { + } + } + } } private fun maritalStatusApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.maritalCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.maritalStatusApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getMaritalStatusMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfMaritalStatus = getCodeResponse.Response.GetCodesList - if (listOfMaritalStatus.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfMaritalStatus - ) - binding.spMarital.setAdapter(adapter) - binding.spMarital.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.maritalCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.maritalStatusApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getMaritalStatusMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfMaritalStatus = getCodeResponse.Response.GetCodesList + if (listOfMaritalStatus.isNotEmpty()) { + val adapter = ArrayAdapter( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage + R.layout.spinner_dropdown, + listOfMaritalStatus + ) + binding.spMarital.setAdapter(adapter) + binding.spMarital.setText( + adapter.getItem(0)?.Value, + false ) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun occupationApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.occupationCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.occupationApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getOccupationMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfOccupation = getCodeResponse.Response.GetCodesList - if (listOfOccupation.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfOccupation - ) - binding.spOccupation.setAdapter(adapter) - binding.spOccupation.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.occupationCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.occupationApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getOccupationMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfOccupation = getCodeResponse.Response.GetCodesList + if (listOfOccupation.isNotEmpty()) { + val adapter = ArrayAdapter( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage + R.layout.spinner_dropdown, + listOfOccupation + ) + binding.spOccupation.setAdapter(adapter) + binding.spOccupation.setText( + adapter.getItem(0)?.Value, + false ) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun annualIncomeApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.annualIncome) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - stepTwoBajajFDViewModel.annualIncomeApi(getCodeRequest, token) - stepTwoBajajFDViewModel.getAnnualIncomeMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfAnnualIncome = getCodeResponse.Response.GetCodesList - if (listOfAnnualIncome.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfAnnualIncome - ) - binding.spIncome.setAdapter(adapter) - binding.spIncome.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.annualIncome) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.annualIncomeApi( + getCodeRequest, + token, + activity as BajajFdMainActivity + ) + stepTwoBajajFDViewModel.getAnnualIncomeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfAnnualIncome = getCodeResponse.Response.GetCodesList + if (listOfAnnualIncome.isNotEmpty()) { + val adapter = ArrayAdapter( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage + R.layout.spinner_dropdown, + listOfAnnualIncome + ) + binding.spIncome.setAdapter(adapter) + binding.spIncome.setText( + adapter.getItem(0)?.Value, + false ) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } - } private fun stateListApi() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - stepTwoBajajFDViewModel.stateApi(token) - stepTwoBajajFDViewModel.getStateMasterMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val stateListResponse: StateListResponse = - Gson().fromJson( - response.data?.toString(), - StateListResponse::class.java - ) - stateListResponse.response.status_code.let { code -> - when (code) { - 200 -> { - listOfStates = stateListResponse.DataObject - if (listOfStates.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as BajajFdMainActivity, - R.layout.spinner_dropdown, - listOfStates + stepTwoBajajFDViewModel.stateApi(token, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.getStateMasterMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val stateListResponse: StateListResponse = + Gson().fromJson( + response.data?.toString(), + StateListResponse::class.java + ) + stateListResponse.response.status_code.let { code -> + when (code) { + 200 -> { + listOfStates = stateListResponse.DataObject + if (listOfStates.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfStates + ) + binding.spState.setAdapter(adapter) + val newTitleText = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_STATE + if (newTitleText?.isEmpty()!!) { + binding.spState.setText( + adapter.getItem(0)?.State_Name, + false ) - binding.spState.setAdapter(adapter) - val newTitleText = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_STATE - if (newTitleText?.isEmpty()!!) { - binding.spState.setText( - adapter.getItem(0)?.State_Name, - false - ) - cityListApi(adapter.getItem(0)?.State_Id) - - stateObject = adapter.getItem(0) as DataObject - Log.e("if", " -->" + stateObject.State_Code) - } else { - for (title in listOfStates) { - if (title.State_Code == newTitleText) { - binding.spState.setText(title.State_Name, false) - cityListApi(title.State_Id) - stateObject = title - Log.e("else", " -->" + stateObject.State_Code) - break - } + cityListApi(adapter.getItem(0)?.State_Id) + + stateObject = adapter.getItem(0) as DataObject + Log.e("if", " -->" + stateObject.State_Code) + } else { + for (title in listOfStates) { + if (title.State_Code == newTitleText) { + binding.spState.setText(title.State_Name, false) + cityListApi(title.State_Id) + stateObject = title + Log.e("else", " -->" + stateObject.State_Code) + break } } } } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - stateListResponse.response.message - ) - } + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + stateListResponse.response.message + ) } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } } @@ -1543,7 +1570,7 @@ class StepTwoBajajFDFragment : BaseFragment() { cityRequest.HOCode = "" cityRequest.Source = getString(R.string.source) cityRequest.APP_Web = getString(R.string.app) - stepTwoBajajFDViewModel.cityListApi(cityRequest, token) + stepTwoBajajFDViewModel.cityListApi(cityRequest, token, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getCityListMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -1597,52 +1624,55 @@ class StepTwoBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } } private fun apiForEligibleBankList() { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - stepTwoBajajFDViewModel.bankListApi(token) - stepTwoBajajFDViewModel.getFDBankListMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getFDBankListResponse: GetFDBankListResponse = - Gson().fromJson( - response.data?.toString(), - GetFDBankListResponse::class.java - ) - getFDBankListResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getFDBankListResponse.Response.BankList.isNotEmpty()) { - dialogForBankList(getFDBankListResponse.Response.BankList) - } - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getFDBankListResponse.Response.Errors[0].ErrorMessage - ) + stepTwoBajajFDViewModel.bankListApi(token, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.getFDBankListMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getFDBankListResponse: GetFDBankListResponse = + Gson().fromJson( + response.data?.toString(), + GetFDBankListResponse::class.java + ) + getFDBankListResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + if (getFDBankListResponse.Response.BankList.isNotEmpty()) { + dialogForBankList(getFDBankListResponse.Response.BankList) } } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getFDBankListResponse.Response.Errors[0].ErrorMessage + ) + } } } + } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) - } + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) } - is Resource.Loading -> { + } + is Resource.Loading -> { - } } - } + is Resource.DataError -> { + } + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 9e980ec..1942188 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -11,15 +11,18 @@ import android.os.Build import android.provider.ContactsContract import android.text.format.DateFormat import android.util.Patterns +import android.widget.Toast import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.activity.BaseActivity +import kotlinx.coroutines.CoroutineExceptionHandler import retrofit2.HttpException import java.io.IOException -import java.net.SocketTimeoutException +import java.net.UnknownHostException import java.text.SimpleDateFormat import java.util.* import java.util.regex.Matcher @@ -36,7 +39,7 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - fun isNetworkAvailable(activity: BaseActivity): Boolean { + fun isNetworkAvailable(activity: Activity): Boolean { val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager @@ -187,22 +190,34 @@ class Common { return simpleDateFormat.format(mDate as Date) } - fun handleRatesResponse(response: retrofit2.Response): Resource { - try { + fun handleResponse(response: retrofit2.Response): Resource { + // try { if (response.isSuccessful && response.body() != null) { response.body()?.let { resultResponse -> return Resource.Success(resultResponse) } } - } catch (t: Throwable) { - return when (t) { - is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) - is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) - is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) - else -> Resource.Error(t.localizedMessage?.toString() ?: "") +// } catch (t: Throwable) { +// return when (t) { +// is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) +// is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) +// is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) +// is UnknownHostException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) +// else -> Resource.Error(t.localizedMessage?.toString() ?: "") +// } +// } + return Resource.Error(response.message()) + } + + fun handleError(activity: Activity): CoroutineExceptionHandler { + val handler = CoroutineExceptionHandler { _, exception -> + if (exception is IOException || exception is HttpException){ + showDialogValidation(activity, "Response : ".plus( exception.message).plus(" Cause: " ).plus(exception.cause)) + }else{ + showDialogValidation(activity, "Response : ".plus(exception.localizedMessage?.toString())) } } - return Resource.Error(response.message()) + return handler } fun isMinor(date: String): Boolean { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt index ef9662e..c59bd6a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt @@ -1,10 +1,26 @@ package com.nivesh.production.bajajfd.util sealed class Resource( - val data:T?=null, - val message:String?=null) -{ - class Success(data: T):Resource(data) - class Error(message: String,data: T?= null):Resource(data,message) - class Loading:Resource() + val data: T? = null, + var message: String? = null, + val errorCode: Int? = null, + var status: Boolean = true + +) { + class Success(data: T) : Resource(data) + class Error(message: String, data: T? = null) : Resource(data, message) + class Loading : Resource() + class DataError(errorCode: Int, message: String, data: T? = null) : + Resource(null, message, errorCode) + + + override fun toString(): String { + return when (this) { + is Success<*> -> "Success[data=$data]" + is DataError -> "ErrorCode[exception=$errorCode]" + is Loading -> "Loading" + is Error -> "Error[exception=${error(Any())}]" + } + + } } \ No newline at end of file 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 5a946ad..5cee438 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 @@ -1,53 +1,52 @@ package com.nivesh.production.bajajfd.viewModel -import android.util.Log +import android.app.Activity import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse +import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Common.Companion.handleError +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getStepsCountMutableData: MutableLiveData> = MutableLiveData() - fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch { - getStepsCountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getStepsCountResponse(requestBody, token) - Log.e("response", "-->"+response) - getStepsCountMutableData.postValue(handleRatesResponse(response)) + fun getStepsCount( + requestBody: FDStepsCountRequest, + token: String, + activity: Activity + ) = viewModelScope.launch(handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getStepsCountMutableData.postValue(Resource.Loading()) + val response = mainRepository.getStepsCountResponse(requestBody, token) + getStepsCountMutableData.postValue(handleResponse(response)) + } } val getClientDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String) = - viewModelScope.launch { - getClientDetailsMutableData.postValue(Resource.Loading()) - val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) - getClientDetailsMutableData.postValue(handleRatesResponse(response)) + fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String, activity: Activity) = + viewModelScope.launch(handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getClientDetailsMutableData.postValue(Resource.Loading()) + val response = + mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) + getClientDetailsMutableData.postValue(handleResponse(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)) - } - - 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)) - } - 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)) + fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getFDKYCMutableData.postValue(Resource.Loading()) + val response = mainRepository.checkFDKYCRequest(requestBody, token) + getFDKYCMutableData.postValue(handleResponse(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 2009dfa..b5347e5 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 @@ -1,5 +1,6 @@ package com.nivesh.production.bajajfd.viewModel +import android.app.Activity import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -9,56 +10,79 @@ 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.Common +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() - fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getPaymentModeMutableData.postValue(Resource.Loading()) - val response = mainRepository.payModeCheck(getCodeRequest, token) - getPaymentModeMutableData.postValue(handleRatesResponse(response)) + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String, + activity: Activity + ) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleResponse(response)) + } } val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch { - getFDDetailsMutableData.postValue(Resource.Loading()) - val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) - getFDDetailsMutableData.postValue(handleRatesResponse(response)) + fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String, + activity: Activity) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getFDDetailsMutableData.postValue(Resource.Loading()) + val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) + getFDDetailsMutableData.postValue(handleResponse(response)) + } } val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) = - viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String, + activity: Activity) = + viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(response)) + } } - fun finaliseFD(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.finaliseFDResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + fun finaliseFD(getRatesRequest: GetRatesRequest, token: String, + activity: Activity) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.finaliseFDResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(response)) + } } - fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.finaliseKYCResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String, + activity: Activity) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.finaliseKYCResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(response)) + } } - fun paymentReQuery(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.paymentReQueryResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + fun paymentReQuery(getRatesRequest: GetRatesRequest, token: String, + activity: Activity) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.paymentReQueryResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(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)) + fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String, + activity: Activity) = viewModelScope.launch(Common.handleError(activity)) { + if (Common.isNetworkAvailable(activity)) { + getFDOtherMutableData.postValue(Resource.Loading()) + val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) + getFDOtherMutableData.postValue(handleResponse(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 b684e8e..e92e57a 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 @@ -1,5 +1,6 @@ package com.nivesh.production.bajajfd.viewModel +import android.app.Activity import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -9,7 +10,8 @@ import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch @@ -17,50 +19,57 @@ import kotlinx.coroutines.launch class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getCodeMutableData: MutableLiveData> = MutableLiveData() - fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { - getCodeMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getCodeMutableData.postValue(handleRatesResponse(response)) + fun getCode(requestBody: GetCodeRequest, token : String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getCodeMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getCodeMutableData.postValue(handleResponse(response)) + } } val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun getRates(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getRatesResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) + fun getRates(getRatesRequest: GetRatesRequest, token: String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.getRatesResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(response)) + } } val getMaturityAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaturityAmount(requestBody: GetMaturityAmountRequest) = viewModelScope.launch { - getMaturityAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token) - getMaturityAmountMutableData.postValue(handleRatesResponse(response)) + fun getMaturityAmount(requestBody: GetMaturityAmountRequest, activity: Activity) = viewModelScope.launch ( + Common.handleError(activity) + ){ + if (Common.isNetworkAvailable(activity)) { + getMaturityAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token) + getMaturityAmountMutableData.postValue(handleResponse(response)) + } } val getMinAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMinAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { - getMinAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMinAmountMutableData.postValue(handleRatesResponse(response)) + fun getMinAmount(requestBody: GetCodeRequest, token : String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMinAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getMinAmountMutableData.postValue(handleResponse(response)) + } } val getMaxAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaxAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { - getMaxAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMaxAmountMutableData.postValue(handleRatesResponse(response)) + fun getMaxAmount(requestBody: GetCodeRequest, token : String,activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMaxAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getMaxAmountMutableData.postValue(handleResponse(response)) + } } - - - -// private fun handleRatesResponse(response: retrofit2.Response): Resource { -// if (response.isSuccessful) { -// response.body()?.let { resultResponse -> -// return Resource.Success(resultResponse) -// } -// } -// return Resource.Error(response.message()) -// -// } - } \ No newline at end of file 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 85f5acd..f65da9a 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 @@ -1,5 +1,6 @@ package com.nivesh.production.bajajfd.viewModel +import android.app.Activity import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -9,31 +10,44 @@ import com.nivesh.production.bajajfd.model.DocumentUpload import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getTitleMutableData: MutableLiveData> = MutableLiveData() - fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getTitleMutableData.postValue(Resource.Loading()) - val response = mainRepository.titleCheck(getCodeRequest, token) - getTitleMutableData.postValue(handleRatesResponse(response)) + fun titleApi(getCodeRequest: GetCodeRequest, token: String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getTitleMutableData.postValue(Resource.Loading()) + val response = mainRepository.titleCheck(getCodeRequest, token) + getTitleMutableData.postValue(handleResponse(response)) + } } val getDocumentUploadMutableData: MutableLiveData> = MutableLiveData() - fun documentsUpload(documentUpload: DocumentUpload, token: String) = viewModelScope.launch { - getDocumentUploadMutableData.postValue(Resource.Loading()) - val response = mainRepository.documentsUploadResponse(documentUpload, token) - getDocumentUploadMutableData.postValue(handleRatesResponse(response)) + fun documentsUpload(documentUpload: DocumentUpload, token: String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getDocumentUploadMutableData.postValue(Resource.Loading()) + val response = mainRepository.documentsUploadResponse(documentUpload, token) + getDocumentUploadMutableData.postValue(handleResponse(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)) + fun createFDApi(getRatesRequest: CreateFDRequest, token: String, activity: Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getFDResponseMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDKYCResponse(getRatesRequest, token) + getFDResponseMutableData.postValue(handleResponse(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 5ce7894..db2e02e 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 @@ -1,114 +1,172 @@ package com.nivesh.production.bajajfd.viewModel +import android.app.Activity import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getPanCheckMutableData: MutableLiveData> = MutableLiveData() - fun panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch { - getPanCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.panCheck(panCheck, token) - getPanCheckMutableData.postValue(handleRatesResponse(response)) + fun panCheck(panCheck: PanCheckRequest, token: String, activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getPanCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.panCheck(panCheck, token) + getPanCheckMutableData.postValue(handleResponse(response)) + } } val getTitleMutableData: MutableLiveData> = MutableLiveData() - fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getTitleMutableData.postValue(Resource.Loading()) - val response = mainRepository.titleCheck(getCodeRequest, token) - getTitleMutableData.postValue(handleRatesResponse(response)) + fun titleApi(getCodeRequest: GetCodeRequest, token: String, activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getTitleMutableData.postValue(Resource.Loading()) + val response = mainRepository.titleCheck(getCodeRequest, token) + getTitleMutableData.postValue(handleResponse(response)) + } } val getGenderMutableData: MutableLiveData> = MutableLiveData() - fun genderApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getGenderMutableData.postValue(Resource.Loading()) - val response = mainRepository.genderCheck(getCodeRequest, token) - getGenderMutableData.postValue(handleRatesResponse(response)) + fun genderApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getGenderMutableData.postValue(Resource.Loading()) + val response = mainRepository.genderCheck(getCodeRequest, token) + getGenderMutableData.postValue(handleResponse(response)) + } } val getAnnualIncomeMutableData: MutableLiveData> = MutableLiveData() - fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getAnnualIncomeMutableData.postValue(Resource.Loading()) - val response = mainRepository.annualIncomeCheck(getCodeRequest, token) - getAnnualIncomeMutableData.postValue(handleRatesResponse(response)) + fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getAnnualIncomeMutableData.postValue(Resource.Loading()) + val response = mainRepository.annualIncomeCheck(getCodeRequest, token) + getAnnualIncomeMutableData.postValue(handleResponse(response)) + } } val getRelationShipMutableData: MutableLiveData> = MutableLiveData() - fun relationShipApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getRelationShipMutableData.postValue(Resource.Loading()) - val response = mainRepository.relationShipCheck(getCodeRequest, token) - getRelationShipMutableData.postValue(handleRatesResponse(response)) + fun relationShipApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getRelationShipMutableData.postValue(Resource.Loading()) + val response = mainRepository.relationShipCheck(getCodeRequest, token) + getRelationShipMutableData.postValue(handleResponse(response)) + } } val getMaritalStatusMutableData: MutableLiveData> = MutableLiveData() - fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getMaritalStatusMutableData.postValue(Resource.Loading()) - val response = mainRepository.maritalStatusCheck(getCodeRequest, token) - getMaritalStatusMutableData.postValue(handleRatesResponse(response)) + fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMaritalStatusMutableData.postValue(Resource.Loading()) + val response = mainRepository.maritalStatusCheck(getCodeRequest, token) + getMaritalStatusMutableData.postValue(handleResponse(response)) + } } val getOccupationMutableData: MutableLiveData> = MutableLiveData() - fun occupationApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getOccupationMutableData.postValue(Resource.Loading()) - val response = mainRepository.occupationCheck(getCodeRequest, token) - getOccupationMutableData.postValue(handleRatesResponse(response)) + fun occupationApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getOccupationMutableData.postValue(Resource.Loading()) + val response = mainRepository.occupationCheck(getCodeRequest, token) + getOccupationMutableData.postValue(handleResponse(response)) + } } val getStateMasterMutableData: MutableLiveData> = MutableLiveData() - fun stateApi(token: String) = viewModelScope.launch { - getStateMasterMutableData.postValue(Resource.Loading()) - val response = mainRepository.stateCheck( token) - getStateMasterMutableData.postValue(handleRatesResponse(response)) + fun stateApi(token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getStateMasterMutableData.postValue(Resource.Loading()) + val response = mainRepository.stateCheck(token) + getStateMasterMutableData.postValue(handleResponse(response)) + } } val getCityListMutableData: MutableLiveData> = MutableLiveData() - fun cityListApi(cityRequest: CityRequest, token: String) = viewModelScope.launch { - getCityListMutableData.postValue(Resource.Loading()) - val response = mainRepository.cityCheck(cityRequest, token) - getCityListMutableData.postValue(handleRatesResponse(response)) + fun cityListApi(cityRequest: CityRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getCityListMutableData.postValue(Resource.Loading()) + val response = mainRepository.cityCheck(cityRequest, token) + getCityListMutableData.postValue(handleResponse(response)) + } } val getFDBankListMutableData: MutableLiveData> = MutableLiveData() - fun bankListApi( token: String) = viewModelScope.launch { - getFDBankListMutableData.postValue(Resource.Loading()) - val response = mainRepository.bankListCheck( token) - getFDBankListMutableData.postValue(handleRatesResponse(response)) + fun bankListApi( token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getFDBankListMutableData.postValue(Resource.Loading()) + val response = mainRepository.bankListCheck(token) + getFDBankListMutableData.postValue(handleResponse(response)) + } } val getifscCodeCheckMutableData: MutableLiveData> = MutableLiveData() - fun ifscCodeApi(ifsc : String) = viewModelScope.launch { - getifscCodeCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeCheck(ifsc) - getifscCodeCheckMutableData.postValue(handleRatesResponse(response)) + fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getifscCodeCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeCheck(ifsc) + getifscCodeCheckMutableData.postValue(handleResponse(response)) + } } val getifscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() - fun ifscCodeDetailsApi(ifsc : String, token: String) = viewModelScope.launch { - getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeDetailsCheck(ifsc, token) - getifscCodeDetailsCheckMutableData.postValue(handleRatesResponse(response)) + fun ifscCodeDetailsApi(ifsc : String, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeDetailsCheck(ifsc, token) + getifscCodeDetailsCheckMutableData.postValue(handleResponse(response)) + } } val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() - fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { - getPaymentModeMutableData.postValue(Resource.Loading()) - val response = mainRepository.payModeCheck(getCodeRequest, token) - getPaymentModeMutableData.postValue(handleRatesResponse(response)) + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleResponse(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)) + fun createFDApi(getRatesRequest: CreateFDRequest, token: String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getFDResponseMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDKYCResponse(getRatesRequest, token) + getFDResponseMutableData.postValue(handleResponse(response)) + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index 1e251d4..8886248 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -165,8 +165,9 @@ android:background="@drawable/rounded_corner_with_line" android:hint="@string/addressProofType" android:inputType="none" + android:padding="@dimen/margin_5" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteY="230dp" /> diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index d10b0e2..20c5ec9 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -193,11 +193,12 @@ android:id="@+id/spTitle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:padding="@dimen/margin_5" android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectTitle" android:inputType="none" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> @@ -222,8 +223,9 @@ android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectGender" android:inputType="none" + android:padding="@dimen/margin_5" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> @@ -296,7 +298,10 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_5" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginTop="@dimen/margin_10" + android:layout_marginEnd="@dimen/margin_5" + android:layout_marginBottom="@dimen/margin_5" app:hintEnabled="false"> @@ -317,7 +323,10 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_5" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginTop="@dimen/margin_10" + android:layout_marginEnd="@dimen/margin_5" + android:layout_marginBottom="@dimen/margin_5" app:hintEnabled="false"> @@ -374,8 +384,9 @@ android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectMaritalStatus" android:inputType="none" + android:padding="@dimen/margin_5" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> @@ -465,7 +476,10 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_5" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginTop="@dimen/margin_10" + android:layout_marginEnd="@dimen/margin_5" + android:layout_marginBottom="@dimen/margin_5" app:hintEnabled="false"> @@ -486,7 +501,10 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_5" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginTop="@dimen/margin_10" + android:layout_marginEnd="@dimen/margin_5" + android:layout_marginBottom="@dimen/margin_5" app:hintEnabled="false"> @@ -567,9 +586,10 @@ android:layout_height="wrap_content" android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectTitle" + android:padding="@dimen/margin_5" android:inputType="none" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> @@ -675,9 +695,10 @@ android:layout_height="wrap_content" android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectRelation" + android:padding="@dimen/margin_5" android:inputType="none" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> @@ -750,9 +771,10 @@ android:layout_height="wrap_content" android:background="@drawable/rounded_corner_with_line" android:hint="@string/selectRelation" + android:padding="@dimen/margin_5" android:inputType="none" android:labelFor="@+id/spInterestPayout" - android:textColorHint="#757575" + android:textColorHint="@color/greyColor2" android:textSize="@dimen/text_size_14" /> From c93f829ceff9a3cdf4619afcb8ffa428f9a2b77a Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 10:39:08 +0530 Subject: [PATCH 3/5] minor changes --- .../ui/activity/BajajFdMainActivity.kt | 10 +-- .../nivesh/production/bajajfd/util/Common.kt | 30 ++++--- .../viewModel/StepOneBajajFDViewModel.kt | 86 ++++++++++--------- 3 files changed, 66 insertions(+), 60 deletions(-) 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 e9c8e6c..0f5b8b0 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 @@ -38,11 +38,11 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel - val stepOneBajajFDFragment = StepOneBajajFDFragment() - val stepTwoBajajFDFragment = StepTwoBajajFDFragment() - val stepThreeBajajFDFragment = StepThreeBajajFDFragment() - val stepFourBajajFDFragment = StepFourBajajFDFragment() - val stepFiveBajajFDFragment = StepFiveBajajFDFragment() + private val stepOneBajajFDFragment = StepOneBajajFDFragment() + private val stepTwoBajajFDFragment = StepTwoBajajFDFragment() + private val stepThreeBajajFDFragment = StepThreeBajajFDFragment() + private val stepFourBajajFDFragment = StepFourBajajFDFragment() + private val stepFiveBajajFDFragment = StepFiveBajajFDFragment() var createFDRequest: CreateFDRequest = CreateFDRequest() var createFDApplicantRequest: CreateFDApplicationRequest = CreateFDApplicationRequest() diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 1942188..f217a9c 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -11,18 +11,14 @@ import android.os.Build import android.provider.ContactsContract import android.text.format.DateFormat import android.util.Patterns -import android.widget.Toast import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R -import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity -import com.nivesh.production.bajajfd.ui.activity.BaseActivity import kotlinx.coroutines.CoroutineExceptionHandler import retrofit2.HttpException import java.io.IOException -import java.net.UnknownHostException import java.text.SimpleDateFormat import java.util.* import java.util.regex.Matcher @@ -191,12 +187,12 @@ class Common { } fun handleResponse(response: retrofit2.Response): Resource { - // try { - if (response.isSuccessful && response.body() != null) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } + // try { + if (response.isSuccessful && response.body() != null) { + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) } + } // } catch (t: Throwable) { // return when (t) { // is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) @@ -210,11 +206,17 @@ class Common { } fun handleError(activity: Activity): CoroutineExceptionHandler { - val handler = CoroutineExceptionHandler { _, exception -> - if (exception is IOException || exception is HttpException){ - showDialogValidation(activity, "Response : ".plus( exception.message).plus(" Cause: " ).plus(exception.cause)) - }else{ - showDialogValidation(activity, "Response : ".plus(exception.localizedMessage?.toString())) + val handler = CoroutineExceptionHandler { _, exception -> + if (exception is IOException || exception is HttpException) { + showDialogValidation( + activity, + "Response : ".plus(exception.message).plus(" Cause: ").plus(exception.cause) + ) + } else { + showDialogValidation( + activity, + "Response : ".plus(exception.localizedMessage?.toString()) + ) } } return handler 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 e92e57a..f9245ac 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 @@ -5,7 +5,6 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject -import com.nivesh.production.bajajfd.model.CheckFDKYCRequest import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest import com.nivesh.production.bajajfd.model.GetRatesRequest @@ -19,57 +18,62 @@ import kotlinx.coroutines.launch class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { val getCodeMutableData: MutableLiveData> = MutableLiveData() - fun getCode(requestBody: GetCodeRequest, token : String, activity: Activity) = viewModelScope.launch( - Common.handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getCodeMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getCodeMutableData.postValue(handleResponse(response)) + fun getCode(requestBody: GetCodeRequest, token: String, activity: Activity) = + viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getCodeMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getCodeMutableData.postValue(handleResponse(response)) + } } - } val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun getRates(getRatesRequest: GetRatesRequest, token: String, activity: Activity) = viewModelScope.launch( - Common.handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getRatesResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleResponse(response)) + fun getRates(getRatesRequest: GetRatesRequest, token: String, activity: Activity) = + viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.getRatesResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleResponse(response)) + } } - } val getMaturityAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaturityAmount(requestBody: GetMaturityAmountRequest, activity: Activity) = viewModelScope.launch ( - Common.handleError(activity) - ){ - if (Common.isNetworkAvailable(activity)) { - getMaturityAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token) - getMaturityAmountMutableData.postValue(handleResponse(response)) + fun getMaturityAmount(requestBody: GetMaturityAmountRequest, activity: Activity) = + viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMaturityAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token) + getMaturityAmountMutableData.postValue(handleResponse(response)) + } } - } val getMinAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMinAmount(requestBody: GetCodeRequest, token : String, activity: Activity) = viewModelScope.launch( - Common.handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMinAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMinAmountMutableData.postValue(handleResponse(response)) + fun getMinAmount(requestBody: GetCodeRequest, token: String, activity: Activity) = + viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMinAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getMinAmountMutableData.postValue(handleResponse(response)) + } } - } val getMaxAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaxAmount(requestBody: GetCodeRequest, token : String,activity: Activity) = viewModelScope.launch( - Common.handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMaxAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMaxAmountMutableData.postValue(handleResponse(response)) + fun getMaxAmount(requestBody: GetCodeRequest, token: String, activity: Activity) = + viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + getMaxAmountMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(requestBody, token) + getMaxAmountMutableData.postValue(handleResponse(response)) + } } - } } \ No newline at end of file From 64ffadb14dc9bb5404431c24c1ad91888be50561 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 11:13:11 +0530 Subject: [PATCH 4/5] changes added --- .../bajajfd/interfaces/BajajFDInterface.kt | 12 ------- .../ui/activity/BajajFdMainActivity.kt | 11 +++---- .../ui/fragment/StepFiveBajajFDFragment.kt | 15 --------- .../ui/fragment/StepOneBajajFDFragment.kt | 4 +-- .../ui/fragment/StepTwoBajajFDFragment.kt | 6 ---- .../nivesh/production/bajajfd/util/Common.kt | 4 +-- .../viewModel/StepFiveBajajFDViewModel.kt | 12 +------ app/src/main/res/values-hi-rIN/strings.xml | 26 +++++---------- app/src/main/res/values/strings.xml | 33 +++++-------------- 9 files changed, 27 insertions(+), 96 deletions(-) delete mode 100644 app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt 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 deleted file mode 100644 index 5d988c5..0000000 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt +++ /dev/null @@ -1,12 +0,0 @@ -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: 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/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 0f5b8b0..82a5cad 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 @@ -19,7 +19,6 @@ 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 -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.fragment.* @@ -34,7 +33,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* -class BajajFdMainActivity : BaseActivity(), BajajFDInterface { +class BajajFdMainActivity : BaseActivity() { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel @@ -362,13 +361,13 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } // step 1 response - override fun stepOneApi(data: String?) { + fun stepOneApi(data: String?) { Log.e("stepOneApi", " response ---> $data") binding.viewPager.currentItem = 1 } // step 2 response - override fun stepTwoApi(data: CreateFDApplicationResponse) { + fun stepTwoApi(data: CreateFDApplicationResponse) { Log.e("stepTwoApi", " response ---> " + Gson().toJson(data)) binding.viewPager.currentItem = 2 stepThreeBajajFDFragment.displayReceivedData(data) @@ -376,7 +375,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { // step 3 response - override fun stepThreeApi(data: CreateFDApplicationResponse) { + fun stepThreeApi(data: CreateFDApplicationResponse) { Log.e("stepThreeApi", " response --->" + Gson().toJson(data)) // call create fd api binding.viewPager.currentItem = 3 @@ -384,7 +383,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } // step 4 response - override fun stepFourApi(payUrl: String, value: String) { + fun stepFourApi(payUrl: String, value: String) { paymentDialog(payUrl, value) } 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 ad8f74f..cbde8cb 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 @@ -7,10 +7,8 @@ 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 @@ -20,19 +18,6 @@ class StepFiveBajajFDFragment : Fragment() { private var _binding: FragmentBajajfdStepFiveBinding? = null private val binding get() = _binding!! - private lateinit var bajajFDInterface: BajajFDInterface - companion object { - fun getInstance(fdInterface: BajajFDInterface): StepFiveBajajFDFragment { - val stepFiveFragment = StepFiveBajajFDFragment() - stepFiveFragment.setApi(fdInterface) - return stepFiveFragment - } - } - fun setApi(bajajFDInterfaces: BajajFDInterface) { - bajajFDInterface = bajajFDInterfaces - } - - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? 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 634e7a0..7e4f9ba 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 @@ -137,7 +137,7 @@ class StepOneBajajFDFragment : BaseFragment() { binding.spInterestPayout.text.toString() (activity as BajajFdMainActivity).fdInvestmentDetails.Tenure = tenure (activity as BajajFdMainActivity).fdInvestmentDetails.Interest = interest - (activity as BajajFdMainActivity).fdInvestmentDetails.NiveshClientCode = "8872" + (activity as BajajFdMainActivity).fdInvestmentDetails.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE (activity as BajajFdMainActivity).fdInvestmentDetails.Provider = getString(R.string.bajaj) (activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = "192.168.1.23" @@ -161,8 +161,6 @@ class StepOneBajajFDFragment : BaseFragment() { "StepOneData", "-->" + Gson().toJson((activity as BajajFdMainActivity).fdInvestmentDetails) ) - - // bajajFDInterface.stepOneApi("stepOneResponse") (activity as BajajFdMainActivity).stepOneApi("stepOneResponse") } } 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 d3484bb..5e0c24a 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 @@ -27,7 +27,6 @@ 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 @@ -54,7 +53,6 @@ class StepTwoBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! - private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton private var cal = Calendar.getInstance() @@ -607,7 +605,6 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.edtAddressLine3.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantCity = binding.spCity.text.toString() - // (activity as BajajFdMainActivity).applicantDetails.ApplicantState = binding.spState.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantState = stateObject.State_Code (activity as BajajFdMainActivity).applicantDetails.ApplicantCountry = "India" @@ -710,9 +707,6 @@ class StepTwoBajajFDFragment : BaseFragment() { "StepTwoResponse", "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) ) - // bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest) - // (activity as BajajFdMainActivity).stepTwoApi((activity as BajajFdMainActivity).createFDRequest) - createFDApi((activity as BajajFdMainActivity).createFDRequest) } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index f217a9c..9d5bc8b 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -110,7 +110,7 @@ class Common { builder.setMessage(message) builder.setCancelable(false) if (activity != null) { - builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ -> + builder.setPositiveButton(activity.getString(R.string.Ok)) { dialogInterface, _ -> dialogInterface.dismiss() } } @@ -121,7 +121,7 @@ class Common { val builder = AlertDialog.Builder(activity) builder.setMessage(message) if (activity != null) { - builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ -> + builder.setPositiveButton(activity.getString(R.string.Ok)) { dialogInterface, _ -> dialogInterface.dismiss() } builder.setNegativeButton(activity.getString(R.string.cancel)) { dialogInterface, _ -> diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt index 0484681..ca3c984 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt @@ -1,19 +1,9 @@ package com.nivesh.production.bajajfd.viewModel -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.lifecycle.ViewModel -import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding -import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding -import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity -import com.nivesh.production.bajajfd.ui.fragment.StepFiveBajajFDFragment -import com.nivesh.production.bajajfd.ui.fragment.StepFourBajajFDFragment -class StepFiveBajajFDViewModel (private val mainRepository: MainRepository) : ViewModel() { +class StepFiveBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { } \ No newline at end of file diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 86039fa..19ed6ab 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -128,6 +128,9 @@ NetBanking Upto Rs. 1 Lakh Only Eligible Bank Option + PaymentMode + CustomerCategory + Please enter Guardian Details Please enter mobile number @@ -181,7 +184,6 @@ Please select payment mode - Upload KYC Documents Address Proof Type * @@ -193,6 +195,9 @@ Photograph * PAN * Doctype + Select Option + Gallery + Camera @@ -202,14 +207,9 @@ Interest Payout Rate of Interest - Director of Bajaj Finance Ltd. - Promoter of Bajaj Finance Ltd. - Relative of director or promoter of Bajaj Finance Ltd. - Shareholder of Bajaj Finance Ltd. - Are you a politically exposed person - I am not a citizen, national or tax resident of any country outside of India I undertake to inform company any change in status of my nationality or tax residence. I am making investment from my Indian resident Individual Savings bank account. I/ We confirm that 1/we have read and understood the detailed terms and conditions annexed to this Application including the interest rate and other charges. I have gone through the financials and other statements/particulars representations furnished/made by the company and after careful consideration I am making the deposit with the company at my own risk and volition. I have read and agree to the Terms & conditions - + PAY + Payment Please accept terms & conditions. @@ -237,17 +237,9 @@ Non Senior Citizen Add New Account - OK + OK Cancel Aadhar - Select Option - Gallery - Camera - PaymentMode - CustomerCategory - PAY - Payment - Please enter Guardian Details \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7311f62..19ed6ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -128,6 +128,9 @@ NetBanking Upto Rs. 1 Lakh Only Eligible Bank Option + PaymentMode + CustomerCategory + Please enter Guardian Details Please enter mobile number @@ -181,7 +184,6 @@ Please select payment mode - Upload KYC Documents Address Proof Type * @@ -193,6 +195,9 @@ Photograph * PAN * Doctype + Select Option + Gallery + Camera @@ -202,14 +207,9 @@ Interest Payout Rate of Interest - Director of Bajaj Finance Ltd. - Promoter of Bajaj Finance Ltd. - Relative of director or promoter of Bajaj Finance Ltd. - Shareholder of Bajaj Finance Ltd. - Are you a politically exposed person - I am not a citizen, national or tax resident of any country outside of India I undertake to inform company any change in status of my nationality or tax residence. I am making investment from my Indian resident Individual Savings bank account. I/ We confirm that 1/we have read and understood the detailed terms and conditions annexed to this Application including the interest rate and other charges. I have gone through the financials and other statements/particulars representations furnished/made by the company and after careful consideration I am making the deposit with the company at my own risk and volition. I have read and agree to the Terms & conditions - + PAY + Payment Please accept terms & conditions. @@ -237,24 +237,9 @@ Non Senior Citizen Add New Account - OK + OK Cancel Aadhar - Select Option - Gallery - Camera - PaymentMode - CustomerCategory - PAY - Payment - Please enter Guardian Details - - - Aadhaar Card - PAN - Voter Id - Driving Licence - \ No newline at end of file From 4149a04b82cdaf7c431ef00f0474df090f07536d Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Thu, 5 Jan 2023 12:18:07 +0530 Subject: [PATCH 5/5] added code --- .../ui/fragment/StepThreeBajajFDFragment.kt | 40 ++++++++++- .../res/drawable/ic_baseline_check_24.xml | 6 ++ .../layout/fragment_bajajfd_step_three.xml | 67 ++++++++++++++++--- 3 files changed, 100 insertions(+), 13 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_check_24.xml 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 6950612..7260ac6 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 @@ -59,6 +59,11 @@ class StepThreeBajajFDFragment : BaseFragment() { private var selectedImage: String? = "" private var checkPANUploadFile: Boolean? = false private var checkPhotoUploadFile: Boolean? = false + private var actionType: AccountCaptureType? = null + + enum class AccountCaptureType { + MAIN_PAN_UPLOAD,MAIN_PHOTO_UPLOAD,FIRST_UPLOAD,SECOND_UPLOAD + } private val requestPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() @@ -70,7 +75,6 @@ class StepThreeBajajFDFragment : BaseFragment() { } } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -123,24 +127,28 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.btnPANUpload.setOnClickListener { checkPANUploadFile = true checkPhotoUploadFile = false + actionType = AccountCaptureType.MAIN_PAN_UPLOAD selectImage("PAN") } binding.btnPhotoUpload.setOnClickListener { checkPhotoUploadFile = true checkPANUploadFile = false + actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD selectImage("Photograph") } binding.btnAadhaarFrontUpload.setOnClickListener { checkPANUploadFile = false checkPhotoUploadFile = false + actionType = AccountCaptureType.FIRST_UPLOAD selectImage(binding.spDocType.text.toString()) } binding.btnAadhaarBackUpload.setOnClickListener { checkPANUploadFile = false checkPhotoUploadFile = false + actionType = AccountCaptureType.SECOND_UPLOAD selectImage(binding.spDocType.text.toString()) } @@ -148,7 +156,7 @@ class StepThreeBajajFDFragment : BaseFragment() { AdapterView.OnItemClickListener { parent, _, position, _ -> val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes - when (getCodes.Value) { + when (getCodes.Label) { resources.getString(R.string.aadhar) -> setAadhaarUploadLayout() else -> { @@ -257,6 +265,14 @@ class StepThreeBajajFDFragment : BaseFragment() { } else { selectedImage?.let { mapImage.put(it, front) } } + when(actionType){ + AccountCaptureType.MAIN_PAN_UPLOAD -> binding.ivPan.visibility = View.VISIBLE + AccountCaptureType.MAIN_PHOTO_UPLOAD -> binding.ivPhotograph.visibility = View.VISIBLE + AccountCaptureType.FIRST_UPLOAD -> binding.ivAadharFront.visibility = View.VISIBLE + else ->{ + binding.ivAadharBack.visibility = View.VISIBLE + } + } } private fun encodedFileToBase64(fileName: File?) { @@ -465,6 +481,25 @@ class StepThreeBajajFDFragment : BaseFragment() { private fun validate(): Boolean { + if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size < 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload Aadhaar Images" + ) + return false + } else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload Aadhaar Images" + ) + return false + } else if (mapImage.size < 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload All Images" + ) + return false + } return true } @@ -500,5 +535,4 @@ class StepThreeBajajFDFragment : BaseFragment() { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId } - } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_baseline_check_24.xml b/app/src/main/res/drawable/ic_baseline_check_24.xml new file mode 100644 index 0000000..eb14651 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_check_24.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index 8886248..9467bfd 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -114,6 +114,20 @@ app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument" tools:ignore="DuplicateSpeakableTextCheck" /> + + + + + +