diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt index ff19bee..3681c93 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt @@ -3,18 +3,16 @@ package com.nivesh.production.bajajfd.adapter import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.switchmaterial.SwitchMaterial import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.model.GetCodes class CustomerListAdapter( - private val bankList: List? + private val customerList: List? ) : RecyclerView.Adapter() { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) - val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + val tvCustomerName: SwitchMaterial = itemView.findViewById(R.id.tvCustomerName) } private var checkedPosition: Int = -2 @@ -34,15 +32,13 @@ class CustomerListAdapter( } override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { - val bankList = bankList?.get(position) - if (bankList != null) { + val cList = customerList?.get(position) + if (cList != null) { holder.itemView.apply { - holder.tvBankName.text = bankList.Value + holder.tvCustomerName.text = cList.Label setOnClickListener { onItemClickListener?.let { - it(bankList) - - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + it(cList) if (checkedPosition != holder.adapterPosition) { notifyItemChanged(checkedPosition) checkedPosition = holder.adapterPosition @@ -55,7 +51,7 @@ class CustomerListAdapter( } override fun getItemCount(): Int { - return bankList?.size!! + return customerList?.size!! } private var onItemClickListener: ((GetCodes) -> Unit)? = null @@ -67,7 +63,7 @@ class CustomerListAdapter( fun getSelected(): GetCodes? { return if (checkedPosition != -1) { - bankList?.get(checkedPosition) + customerList?.get(checkedPosition) } else null } 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 94538dc..d827306 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,10 +1,11 @@ package com.nivesh.production.bajajfd.interfaces 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: String?) + fun stepFourApi(data: SaveFDOtherDataRequest) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/SaveFDOtherDataRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/SaveFDOtherDataRequest.kt new file mode 100644 index 0000000..5558f83 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/SaveFDOtherDataRequest.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class SaveFDOtherDataRequest( + var FDProvider: String?= "", + var NiveshClientCode: String? = "", + var UniqueId: String? = "", + var Values: 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 47cca5f..08dcfb6 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,16 +398,17 @@ 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 - override fun stepFourApi(data: String?) { + override fun stepFourApi(data: SaveFDOtherDataRequest) { Log.e("stepFourApi", " response ---> $data") - binding.viewPager.currentItem = 4 + // 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 +425,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(currentItem) as StepThreeBajajFDFragment + stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse) + } + else{ val stepFourFDFragment: StepFourBajajFDFragment = - sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepFourBajajFDFragment + sectionsPagerAdapter.getRegisteredFragment(currentItem) 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..74f02dd 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,13 +1,10 @@ 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 import android.view.View import android.view.ViewGroup -import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import com.google.gson.Gson import com.nivesh.production.bajajfd.R @@ -22,7 +19,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 @@ -59,7 +56,12 @@ class StepFourBajajFDFragment : Fragment() { binding.btnNext.setOnClickListener { if (binding.checkBox.isChecked) { - bajajFDInterface.stepFourApi("stepFourResponse") + val saveFDOtherDataRequest = SaveFDOtherDataRequest() + saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj) + saveFDOtherDataRequest.UniqueId = uniqueId + saveFDOtherDataRequest.Values = "" + saveFDOtherDataRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + bajajFDInterface.stepFourApi(saveFDOtherDataRequest) } else { showDialogValidation( activity as BajajFdMainActivity, @@ -67,6 +69,10 @@ class StepFourBajajFDFragment : Fragment() { ) } } + + binding.btnBack.setOnClickListener{ + (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 + } return root } @@ -101,14 +107,19 @@ class StepFourBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Message + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -130,10 +141,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 -> @@ -149,23 +160,28 @@ class StepFourBajajFDFragment : Fragment() { when (code) { 200 -> { binding.tvInvestedAmount.text = - getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString() + getString(R.string.rs).plus(getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString()) binding.tvTenure.text = - getFDDetailsResponse.Response.FDDataResponse.Tenure.toString() + getFDDetailsResponse.Response.FDDataResponse.Tenure.toString().plus(" Months") binding.tvInterestPayout.text = getFDDetailsResponse.Response.FDDataResponse.Frequency binding.tvRateOfInterest.text = - getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString() + getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString().plus(" % p.a.") } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation( + activity as BajajFdMainActivity, + getFDDetailsResponse.Response.Message + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { 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..afb0a16 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 { @@ -261,7 +261,12 @@ class StepThreeBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Message + ) + } } } } @@ -313,4 +318,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 diff --git a/app/src/main/res/layout/fragment_bajajfd_step_four.xml b/app/src/main/res/layout/fragment_bajajfd_step_four.xml index 110a22a..1017eb3 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_four.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_four.xml @@ -284,10 +284,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:layout_marginTop="@dimen/margin_10" + android:layout_marginTop="@dimen/margin_5" android:layout_marginBottom="@dimen/margin_15" - android:backgroundTint="@color/colorPrimary" - android:text="@string/viewOrder" + android:backgroundTint="@color/green" + android:text="@string/pay" android:textColor="@color/white" android:textSize="@dimen/text_size_14" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/item_customer_list_preview.xml b/app/src/main/res/layout/item_customer_list_preview.xml index 0e095ca..2fff86b 100644 --- a/app/src/main/res/layout/item_customer_list_preview.xml +++ b/app/src/main/res/layout/item_customer_list_preview.xml @@ -4,36 +4,37 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:cardBackgroundColor="@color/white" - app:cardCornerRadius="3dp" - app:cardElevation="3dp" + app:cardCornerRadius="2dp" + app:cardElevation="2dp" app:cardMaxElevation="1dp" app:cardPreventCornerOverlap="true" app:cardUseCompatPadding="true"> - - + android:textSize="@dimen/text_size_12"/> + + diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index c5fdfa6..8d1dde6 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -244,5 +244,6 @@ Camera PaymentMode CustomerCategory + PAY \ 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 3c160f0..d4243c5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -246,6 +246,7 @@ Camera PaymentMode CustomerCategory + PAY Aadhaar Card