From dfde911e30a30afd7b5c58f5938add938fb9b0e0 Mon Sep 17 00:00:00 2001 From: Santosh Bhandary Date: Mon, 23 Nov 2020 08:35:39 +0545 Subject: [PATCH] back required functionality feature added in new Customer Kyc --- app/src/main/AndroidManifest.xml | 7 +- .../view/OnFragmentSelectedListener.java | 5 + .../presenter/ChangePassNPinViewModel.java | 6 +- .../presenter/ChangePasswordV2Presenter.java | 6 +- .../presenter/KYCV3PresenterInterface.java | 7 +- .../newCustomer/presenter/KYCV3ViewModel.java | 93 ++++++++++++------- .../kyc/newCustomer/view/KYCV3Activity.java | 16 ++-- .../view/documents/KYCIDTypeFragment.java | 31 +++++-- .../view/personal/CustomerDetailFragment.java | 17 +++- .../login/presenter/LoginV2Presenter.java | 2 +- .../RecipientListingPresenter.java | 7 +- .../ExistingCustomerRegisterV2Presenter.java | 4 +- .../presenter/NewRegisterV2Presenter.java | 5 +- .../view/SendMoneyRequestSummaryActivity.java | 3 + app/src/main/res/values/strings.xml | 2 +- 15 files changed, 146 insertions(+), 65 deletions(-) create mode 100644 app/src/main/java/com/swifttech/remit/android/common/view/OnFragmentSelectedListener.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b08721ca..4668d375 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,12 @@ android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning" tools:replace="android:allowBackup,android:supportsRtl"> - + + (true, null)); return true; @@ -176,7 +176,7 @@ public class ChangePassNPinViewModel extends BaseViewModel implements ChangePass boolean isNewPasswordValid(CharSequence password) { - if (password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ this.newPassword = password.toString(); changePassNPinLiveData.setNewPasswordInputLiveData(new FormInputStateDTO<>(true, null)); return true; @@ -189,7 +189,7 @@ public class ChangePassNPinViewModel extends BaseViewModel implements ChangePass } boolean isConfirmPasswordValid(CharSequence password) { - if (password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ this.confirmPassword = password.toString(); changePassNPinLiveData.setConfirmPasswordInputLiveData(new FormInputStateDTO<>(true, null)); return true; diff --git a/app/src/main/java/com/swifttech/remit/android/features/changepassword/presenter/ChangePasswordV2Presenter.java b/app/src/main/java/com/swifttech/remit/android/features/changepassword/presenter/ChangePasswordV2Presenter.java index cfdb2882..1f39764b 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/changepassword/presenter/ChangePasswordV2Presenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/changepassword/presenter/ChangePasswordV2Presenter.java @@ -103,7 +103,7 @@ public class ChangePasswordV2Presenter extends BaseViewModel implements ChangePa private String confirmPassword; boolean isCurrentPasswordValid(CharSequence password) { - if (password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ this.currentPassword = password.toString(); changePasswordLiveData.setCurrentPasswordInputLiveData(new FormInputStateDTO<>(true, null)); return true; @@ -117,7 +117,7 @@ public class ChangePasswordV2Presenter extends BaseViewModel implements ChangePa boolean isNewPasswordValid(CharSequence password) { - if (password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ this.newPassword = password.toString(); changePasswordLiveData.setNewPasswordInputLiveData(new FormInputStateDTO<>(true, null)); return true; @@ -130,7 +130,7 @@ public class ChangePasswordV2Presenter extends BaseViewModel implements ChangePa } boolean isConfirmPasswordValid(CharSequence password) { - if (password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ this.confirmPassword = password.toString(); changePasswordLiveData.setConfirmPasswordInputLiveData(new FormInputStateDTO<>(true, null)); return true; diff --git a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java index 2d08458f..8018b614 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java +++ b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java @@ -15,7 +15,7 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface { CustomerDetailViewLiveData getCustomerRelatedViewEvents(CustomerDetailViewLiveData.CustomerDetailViewBinding viewBindings); - KYCIDTypeViewLiveData getKYCIdTypeViewEvents(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings); + KYCIDTypeViewLiveData getKYCIdTypeViewEvents(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings,Boolean isBackRequired); void checkImageStatus(int requestCode, int resultCode, File data); @@ -30,6 +30,7 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface { List getBusinessTypeList(); List getIdTypeList(); + List getPurposeOfRegistrationList(); List getAdditionalIdTypeList(); @@ -62,6 +63,10 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface { } + interface KYCV3CustomerDocumentViewContractInterface extends BaseContractInterface { + void showHideAdditionalBack(Boolean isBackRequired); + } + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3ViewModel.java b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3ViewModel.java index b6854c4b..e8f6c86a 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3ViewModel.java +++ b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/presenter/KYCV3ViewModel.java @@ -37,7 +37,9 @@ import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.functions.Function4; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; import io.reactivex.subjects.PublishSubject; @@ -62,7 +64,8 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter private PublishSubject form1ValidationSubject; private PublishSubject form2ValidationSubject; private CustomerDetailViewLiveData.CustomerDetailViewBinding viewBindings; - private Boolean isBackAdditionalRequired; + private Boolean isBackAdditionalRequired=true; + public KYCV3ViewModel(KYCV3ViewContractInterface view, KYCV3GatewayInterface gatewayInterface, FileDownloadGateway fileDownloadGateway, LoginV2InteractorInterface.Login2GatewayInterface loginGateway, String userId, String userPwd) { this.compositeDisposable = new CompositeDisposable(); @@ -158,38 +161,64 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter } @Override - public KYCIDTypeViewLiveData getKYCIdTypeViewEvents(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings) { - bindKYCIdTypeView(viewBindings); + public KYCIDTypeViewLiveData getKYCIdTypeViewEvents(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings,Boolean isBackRequired) { + bindKYCIdTypeView(viewBindings,isBackRequired); return idTypeLiveData; } - private void bindKYCIdTypeView(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings) { - viewSubscriptions.add( - Observable.combineLatest( - viewBindings.getIdTypeFrontDocImageLoadedResultObservable(), - viewBindings.getIdTypeBackDocImageLoadedResultObservable(), - viewBindings.getAdditionalidTypeDocImageLoadedResultObservable(), - viewBindings.getAdditionalidBackTypeDocImageLoadedResultObservable(), - (isFrontIdPictureValid, isBackIdPictureValid, isAdditionalIdValid, isAdditionalIdBackValid) -> - isFrontIdPictureValid && isBackIdPictureValid && isAdditionalIdValid && isAdditionalIdBackValid - ).subscribeWith(new DisposableObserver() { - - @Override - public void onNext(Boolean form2ValidationResult) { - form2ValidationSubject.onNext(form2ValidationResult); - } - - @Override - public void onError(Throwable e) { - form2ValidationSubject.onNext(false); - } - - @Override - public void onComplete() { - - } - }) - ); + private void bindKYCIdTypeView(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings,Boolean isBackRequired) { + if(isBackRequired){ + viewSubscriptions.add( + Observable.combineLatest( + viewBindings.getIdTypeFrontDocImageLoadedResultObservable(), + viewBindings.getIdTypeBackDocImageLoadedResultObservable(), + viewBindings.getAdditionalidTypeDocImageLoadedResultObservable(), + viewBindings.getAdditionalidBackTypeDocImageLoadedResultObservable(), + (isFrontIdPictureValid, isBackIdPictureValid, isAdditionalIdValid, isAdditionalIdBackValid) -> isFrontIdPictureValid && isBackIdPictureValid && isAdditionalIdValid && isAdditionalIdBackValid + ).subscribeWith(new DisposableObserver() { + + @Override + public void onNext(Boolean form2ValidationResult) { + form2ValidationSubject.onNext(form2ValidationResult); + } + + @Override + public void onError(Throwable e) { + form2ValidationSubject.onNext(false); + } + + @Override + public void onComplete() { + + } + }) + ); + }else{ + viewSubscriptions.add( + Observable.combineLatest( + viewBindings.getIdTypeFrontDocImageLoadedResultObservable(), + viewBindings.getIdTypeBackDocImageLoadedResultObservable(), + viewBindings.getAdditionalidTypeDocImageLoadedResultObservable(), + (isFrontIdPictureValid, isBackIdPictureValid, isAdditionalIdValid) -> isFrontIdPictureValid && isBackIdPictureValid && isAdditionalIdValid) + .subscribeWith(new DisposableObserver() { + + @Override + public void onNext(Boolean form2ValidationResult) { + form2ValidationSubject.onNext(form2ValidationResult); + } + + @Override + public void onError(Throwable e) { + form2ValidationSubject.onNext(false); + } + + @Override + public void onComplete() { + + } + }) + ); + } } @@ -197,7 +226,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter data.seedInitialData(); data.formatToUpperCase(); this.validator = new CustomerDetailViewValidator(data); - updateCustomerDetailData(data); handleDocImages(data); @@ -234,6 +262,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter } IDTextDTO additionalId= data.getAdditionalIdTypeFromId(personalInfoDTO.getAdditionalIdType()); + if(additionalId!=null){ + isBackAdditionalRequired=additionalId.getBackRequired(); + } customerDetailLiveData.getEmployerNameLiveData().postValue(new FormInputStateDTO<>(true, null, personalInfoDTO.getEmployeerName())); customerDetailLiveData.getOccupationsLiveData().postValue(new FormInputStateDTO<>(true, null, occupation)); customerDetailLiveData.getSourceOfFundLiveData().postValue(new FormInputStateDTO<>(true, null,sourceOfFund )); diff --git a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java index 223fa39d..1c0dfccd 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java +++ b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java @@ -16,10 +16,10 @@ import androidx.viewpager.widget.ViewPager; import com.swifttech.remit.android.R; import com.swifttech.remit.android.base.BaseActivity; -import com.swifttech.remit.android.common.view.AnswerInputDialog; -import com.swifttech.remit.android.features.customersupport.view.CustomerSupportFragment; import com.swifttech.remit.android.common.customwidgets.GenericViewPagerAdapter; import com.swifttech.remit.android.common.customwidgets.GmeTextView; +import com.swifttech.remit.android.common.view.AnswerInputDialog; +import com.swifttech.remit.android.features.customersupport.view.CustomerSupportFragment; import com.swifttech.remit.android.features.kyc.newCustomer.KYCV3ViewModelFactory; import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3ViewModel; @@ -128,20 +128,22 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa } - public void onDocumentDetailScreenShown() { + public void onDocumentDetailScreenShown(int position) { TransitionManager.beginDelayedTransition(kyc_header_view); page1TxtView.setTextColor(ContextCompat.getColor(page1TxtView.getContext(), R.color.white)); page1TxtView.setBackgroundResource(R.drawable.circular_valid_bg); page2TxtView.setTextColor(ContextCompat.getColor(page2TxtView.getContext(), R.color.white)); page2TxtView.setBackgroundResource(R.drawable.circular_valid_bg); + Fragment activeFragment = kycViewPagerAdapter.getItem(position); + ((KYCIDTypeFragment)activeFragment).onFragmentedSelected(); } - public void onCustomerRegistration() { + public void onCustomerRegistration(int position) { TransitionManager.beginDelayedTransition(kyc_header_view); page1TxtView.setTextColor(ContextCompat.getColor(page1TxtView.getContext(), R.color.white)); @@ -150,6 +152,8 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa page2TxtView.setTextColor(ContextCompat.getColor(page2TxtView.getContext(), R.color.dark_gray)); page2TxtView.setBackgroundResource(R.drawable.circular_empty_bg); + Fragment activeFragment = kycViewPagerAdapter.getItem(position); + ((CustomerDetailFragment)activeFragment).onFragmentedSelected(); } @@ -251,10 +255,10 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa public void onPageSelected(int position) { switch (position) { case 0: - onCustomerRegistration(); + onCustomerRegistration(position); break; case 1: - onDocumentDetailScreenShown(); + onDocumentDetailScreenShown(position); break; } diff --git a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java index 10ad657e..0ac3a128 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java +++ b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java @@ -11,6 +11,7 @@ import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.provider.Settings; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -33,6 +34,8 @@ import com.swifttech.remit.android.BuildConfig; import com.swifttech.remit.android.R; import com.swifttech.remit.android.base.BaseFragment; import com.swifttech.remit.android.common.model.FormInputStateDTO; +import com.swifttech.remit.android.common.view.OnFragmentSelectedListener; +import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3ViewModel; import com.swifttech.remit.android.utils.other.Utility; import com.google.android.material.snackbar.Snackbar; @@ -50,7 +53,7 @@ import io.reactivex.subjects.PublishSubject; import static android.app.Activity.RESULT_OK; -public class KYCIDTypeFragment extends BaseFragment { +public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDocumentViewContractInterface, OnFragmentSelectedListener { public static final int REQUEST_PERMISSION_FACE_PHOTO = 2003; @@ -216,6 +219,7 @@ public class KYCIDTypeFragment extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + Log.e("===>","KYCIDTypeFragment onCreateView called"); return inflater.inflate(R.layout.fragment_kyc_document, container, false); } @@ -225,18 +229,17 @@ public class KYCIDTypeFragment extends BaseFragment { ButterKnife.bind(this, view); init(); performDefaultAction(savedInstanceState); + Log.e("===>","KYCIDTypeFragment onViewCreated called"); } private void init() { - kycv3ViewModel = new ViewModelProvider(requireActivity()).get(KYCV3ViewModel.class); - } private void performDefaultAction(Bundle savedInstance) { - subscribeToIdTypeImageLiveData(getIDTypeViewBinding()); + subscribeToIdTypeImageLiveData(getIDTypeViewBinding(),true); } @@ -257,8 +260,8 @@ public class KYCIDTypeFragment extends BaseFragment { additionalIdBackLoadedSubject ); } - private void subscribeToIdTypeImageLiveData(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings) { - KYCIDTypeViewLiveData liveData = kycv3ViewModel.getKYCIdTypeViewEvents(viewBindings); + private void subscribeToIdTypeImageLiveData(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings,Boolean isBackRequired) { + KYCIDTypeViewLiveData liveData = kycv3ViewModel.getKYCIdTypeViewEvents(viewBindings,isBackRequired); liveData.getIdTypeFrontImageLiveData().observe(getViewLifecycleOwner(), this::onFrontIdImageReceived); liveData.getIdTypeBackImageLiveData().observe(getViewLifecycleOwner(), this::onBackIdImageReceived); @@ -839,7 +842,19 @@ public class KYCIDTypeFragment extends BaseFragment { } + @Override + public void showHideAdditionalBack(Boolean isBackRequired) { + //@Todo + } - - + @Override + public void onFragmentedSelected() { + subscribeToIdTypeImageLiveData(getIDTypeViewBinding(),kycv3ViewModel.getBackAdditionalRequired()); + if(kycv3ViewModel.getBackAdditionalRequired()){ + additionalIDBackImageViewContainer.setVisibility(View.VISIBLE); + }else{ + additionalIDBackImageViewContainer.setVisibility(View.GONE); + } + btnSubmit3.setEnabled(false); + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java index 8b1ee971..117c185d 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java +++ b/app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java @@ -20,6 +20,7 @@ import com.swifttech.remit.android.R; import com.swifttech.remit.android.base.BaseFragment; import com.swifttech.remit.android.common.customwidgets.common.GenericTextListingDialog; import com.swifttech.remit.android.common.model.FormInputStateDTO; +import com.swifttech.remit.android.common.view.OnFragmentSelectedListener; import com.swifttech.remit.android.features.kyc.existingCustomer.model.ExistingIDTextDTO; import com.swifttech.remit.android.features.kyc.newCustomer.model.IDTextDTO; import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; @@ -35,7 +36,7 @@ import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import io.reactivex.subjects.PublishSubject; -public class CustomerDetailFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDetailViewContractInterface { +public class CustomerDetailFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDetailViewContractInterface, OnFragmentSelectedListener { @BindView(R.id.rootView) @@ -125,6 +126,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + Log.e("===>","CustomerDetailFragment onCreateView called"); return inflater.inflate(R.layout.fragment_kyc_customer_detail, container, false); } @@ -134,6 +136,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present ButterKnife.bind(this, view); init(); performDefaultAction(savedInstanceState); + Log.e("===>","CustomerDetailFragment onViewCreated called"); } @@ -292,6 +295,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present if (data.isValid()) { if (data.hasData()) { ed_additionalIdType.setText(data.getData().getText()); + kycv3ViewModel.setBackAdditionalRequired(data.getData().getBackRequired()); additionalIdTypeSelectSubject.onNext(data.getData()); } } @@ -412,11 +416,12 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present additionalIdTypeSelectionDialog.setData(kycv3ViewModel.getAdditionalIdTypeList()); additionalIdTypeSelectionDialog.disableSearch(true); - additionalIdTypeSelectionDialog.setListener(selectedIDType -> + additionalIdTypeSelectionDialog.setListener(selectedAdditionalTypeIDType -> { additionalIdTypeSelectionDialog.dismiss(); - ed_additionalIdType.setText(selectedIDType.toString()); - additionalIdTypeSelectSubject.onNext(selectedIDType); + ed_additionalIdType.setText(selectedAdditionalTypeIDType.toString()); + kycv3ViewModel.setBackAdditionalRequired(selectedAdditionalTypeIDType.getBackRequired()); + additionalIdTypeSelectSubject.onNext(selectedAdditionalTypeIDType); }); additionalIdTypeSelectionDialog.setHintAndTitle(getString(R.string.searchAdditionalIdType_text), getString(R.string.selectAdditionalIdType_text), getString(R.string.no_result_found_text)); @@ -529,5 +534,9 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present if (!purposeOfRegisgtrationDialog.isAdded()) purposeOfRegisgtrationDialog.show(getActivity().getSupportFragmentManager(), "PURPOSE_OF_REGISTRATION_CHOOSER"); } + + @Override + public void onFragmentedSelected() { + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/login/presenter/LoginV2Presenter.java b/app/src/main/java/com/swifttech/remit/android/features/login/presenter/LoginV2Presenter.java index 8f1ed6a4..cfb17a4e 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/login/presenter/LoginV2Presenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/login/presenter/LoginV2Presenter.java @@ -198,7 +198,7 @@ public class LoginV2Presenter extends BaseViewModel implements LoginV2PresenterI } private boolean validatePassword(CharSequence password) { - if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")){ + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ loginViewLiveData.setPasswordInputLiveData(new FormInputStateDTO<>(true, "")); this.password = password.toString(); return true; diff --git a/app/src/main/java/com/swifttech/remit/android/features/recipientlisting/presenter/recipientlisting/RecipientListingPresenter.java b/app/src/main/java/com/swifttech/remit/android/features/recipientlisting/presenter/recipientlisting/RecipientListingPresenter.java index 0f2036eb..77f0ecdc 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/recipientlisting/presenter/recipientlisting/RecipientListingPresenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/recipientlisting/presenter/recipientlisting/RecipientListingPresenter.java @@ -163,7 +163,12 @@ public class RecipientListingPresenter extends BasePresenter implements Recipien @Override public void onRecipentUpdatedSucesss(String receiverId) { - getAllRecipientList(() -> searchReceiverById(receiverId)); + getAllRecipientList(new Runnable() { + @Override + public void run() { +// RecipientListingPresenter.this.searchReceiverById(receiverId); + } + }); } public class RecipientListingObserver extends GenericApiObserverResponseV2 { diff --git a/app/src/main/java/com/swifttech/remit/android/features/registerv2/existingcustomer/presenter/ExistingCustomerRegisterV2Presenter.java b/app/src/main/java/com/swifttech/remit/android/features/registerv2/existingcustomer/presenter/ExistingCustomerRegisterV2Presenter.java index c7a87973..afca9b50 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/registerv2/existingcustomer/presenter/ExistingCustomerRegisterV2Presenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/registerv2/existingcustomer/presenter/ExistingCustomerRegisterV2Presenter.java @@ -351,7 +351,7 @@ public class ExistingCustomerRegisterV2Presenter extends BaseViewModel implement } public boolean validatePassword(CharSequence password) { - if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ existingRegisterSubmitViewLiveData.setNewPasswordInputLiveData(new FormInputStateDTO<>(true, "")); this.password = password.toString(); return true; @@ -363,7 +363,7 @@ public class ExistingCustomerRegisterV2Presenter extends BaseViewModel implement } public boolean validateConfirmPassword(CharSequence password) { - if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ existingRegisterSubmitViewLiveData.setConfirmPasswordInputLiveData(new FormInputStateDTO<>(true, "")); this.confirmPassword = password.toString(); return true; diff --git a/app/src/main/java/com/swifttech/remit/android/features/registerv2/newcustomer/presenter/NewRegisterV2Presenter.java b/app/src/main/java/com/swifttech/remit/android/features/registerv2/newcustomer/presenter/NewRegisterV2Presenter.java index 827bcc5d..5e9dbb04 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/registerv2/newcustomer/presenter/NewRegisterV2Presenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/registerv2/newcustomer/presenter/NewRegisterV2Presenter.java @@ -289,7 +289,7 @@ public class NewRegisterV2Presenter extends BaseViewModel implements NewRegister } private boolean validatePassword(CharSequence password) { - if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ newExistingRegisterViewLiveData.setPasswordInputLiveData(new FormInputStateDTO<>(true, "")); this.password = password.toString(); return true; @@ -301,7 +301,7 @@ public class NewRegisterV2Presenter extends BaseViewModel implements NewRegister } public boolean validateConfirmPassword(CharSequence password) { - if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,24}$")) { + if(password!=null && password.toString().trim().matches("^(?=.*[A-Z])(?=.*[0-9]).{8,24}$")){ newExistingRegisterViewLiveData.setConfirmPasswordInputLiveData(new FormInputStateDTO<>(true, "")); this.confirmPassword = password.toString(); return true; @@ -313,7 +313,6 @@ public class NewRegisterV2Presenter extends BaseViewModel implements NewRegister } } - public class RegistrationObserver extends GenericApiObserverResponse { @Override diff --git a/app/src/main/java/com/swifttech/remit/android/features/sendmoney/view/SendMoneyRequestSummaryActivity.java b/app/src/main/java/com/swifttech/remit/android/features/sendmoney/view/SendMoneyRequestSummaryActivity.java index 70834ee1..e575127d 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/sendmoney/view/SendMoneyRequestSummaryActivity.java +++ b/app/src/main/java/com/swifttech/remit/android/features/sendmoney/view/SendMoneyRequestSummaryActivity.java @@ -189,10 +189,13 @@ public class SendMoneyRequestSummaryActivity extends BaseActivity implements Se payoutAmountTextView.setText(recieptData.getPAmount()); if (isRequestedBySendMoney) { gmeControlNumberTextView.setVisibility(View.GONE); + txv_note.setVisibility(View.GONE); } else { gmeControlNumberTextView.setText(getString(R.string.jmeControlNum_text)+String.format(" %s", recieptData.getControlNo())); controlId=recieptData.getControlNo(); + gmeControlNumberTextView.setVisibility(View.VISIBLE); + txv_note.setVisibility(View.VISIBLE); } transactionDateTextView.setText(recieptData.getTrnDate()); receiverTextView.setText(name); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7a16b830..e95e086d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1019,5 +1019,5 @@ All the configurations are done from backend web application system which allows to JME within next working day to transmit this request.\nAfter payment please check notices to get JME Number for this transfer. REQUEST SUMMARY Payout Agent/Bank - Password should contain atleast one number,one uppercase letter, one lowercase letter and minimum 8 Characters + Password should contain atleast one number,one uppercase letter and minimum 8 Characters