diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/IndicatorAdapter.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/IndicatorAdapter.kt new file mode 100644 index 00000000..70a82ab9 --- /dev/null +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/IndicatorAdapter.kt @@ -0,0 +1,45 @@ +package com.remit.jmecustomer.features.homeV3.adpaters + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.remit.jmecustomer.R + + +class IndicatorAdapter(private val items: List) : + RecyclerView.Adapter() { + private var selectedPosition = 0 + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IndicatorViewHolder { + val itemView: View = + LayoutInflater.from(parent.context).inflate(R.layout.item_indicator, parent, false) + return IndicatorViewHolder(itemView) + } + + override fun onBindViewHolder(holder: IndicatorViewHolder, position: Int) { + // Set indicator appearance based on selected/unselected state + if (position == selectedPosition) { + holder.viewIndicator.setBackgroundResource(R.drawable.circle_black_bullet) + } else { + holder.viewIndicator.setBackgroundResource(R.drawable.grey_border_dark_indicator) + } + } + + override fun getItemCount(): Int { + return items.size + } + + fun setSelectedPosition(selectedPosition: Int) { + this.selectedPosition = selectedPosition + notifyDataSetChanged() + } + + inner class IndicatorViewHolder(itemView: View) : + RecyclerView.ViewHolder(itemView) { + var viewIndicator: View + + init { + viewIndicator = itemView.findViewById(R.id.viewIndicator) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/SendTypeAdapter.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/SendTypeAdapter.kt index 6a50d1b6..3de62ed3 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/SendTypeAdapter.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/adpaters/SendTypeAdapter.kt @@ -7,7 +7,6 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.remit.jmecustomer.R import com.remit.jmecustomer.databinding.RowSendTypeBinding -import com.remit.jmecustomer.features.exrate.adapter.PaymentModeRvAdapter import com.remit.jmecustomer.features.exrate.model.PaymentModeMapper import com.remit.jmecustomer.features.exrate.model.datav2.PaymentMode @@ -33,7 +32,7 @@ class SendTypeAdapter(private var items: MutableList , listener : O ?.let { binding.ivText.setTextColor(it) } } binding.rowMain.setOnClickListener { - mListener?.onPaymentModeSelected(item) + mListener?.onPaymentModeSelected(item , position) item.isSelected = true notifyDataSetChanged() @@ -72,6 +71,6 @@ class SendTypeAdapter(private var items: MutableList , listener : O } interface OnPaymentModeSelectionListener { - fun onPaymentModeSelected(selectedData: PaymentMode?) + fun onPaymentModeSelected(selectedData: PaymentMode? , position: Int) } } \ No newline at end of file diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt index 71063b1a..2e67745c 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt @@ -143,12 +143,12 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, // Add tabs with icons val tab1: TabLayout.Tab = - binding.tabLayout.newTab().setIcon(R.drawable.ic_home_selected).setText("Home") + binding.tabLayout.newTab().setIcon(R.drawable.ic_home_selected).setText(getString(R.string.home_text)) val tab2: TabLayout.Tab = binding.tabLayout.newTab().setIcon(R.drawable.ic_transfers_unselected) - .setText("Receiver") + .setText(getString(R.string.receiver_text)) val tab3: TabLayout.Tab = - binding.tabLayout.newTab().setIcon(R.drawable.profile_unselected).setText("Account") + binding.tabLayout.newTab().setIcon(R.drawable.profile_unselected).setText(getString(R.string.profile_text)) // Add tabs to the TabLayout diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt index d10f46ae..2d16f013 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt @@ -40,7 +40,6 @@ import com.remit.jmecustomer.common.customwidgets.CurrencyFormatterTextWatcher import com.remit.jmecustomer.common.customwidgets.CustomAlertDialog import com.remit.jmecustomer.common.customwidgets.common.GenericEditTextPromptDialog import com.remit.jmecustomer.common.customwidgets.common.GenericEditTextPromptDialog.GenericEditTextPromptListener -import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog import com.remit.jmecustomer.common.customwidgets.exchangecountrylistingdialog.CountryFlagMapper import com.remit.jmecustomer.common.customwidgets.exchangecountrylistingdialog.ExchangeRateCurrencyListingDialog import com.remit.jmecustomer.databinding.FragmentHomeNewBinding @@ -59,6 +58,7 @@ import com.remit.jmecustomer.features.home.model.HomeViewRelatedDTOV2 import com.remit.jmecustomer.features.home.presenter.HomeViewModel import com.remit.jmecustomer.features.home.view.notifications.* import com.remit.jmecustomer.features.homeV3.adpaters.BannerViewAdapter +import com.remit.jmecustomer.features.homeV3.adpaters.IndicatorAdapter import com.remit.jmecustomer.features.homeV3.adpaters.SendTypeAdapter import com.remit.jmecustomer.features.myTransfers.view.MyTransfersFragment import com.remit.jmecustomer.features.sendmoney.model.amountdetail.AmountDetailRelatedDataModel @@ -116,6 +116,7 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, private val paymentModeRvAdapter: PaymentModeRvAdapter? = null private var sendTypeAdapter: SendTypeAdapter? = null + private var indicatorAdapter: IndicatorAdapter? = null private var viewModel: UserProfilePresenterV2? = null private var homeViewModel: HomeViewModel? = null @@ -147,7 +148,7 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, if (binding.swiperefresh.isRefreshing) { binding.swiperefresh.isRefreshing = false } - Glide.with(context!!) + Glide.with(requireContext()) .load(homeViewRelatedDTOV2.profileImage) .apply(options.signature(ObjectKey(System.currentTimeMillis()))) .fitCenter().apply(options.circleCrop()) @@ -203,7 +204,7 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, sendTypeAdapter = SendTypeAdapter(list, this) binding.rvSendType.adapter = sendTypeAdapter viewModel!!.subscribeToUserProfileInfoFetchEvent().observe( - this + viewLifecycleOwner ) { body: UserProfile? -> // this.displayUserInfo( // body!! @@ -376,6 +377,11 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, ) { serviceAvailable[0].isSelected = true sendTypeAdapter?.setData(serviceAvailable) + indicatorAdapter = IndicatorAdapter(serviceAvailable) + indicatorAdapter?.setSelectedPosition(0) + val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false) + binding.indicatorSendMethod.layoutManager = layoutManager + binding.indicatorSendMethod.adapter = indicatorAdapter // sendTypeAdapter.setSelectedItem(selectedIndex) } @@ -430,6 +436,11 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, } catch (exception: java.lang.Exception) { exception.printStackTrace() } + + Handler().postDelayed(Runnable { + Constants.ENTERED_SENDING_AMOUNT = + Utils.removeCommaFromAmount(binding.sendAmountEdTxt.text.toString()) + }, 500) } override fun showExrateView(task: Runnable?) { @@ -452,8 +463,9 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, // } } - override fun onPaymentModeSelected(selectedData: PaymentMode?) { + override fun onPaymentModeSelected(selectedData: PaymentMode?, position: Int) { presenter.setPaymentMode(selectedData) + indicatorAdapter?.setSelectedPosition(position) } override fun onStart() { @@ -468,6 +480,7 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, binding.agreeButton.setOnClickListener(this) binding.linUploadSlip.setOnClickListener(this) binding.relSwitch.setOnClickListener(this) + binding.clCountry.setOnClickListener(this) } override fun onEditorAction(v: TextView, actionId: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java index ef90f139..17455a56 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java +++ b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java @@ -245,15 +245,51 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter jsonObject.addProperty("RegistrationType", registrationType); jsonObject.addProperty("Code", code); compositeDisposable.add( - this.gateway.getKycSettings(gateway.getAuth(), jsonObject) + this.gateway.saveKycSettings(gateway.getAuth(), jsonObject) .doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .doFinally(() -> view.showProgressBar(false, "")) - .subscribeWith(null) + .subscribeWith(new SaveKycSettingObserver()) ); } + + public class SaveKycSettingObserver extends GenericApiObserverResponseV2 { + + @Override + protected Type getDataType() { + return TypeToken.getParameterized(KycSettingData.class).getType(); + } + + @Override + protected void onSuccess(GenericResponseDataModel t) { + + if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { + + } else + view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + + } + + @Override + protected void unauthorizedAccess(String message) { + gateway.clearAllUserData(); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); + + } + } + public class KycSettingObserver extends GenericApiObserverResponseV2 { @Override @@ -851,7 +887,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter @Override public void sendFullKYCDataUpdate() { - postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getForm1PostData(gateway.getUserID(), trustDockId), view::showDocumentDetailForm); + postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getForm1PostData(gateway.getUserID(), trustDockId), view::showTermsAndCondition); } private void postKYCFormToServer(KYCRelatedDataDTO kycRelatedDataDTO, KYCRequestDataDTO requestDataDTO, Runnable endWithTask) { diff --git a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java index ae69a72b..86035ef1 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java +++ b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java @@ -20,7 +20,7 @@ import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragme import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel; -import com.remit.jmecustomer.features.newkyc.newCustomer.view.choose.ChooseKycFragment; +import com.remit.jmecustomer.features.kyc.newCustomer.view.choose.ChooseKycFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.termsAndCondition.NewKycTermsAndConditionFragment; @@ -281,7 +281,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa @Override public void showTermsAndCondition() { - kycFormViewPager.setCurrentItem(2); + kycFormViewPager.setCurrentItem(3); } @Override diff --git a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt index a028c921..f1a766be 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt @@ -34,6 +34,7 @@ class ChooseKycFragment(private var options: List