From 587bd7862ae80b65ff03e8833350c762d2797dcf Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 17:09:11 +0530 Subject: [PATCH] added missing code and resolved an error --- .../ui/activity/BajajFdMainActivity.kt | 25 +++++++++++-------- .../bajajfd/ui/activity/BaseActivity.kt | 13 ++++++++++ .../bajajfd/ui/fragment/BaseFragment.kt | 21 ++++++++++++++++ .../ui/fragment/StepFourBajajFDFragment.kt | 14 ++++++----- .../ui/fragment/StepOneBajajFDFragment.kt | 2 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 8 ++++-- .../ui/fragment/StepTwoBajajFDFragment.kt | 2 +- .../nivesh/production/bajajfd/util/Common.kt | 3 ++- .../viewModel/StepThreeBajajFDViewModel.kt | 1 + 9 files changed, 68 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt 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 47cca5f..adc7ba7 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 @@ -3,7 +3,6 @@ package com.nivesh.production.bajajfd.ui.activity import android.graphics.drawable.Drawable import android.os.Bundle import android.util.Log -import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager @@ -26,7 +25,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* -class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { +class BajajFdMainActivity : BaseActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel @@ -385,13 +384,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // step 2 response override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - if (stepCount == 4) { + // if (stepCount == 4) { // go to step 3 image Upload - binding.viewPager.currentItem = 2 - } else { + // binding.viewPager.currentItem = 2 + // } else { // call create fd api bypass step 3 - createFDApi(data, 2) - } + createFDApi(data, 2, "2") + // } } @@ -399,7 +398,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { override fun stepThreeApi(data: CreateFDRequest) { Log.e("stepThreeApi", " response ---> $data") // call create fd api - createFDApi(data, 3) + createFDApi(data, 3, "3") } // step 4 response @@ -408,7 +407,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { binding.viewPager.currentItem = 4 } - private fun createFDApi(data: CreateFDRequest, currentItem: Int) { + private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { viewModel.createFDApi(data, token) @@ -425,10 +424,16 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { when (code) { 200 -> { binding.viewPager.currentItem = currentItem - StepFourBajajFDFragment.getInstance(this).displayReceivedData(createFDApplicationResponse) + if (step == "2"){ + val stepThreeBajajFDFragment: StepThreeBajajFDFragment = + sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepThreeBajajFDFragment + stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse) + } + else{ val stepFourFDFragment: StepFourBajajFDFragment = sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepFourBajajFDFragment stepFourFDFragment.displayReceivedData(createFDApplicationResponse) + } } // 650 -> refreshToken() else -> { 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 new file mode 100644 index 0000000..0d3d811 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt @@ -0,0 +1,13 @@ +package com.nivesh.production.bajajfd.ui.activity + +import android.app.Activity +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity + +open class BaseActivity : AppCompatActivity() { + private lateinit var mActivity: Activity + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + mActivity = this + } +} \ No newline at end of file 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 new file mode 100644 index 0000000..4295636 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt @@ -0,0 +1,21 @@ +package com.nivesh.production.bajajfd.ui.fragment + +import android.content.Context +import android.os.Bundle +import androidx.fragment.app.Fragment +import com.nivesh.production.bajajfd.ui.activity.BaseActivity + +open class BaseFragment : Fragment() { + protected var mActivity: BaseActivity? = null + override fun onAttach(context: Context) { + super.onAttach(context) + if (context is BaseActivity) { + mActivity = context + } else try { + throw ClassCastException("You need to extend BaseActivity to calling activity.") + } catch (e: Exception) { + e.printStackTrace() + } + } + +} 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 160da45..feff452 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 @@ -1,7 +1,5 @@ package com.nivesh.production.bajajfd.ui.fragment -import android.app.Activity -import android.content.Context import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -22,7 +20,7 @@ import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel -class StepFourBajajFDFragment : Fragment() { +class StepFourBajajFDFragment : BaseFragment() { private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null @@ -67,6 +65,10 @@ class StepFourBajajFDFragment : Fragment() { ) } } + + binding.btnBack.setOnClickListener{ + (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 + } return root } @@ -130,10 +132,10 @@ class StepFourBajajFDFragment : Fragment() { } private fun getFDDetailsApi(uniqueId: String) { - if (Common.isNetworkAvailable(requireActivity())) { + if (Common.isNetworkAvailable(mActivity!!)) { val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = requireActivity().getString(R.string.bajaj) - getFDDetailsRequest.NiveshClientCode = (requireContext().applicationContext as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.FDProvider = mActivity!!.getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = (mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> 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 44be1be..b6e6484 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 @@ -31,7 +31,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel -class StepOneBajajFDFragment : Fragment() { +class StepOneBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepOneBinding? = null private val binding get() = _binding!! 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 a40a798..ce57e5e 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 @@ -36,7 +36,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel import java.io.File -class StepThreeBajajFDFragment : Fragment() { +class StepThreeBajajFDFragment : BaseFragment() { private var latestTmpUri: Uri? = null private var _binding: FragmentBajajfdStepThreeBinding? = null @@ -45,7 +45,7 @@ class StepThreeBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel - + private var uniqueId: String? = "" private lateinit var dialog: Dialog companion object { @@ -313,4 +313,8 @@ class StepThreeBajajFDFragment : Fragment() { super.onDestroyView() _binding = null } + + 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 20e4403..8218885 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 @@ -46,7 +46,7 @@ import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel import java.util.* -class StepTwoBajajFDFragment : Fragment() { +class StepTwoBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! 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 fc36a35..791ce18 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 @@ -15,6 +15,7 @@ import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.ui.activity.BaseActivity import retrofit2.HttpException import java.io.IOException import java.text.SimpleDateFormat @@ -33,7 +34,7 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - fun isNetworkAvailable(activity: Activity): Boolean { + fun isNetworkAvailable(activity: BaseActivity): Boolean { val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager 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 84330b9..1162885 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 @@ -27,4 +27,5 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi getTitleMutableData.postValue(handleRatesResponse(response)) } + } \ No newline at end of file