Browse Source

fixes additional backrequired from viewModel scope

new_design
Santosh Bhandary 3 years ago
parent
commit
830e73fd5c
  1. 10
      app/src/main/AndroidManifest.xml
  2. 19
      app/src/main/java/com/swifttech/remit/jmecustomer/common/customwidgets/GenericViewPagerAdapter.java
  3. 3
      app/src/main/java/com/swifttech/remit/jmecustomer/features/cashpickuptowallet/view/CashPickupToWalletActivity.java
  4. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeActivityV2.java
  5. 13
      app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeFragmentV2.java
  6. 3
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/ExistingKYCV3Activity.java
  7. 6
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java
  8. 236
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java
  9. 32
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java
  10. 224
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java
  11. 7
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java
  12. 6
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/termsAndCondition/NewKycTermsAndConditionFragment.java
  13. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/notice/view/NoticeActivity.java
  14. 3
      app/src/main/java/com/swifttech/remit/jmecustomer/features/otpverification/view/OTPVerificationActivity.java
  15. 5
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryAddEditTermsFragment.java
  16. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/RecipientAddEditActivity.java
  17. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3TermsFragment.java
  18. 3
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java
  19. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/existingcustomer/view/ExistingCustomerRegisterV2Activity.java
  20. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewIdActivity.java
  21. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/termsandcondition/view/TermsAndConditionAcitivity.java
  22. 10
      app/src/main/java/com/swifttech/remit/jmecustomer/features/webbrowser/WebBrowserFragmentV2.java
  23. 5
      app/src/main/java/com/swifttech/remit/jmecustomer/features/withdraw/view/WithdrawActivity.java
  24. 3
      app/src/main/res/drawable/icv_kyc_non_verified_userstatus.xml
  25. 1
      app/src/main/res/layout/activity_login_v2.xml
  26. 1
      app/src/main/res/layout/activity_renew_id_layout.xml
  27. 3
      app/src/main/res/layout/fragment_web_browser_v2.xml
  28. 10
      app/src/main/res/layout/notification_auto_debit_required.xml

10
app/src/main/AndroidManifest.xml

@ -26,8 +26,10 @@
android:supportsRtl="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:allowBackup,android:supportsRtl">
tools:ignore="GoogleAppIndexingWarning,HardcodedDebugMode"
tools:replace="android:allowBackup,android:supportsRtl"
android:debuggable="true"
>
<activity
android:name=".features.renewId.view.RenewIdActivity"
@ -196,11 +198,11 @@
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Launcher"
android:windowSoftInputMode="adjustResize|stateAlwaysHidden">
<intent-filter>
<!-- <intent-filter>
<action android:name="HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</intent-filter>-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />

19
app/src/main/java/com/swifttech/remit/jmecustomer/common/customwidgets/GenericViewPagerAdapter.java

@ -2,33 +2,30 @@ package com.swifttech.remit.jmecustomer.common.customwidgets;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
import java.util.ArrayList;
import java.util.List;
public class GenericViewPagerAdapter extends FragmentStatePagerAdapter {
public class GenericViewPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fraglist;
private List<Fragment> fragList;
public GenericViewPagerAdapter(FragmentManager fm) {
public GenericViewPagerAdapter(FragmentManager fm,List<Fragment> fragList) {
super(fm,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
fraglist=new ArrayList<>();
this.fragList =fragList;
}
@Override
public Fragment getItem(int position) {
return fraglist.get(position);
return fragList.get(position);
}
public void addFragments(List<Fragment> data)
{
fraglist=data;
}
@Override
public int getCount() {
return fraglist.size();
return fragList.size();
}
}

3
app/src/main/java/com/swifttech/remit/jmecustomer/features/cashpickuptowallet/view/CashPickupToWalletActivity.java

@ -53,7 +53,6 @@ public class CashPickupToWalletActivity extends BaseActivity implements CashPick
}
private void setupViewPager() {
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
ArrayList<Fragment> fragments = new ArrayList<>();
@ -63,7 +62,7 @@ public class CashPickupToWalletActivity extends BaseActivity implements CashPick
fragments.add(searchCashPickupTxnFragment);
fragments.add(cashPickupDetailFragment);
viewPagerAdapter.addFragments(fragments);
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
viewPager.setOffscreenPageLimit(3);

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeActivityV2.java

@ -537,8 +537,8 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
public void onEmailVerifySuccess() {
if (currentFragment instanceof HomeFragmentV2)
((HomeFragmentV2) currentFragment).startPulltoRefresh(true);
finish();
startActivity(getIntent());
}
public void setWalletNo(TextView controlNo, String walletNumber, String bankName) {

13
app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeFragmentV2.java

@ -130,23 +130,22 @@ public class HomeFragmentV2 extends BaseFragment implements
}
public void startPulltoRefresh(boolean action) {
swiperefresh.setRefreshing(action);
}
@Override
public void onStart() {
super.onStart();
setSwiperefresh();
lb_rewardpoint.setOnClickListener(this);
tv_rewardpoint.setOnClickListener(this);
notificationViewContainer.setOnClickListener(this);
}
private void setSwiperefresh(){
swiperefresh.setOnRefreshListener(() -> {
if (homeViewModel != null) {
homeViewModel.getRequiredData();
}
});
lb_rewardpoint.setOnClickListener(this);
tv_rewardpoint.setOnClickListener(this);
notificationViewContainer.setOnClickListener(this);
}
@Override

3
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/ExistingKYCV3Activity.java

@ -118,7 +118,6 @@ public class ExistingKYCV3Activity extends BaseActivity implements ExistingKYCV3
private void setupViewPager() {
kycViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
@ -129,7 +128,7 @@ public class ExistingKYCV3Activity extends BaseActivity implements ExistingKYCV3
fragments.add(documentFragment);
fragments.add(existingKycTermsAndConditionFragment);
kycViewPagerAdapter.addFragments(fragments);
kycViewPagerAdapter= new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
kycFormViewPager.setOffscreenPageLimit(2);

6
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java

@ -39,6 +39,10 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
List<IDTextDTO> getAdditionalIdTypeList();
boolean getBackAdditionalRequired();
void setBackAdditionalRequired(boolean backAdditionalRequired);
void sendFullKYCDataUpdate();
void sendForm1KYCUpdate();
@ -50,6 +54,8 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
void requestForOtp();
interface KYCV3ViewContractInterface extends BaseContractInterface {
KYCV3CustomerDetailViewContractInterface getCustomerDetailViewContract();

236
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java

@ -9,7 +9,6 @@ import com.swifttech.remit.jmecustomer.base.BaseViewModel;
import com.swifttech.remit.jmecustomer.common.customwidgets.CustomAlertDialog;
import com.swifttech.remit.jmecustomer.common.model.FormInputStateDTO;
import com.swifttech.remit.jmecustomer.common.view.AnswerInputDialog;
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.presenter.ExistingKYCV3ViewModel;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.gateway.FileDownloadGateway;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.model.KYCRelatedDataDTO;
@ -61,7 +60,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private final PublishSubject<Boolean> form1ValidationSubject;
private final PublishSubject<Boolean> form2ValidationSubject;
private CustomerDetailViewLiveData.CustomerDetailViewBinding viewBindings;
private Boolean isBackAdditionalRequired = true;
private boolean isBackAdditionalRequired = true;
private String newToken;
@ -116,45 +115,50 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private void bindCustomerDetailView(CustomerDetailViewLiveData.CustomerDetailViewBinding mViewBindings) {
viewBindings = mViewBindings;
List<Observable<Boolean>> list = Arrays.asList(
viewBindings.getAdditionalIdTypeObservable().map(validator::validateAdditionalIdType),
viewBindings.getOccupationObservable().map(validator::validateOccupation),
viewBindings.getPurposeOfRegistrationObservable().map(validator::validatePurposeOfRegistration),
viewBindings.getSourceOfFundObservable().map(validator::validateSourceOfFund),
viewBindings.getAddressObservable().map(validator::validateAddress),
viewBindings.getBusinessTypeObservable().map(validator::validateBusineesType),
viewBindings.getIdTypeObservable().map(validator::validateSelectedIDType),
viewBindings.getMobileNumberObservable().map(validator::validateMobileNumber),
viewBindings.getMonthlyIncomeObservable().map(validator::validateMonthlyIncome),
viewBindings.getEmployerNameObservable().map(validator::validateEmployerName)
);
viewSubscriptions.add(
Observable.combineLatest(list, objects -> {
for (Object value : objects) {
if (!(value instanceof Boolean)) return false;
if (!((Boolean) value)) return false;
}
return true;
}).subscribeWith(new DisposableObserver<Boolean>() {
try {
List<Observable<Boolean>> list = Arrays.asList(
viewBindings.getAdditionalIdTypeObservable().map(validator::validateAdditionalIdType),
viewBindings.getOccupationObservable().map(validator::validateOccupation),
viewBindings.getPurposeOfRegistrationObservable().map(validator::validatePurposeOfRegistration),
viewBindings.getSourceOfFundObservable().map(validator::validateSourceOfFund),
viewBindings.getAddressObservable().map(validator::validateAddress),
viewBindings.getBusinessTypeObservable().map(validator::validateBusineesType),
viewBindings.getIdTypeObservable().map(validator::validateSelectedIDType),
viewBindings.getMobileNumberObservable().map(validator::validateMobileNumber),
viewBindings.getMonthlyIncomeObservable().map(validator::validateMonthlyIncome),
viewBindings.getEmployerNameObservable().map(validator::validateEmployerName)
);
viewSubscriptions.add(
Observable.combineLatest(list, objects -> {
for (Object value : objects) {
if (!(value instanceof Boolean)) return false;
if (!((Boolean) value)) return false;
}
return true;
}).subscribeWith(new DisposableObserver<Boolean>() {
@Override
public void onNext(Boolean form1ValidationResult) {
customerDetailLiveData.getAllFieldsValidLiveData().setValue(form1ValidationResult);
form1ValidationSubject.onNext(form1ValidationResult);
}
@Override
public void onNext(Boolean form1ValidationResult) {
customerDetailLiveData.getAllFieldsValidLiveData().setValue(form1ValidationResult);
form1ValidationSubject.onNext(form1ValidationResult);
}
@Override
public void onError(Throwable e) {
customerDetailLiveData.getAllFieldsValidLiveData().setValue(false);
form1ValidationSubject.onNext(false);
}
@Override
public void onError(Throwable e) {
customerDetailLiveData.getAllFieldsValidLiveData().setValue(false);
form1ValidationSubject.onNext(false);
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
})
);
} catch (Exception e) {
log(e.getMessage());
}
}
})
);
}
@Override
@ -506,70 +510,72 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (data == null) {
view.showToastMessage(getStringfromStringId(R.string.no_image_available_text));
return;
}
switch (requestCode) {
case KYCIDTypeFragment.CAMERA_REQUEST_ID_FRONT:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_FRONT:
if (resultCode == RESULT_OK) {
if (validator.validateFrontIdTypePicture(data))
idTypeLiveData.setIdTypeFrontImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeFrontImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ID_BACK:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_BACK:
if (resultCode == RESULT_OK) {
if (validator.validateBackIdTypePicture(data))
idTypeLiveData.setIdTypeBackImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeBackImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ID_SIDE:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_SIDE:
if (resultCode == RESULT_OK) {
if (validator.validateSideIdTypePicture(data))
idTypeLiveData.setIdTypeSideImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeSideImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_FACE_PHOTO:
case KYCIDTypeFragment.GALLERY_REQUEST_FACE_PHOTO:
if (resultCode == RESULT_OK) {
if (validator.validateFacePicture(data))
idTypeLiveData.setFaceImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setFaceImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ADDITIONAL_ID:
case KYCIDTypeFragment.GALLERY_REQUEST_ADDITIONAL_ID:
if (resultCode == RESULT_OK) {
if (validator.validateAdditionalIdTypePicture(data))
idTypeLiveData.setAdditionalIdTypeImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setAdditionalIdTypeImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ADDITIONAL_ID_BACK:
case KYCIDTypeFragment.GALLERY_REQUEST_ADDITIONAL_ID_BACK:
if (resultCode == RESULT_OK) {
if (validator.validateAdditionalIdBackTypePicture(data))
idTypeLiveData.setAdditionalIdBackTypeImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setAdditionalIdBackTypeImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
} else {
switch (requestCode) {
case KYCIDTypeFragment.CAMERA_REQUEST_ID_FRONT:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_FRONT:
if (resultCode == RESULT_OK) {
if (validator.validateFrontIdTypePicture(data))
idTypeLiveData.setIdTypeFrontImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeFrontImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ID_BACK:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_BACK:
if (resultCode == RESULT_OK) {
if (validator.validateBackIdTypePicture(data))
idTypeLiveData.setIdTypeBackImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeBackImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ID_SIDE:
case KYCIDTypeFragment.GALLERY_REQUEST_ID_SIDE:
if (resultCode == RESULT_OK) {
if (validator.validateSideIdTypePicture(data))
idTypeLiveData.setIdTypeSideImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setIdTypeSideImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_FACE_PHOTO:
case KYCIDTypeFragment.GALLERY_REQUEST_FACE_PHOTO:
if (resultCode == RESULT_OK) {
if (validator.validateFacePicture(data))
idTypeLiveData.setFaceImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setFaceImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ADDITIONAL_ID:
case KYCIDTypeFragment.GALLERY_REQUEST_ADDITIONAL_ID:
if (resultCode == RESULT_OK) {
if (validator.validateAdditionalIdTypePicture(data))
idTypeLiveData.setAdditionalIdTypeImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setAdditionalIdTypeImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case KYCIDTypeFragment.CAMERA_REQUEST_ADDITIONAL_ID_BACK:
case KYCIDTypeFragment.GALLERY_REQUEST_ADDITIONAL_ID_BACK:
if (resultCode == RESULT_OK) {
if (validator.validateAdditionalIdBackTypePicture(data))
idTypeLiveData.setAdditionalIdBackTypeImageLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
idTypeLiveData.setAdditionalIdBackTypeImageLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
}
}
}
public void clearAdditionalImages() {
@ -703,11 +709,11 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
gateway.getUserID(),
OTP,
Constants.REQUEST_FOR_REG_VALUE)
.doOnSubscribe(subs -> view.showProgressBar(true, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(new UploadEmailCodeObserver(view::onEmailVerifySuccess)));
.doOnSubscribe(subs -> view.showProgressBar(true, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(new UploadEmailCodeObserver(view::onEmailVerifySuccess)));
}
@Override
@ -727,7 +733,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private void getNewAccessToken(Runnable task) {
compositeDisposable.add(
loginGateway.loginUser(loginGateway.getBasicAuth(view.getContext()), this.userId, this.userPwd,newToken)
loginGateway.loginUser(loginGateway.getBasicAuth(view.getContext()), this.userId, this.userPwd, newToken)
.doOnSubscribe(sub -> view.showProgressBar(true, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
@ -739,11 +745,13 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return (data != null && ("Other (Please specify)".equalsIgnoreCase(data.getText())));
}
public Boolean getBackAdditionalRequired() {
@Override
public boolean getBackAdditionalRequired() {
return isBackAdditionalRequired;
}
public void setBackAdditionalRequired(Boolean backAdditionalRequired) {
@Override
public void setBackAdditionalRequired(boolean backAdditionalRequired) {
isBackAdditionalRequired = backAdditionalRequired;
}
@ -762,11 +770,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (t.getData().areAnyPicturesAvailableFromServer())
view.showDocumentDetailForm();
/* onReceivingKycRelatedData(gateway.getMockedData());
view.lazyLoadForms();
if (true)
view.showDocumentDetailForm();
*/
} else
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView());
}
@ -1065,7 +1068,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
//Sender ID may be changed after kyc submission success so need to update locally and refresh auth token
if ((userId != null && userId.length() > 0) && userPwd != null && userPwd.length() > 0)
getNewAccessToken(task);
else if (task != null){
else if (task != null) {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.SUCCESS, alertType -> {
if (task != null)
task.run();
@ -1157,9 +1160,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
} else {
if(t.getErrorCode().equalsIgnoreCase(Constants.OPT_EXPIRED_CODE_V2)){
if (t.getErrorCode().equalsIgnoreCase(Constants.OPT_EXPIRED_CODE_V2)) {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> requestForOtp());
}else{
} else {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@ -1187,15 +1190,14 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private class RequestEmailCodeObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
showEmailPopUp();
} else if (t.getErrorCode().equalsIgnoreCase(Constants.USER_ALREADY_VERIFIED_V2)) {
} else if (t.getErrorCode().equalsIgnoreCase(Constants.USER_ALREADY_VERIFIED_V2)) {
kycSubmitSuccessForPopUp();
}else{
} else {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
}

32
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java

@ -3,6 +3,7 @@ package com.swifttech.remit.jmecustomer.features.kyc.newCustomer.view;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
@ -42,6 +43,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
private static final String USER_ID_BUNDLE_KEY = "USER_ID_BUNDLE_KEY";
private static final String USER_PWD_BUNDLE_KEY = "USER_PWD_BUNDLE_KEY";
public static final int KYC_FORM_REQUEST_CODE = 4211;
private static final String TAG=KYCV3Activity.class.getSimpleName();
@BindView(R.id.kycFormViewPager)
ViewPager kycFormViewPager;
@ -65,7 +67,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
private NewKycTermsAndConditionFragment newKycTermsAndConditionFragment;
private GenericViewPagerAdapter kycViewPagerAdapter;
private KYCV3ViewModel viewModel;
private GenericEditTextPromptDialog genericPromptDialog;
private GenericEditTextPromptDialog genericPromptDialog;
public static void startActivityForResult(Activity context, boolean shouldRedirectToPennyTestScreen, String userId, String userPwd) {
Intent intent = new Intent(context, KYCV3Activity.class);
@ -114,28 +116,26 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
private void setupViewPager() {
kycViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
customerDetailFragment = new CustomerDetailFragment();
documentFragment = new KYCIDTypeFragment();
newKycTermsAndConditionFragment = new NewKycTermsAndConditionFragment();
customerDetailFragment = CustomerDetailFragment.newInstance();
documentFragment = KYCIDTypeFragment.newInstance();
newKycTermsAndConditionFragment = NewKycTermsAndConditionFragment.newInstance();
fragments.add(customerDetailFragment);
fragments.add(documentFragment);
fragments.add(newKycTermsAndConditionFragment);
kycViewPagerAdapter.addFragments(fragments);
kycViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
kycFormViewPager.setOffscreenPageLimit(2);
kycFormViewPager.addOnPageChangeListener(this);
kycFormViewPager.setOffscreenPageLimit(3);
kycFormViewPager.setAdapter(kycViewPagerAdapter);
Log.d(TAG, "setupViewPager: we are here");
}
public void onCustomerRegistration() {
@ -166,14 +166,16 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
@Override
protected void onResume() {
super.onResume();
viewModel.onViewReady();
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
viewModel.onViewNotReady();
super.onPause();
}
@OnClick(R.id.iv_back)
@ -189,9 +191,9 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
@Override
public void onBackPressed() {
if(genericPromptDialog!=null && genericPromptDialog.isVisible()){
if (genericPromptDialog != null && genericPromptDialog.isVisible()) {
genericPromptDialog.dismiss();
}else if (kycFormViewPager.getCurrentItem() == 0) {
} else if (kycFormViewPager.getCurrentItem() == 0) {
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
@ -252,8 +254,6 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

224
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java

@ -30,6 +30,7 @@ import androidx.core.widget.NestedScrollView;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import com.swifttech.remit.jmecustomer.BuildConfig;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BaseFragment;
@ -38,7 +39,6 @@ import com.swifttech.remit.jmecustomer.common.view.OnFragmentSelectedListener;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.swifttech.remit.jmecustomer.utils.other.Utility;
import com.google.android.material.snackbar.Snackbar;
import com.theartofdev.edmodo.cropper.CropImage;
import java.io.File;
@ -53,7 +53,7 @@ import io.reactivex.subjects.PublishSubject;
import static android.app.Activity.RESULT_OK;
public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDocumentViewContractInterface, OnFragmentSelectedListener {
public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDocumentViewContractInterface, OnFragmentSelectedListener {
public static final int REQUEST_PERMISSION_FACE_PHOTO = 2003;
@ -91,10 +91,10 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@BindView(R.id.customerImageview)
ImageView customerImageview;
@BindView(R.id.customerImageViewContainer)
View customerImageViewContainer;
@BindView(R.id.customerProgressView)
ProgressBar customerProgressView;
@ -106,10 +106,10 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@BindView(R.id.frontIDImageview)
ImageView frontIDImageview;
@BindView(R.id.frontIDImageViewContainer)
View frontIDImageViewContainer;
@BindView(R.id.frontIdProgressView)
ProgressBar frontIdProgressView;
@ -127,7 +127,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@BindView(R.id.backIdProgressView)
ProgressBar backIdProgressView;
@BindView(R.id.idTypeBackLabelTxtView)
TextView idTypeBackLabelTxtView;
@ -145,14 +145,14 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@BindView(R.id.sideIdProgressView)
ProgressBar sideIdProgressView;
@BindView(R.id.idTypeSideLabelTxtView)
TextView idTypeSideLabelTxtView;
@BindView(R.id.idTypeSideHintTxtView)
TextView idTypeSideHintTxtView;
@BindView(R.id.additionalIDImageview)
ImageView additionalIDImageview;
@ -161,7 +161,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@BindView(R.id.additionalIdProgressView)
ProgressBar additionalIdProgressView;
@BindView(R.id.additionalIdTypeLabelTxtView)
TextView additionalIdTypeLabelTxtView;
@ -196,11 +196,14 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
private PublishSubject<Boolean> additionalIdLoadedSubject;
private PublishSubject<Boolean> additionalIdBackLoadedSubject;
public static KYCIDTypeFragment newInstance() {
KYCIDTypeFragment kycidTypeFragment = new KYCIDTypeFragment();
return kycidTypeFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.e("===>","KYCIDTypeFragment onCreateView called");
Log.e("===>", "KYCIDTypeFragment onCreateView called");
return inflater.inflate(R.layout.fragment_kyc_document, container, false);
}
@ -210,7 +213,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
ButterKnife.bind(this, view);
init();
performDefaultAction(savedInstanceState);
Log.e("===>","KYCIDTypeFragment onViewCreated called");
Log.e("===>", "KYCIDTypeFragment onViewCreated called");
}
@ -220,7 +223,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
private void performDefaultAction(Bundle savedInstance) {
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(),true);
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), true);
}
@ -241,8 +244,9 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
additionalIdBackLoadedSubject
);
}
private void subscribeToIdTypeImageLiveData(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings,Boolean isBackRequired) {
KYCIDTypeViewLiveData liveData = kycv3ViewModel.getKYCIdTypeViewEvents(viewBindings,isBackRequired);
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);
@ -276,8 +280,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
faceImageLoadedSubject.onNext(true);
} else
customerImageview.setImageResource(R.drawable.ic_another_id_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
@ -288,8 +291,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
additionalIdLoadedSubject.onNext(true);
} else
additionalIDImageview.setImageResource(R.drawable.ic_another_id_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
@ -301,8 +303,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
additionalIdBackLoadedSubject.onNext(true);
} else
additionalIDImageview.setImageResource(R.drawable.ic_another_id_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
@ -313,8 +314,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
sideIdLoadedSubject.onNext(true);
} else
sideIDImageview.setImageResource(R.drawable.ic_another_id_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
@ -325,8 +325,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
backIdLoadedSubject.onNext(true);
} else
backIDImageview.setImageResource(R.drawable.ic_another_id_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
@ -337,24 +336,18 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
frontIdLoadedSubject.onNext(true);
} else
frontIDImageview.setImageResource(R.drawable.ic_passport_picture);
}
else
} else
showToastMessage(data.getErrorMessage());
}
private void onBackIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
backIdProgressView.setVisibility(View.VISIBLE);
backIDImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
backIdProgressView.setVisibility(View.INVISIBLE);
backIDImageview.setVisibility(View.VISIBLE);
}
@ -365,16 +358,12 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
private void onFrontIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
frontIdProgressView.setVisibility(View.VISIBLE);
frontIDImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
frontIdProgressView.setVisibility(View.INVISIBLE);
frontIDImageview.setVisibility(View.VISIBLE);
}
@ -385,16 +374,12 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
private void onFaceImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
customerProgressView.setVisibility(View.VISIBLE);
customerImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
customerProgressView.setVisibility(View.INVISIBLE);
customerImageview.setVisibility(View.VISIBLE);
}
@ -404,16 +389,12 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
private void onAdditionalIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
additionalIdProgressView.setVisibility(View.VISIBLE);
additionalIDImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
additionalIdProgressView.setVisibility(View.INVISIBLE);
additionalIDImageview.setVisibility(View.VISIBLE);
}
@ -423,16 +404,12 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
private void onAdditionalIdBackImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
additionalIdBackProgressView.setVisibility(View.VISIBLE);
additionalIDBackImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
additionalIdBackProgressView.setVisibility(View.INVISIBLE);
additionalIDBackImageview.setVisibility(View.VISIBLE);
}
@ -442,16 +419,12 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
private void onSideIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if(data.isValid())
{
if(data.hasData())
{
if(data.getData()) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
sideIdProgressView.setVisibility(View.VISIBLE);
sideIDImageview.setVisibility(View.INVISIBLE);
}
else
{
} else {
sideIdProgressView.setVisibility(View.INVISIBLE);
sideIDImageview.setVisibility(View.VISIBLE);
}
@ -503,9 +476,6 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
@OnClick(R.id.frontIdSampleTextView)
public void onFrontIdSamplePhotoClicked() {
Utility.showImageDialog(getActivity(), getActivity().getResources().getString(R.string.frontIdSample_text), R.drawable.sample_id_front);
@ -514,7 +484,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@OnClick(R.id.backIdSampleTextView)
public void onBackIdSamplePhotoClicked() {
Utility.showImageDialog(getActivity(),getActivity().getResources().getString(R.string.backIdSample_text), R.drawable.sample_id_back);
Utility.showImageDialog(getActivity(), getActivity().getResources().getString(R.string.backIdSample_text), R.drawable.sample_id_back);
}
@ -524,17 +494,14 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
}
@OnClick(R.id.customerSampleTextView)
public void onCustomerSamplePhotoClicked()
{
public void onCustomerSamplePhotoClicked() {
Utility.showImageDialog(getActivity(), getString(R.string.facePhotoSample_text), R.drawable.sample_selfie);
}
@OnClick(R.id.additionalIdSampleTextView)
public void onAdditionalIdSamplePhotoClicked()
{
public void onAdditionalIdSamplePhotoClicked() {
// Utility.showImageDialog(getActivity(), getString(R.string.passport_text), R.drawable.ic_selfie_example);
}
@ -621,7 +588,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
case REQUEST_PERMISSION_FACE_PHOTO:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_FACE_PHOTO, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_FACE_PHOTO, GALLERY_REQUEST_FACE_PHOTO);
@ -631,7 +598,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
break;
case REQUEST_PERMISSION_ID_FRONT:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_FRONT, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_FRONT, GALLERY_REQUEST_ID_FRONT);
@ -641,7 +608,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
break;
case REQUEST_PERMISSION_ID_BACK:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_BACK, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_BACK, GALLERY_REQUEST_ID_BACK);
@ -652,7 +619,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
case REQUEST_PERMISSION_ID_SIDE:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_SIDE, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_SIDE, GALLERY_REQUEST_ID_SIDE);
@ -662,7 +629,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
break;
case REQUEST_PERMISSION_ADDITIONAL:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ADDITIONAL_ID, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ADDITIONAL_ID, GALLERY_REQUEST_ADDITIONAL_ID);
@ -670,23 +637,24 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
}
break;
case REQUEST_PERMISSION_ADDITIONAL_BACK:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
takeAPicture(CAMERA_REQUEST_ADDITIONAL_ID_BACK, 0);
case REQUEST_PERMISSION_ADDITIONAL_BACK:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ADDITIONAL_ID_BACK, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ADDITIONAL_ID_BACK, GALLERY_REQUEST_ADDITIONAL_ID_BACK);
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
}
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
}
break;
}
}
private void cameraorGalleryChooser(final int requestCodeCamera, final int requestCodeGallery) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.layout_alert_camera_gallery, null);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity());
builder.setView(view);
AlertDialog dialog = builder.create();
AlertDialog dialog = builder.create();
TextView tv_camera, tv_gallery, tv_cancel;
tv_camera = view.findViewById(R.id.tv_photo);
tv_gallery = view.findViewById(R.id.tv_gallery);
@ -712,10 +680,10 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}
private void takeAPicture(int requestCode, int i) {
private void takeAPicture(int requestCode, int forCameraOrGallery) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
takePictureIntent.putExtra("jmecustomer.intent.extras.CAMERA_FACING", i);
takePictureIntent.putExtra("jmecustomer.intent.extras.CAMERA_FACING", forCameraOrGallery);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
photoFile = null;
try {
@ -762,38 +730,30 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
if (requestCode == CAMERA_REQUEST_ID_BACK ||
requestCode == CAMERA_REQUEST_ID_FRONT ||
requestCode == CAMERA_REQUEST_ID_SIDE ||
requestCode == CAMERA_REQUEST_ADDITIONAL_ID ||
requestCode == CAMERA_REQUEST_ADDITIONAL_ID_BACK ||
requestCode == CAMERA_REQUEST_FACE_PHOTO
) {
if (resultCode == RESULT_OK) {
if (resultCode == RESULT_OK) {
if (requestCode == CAMERA_REQUEST_ID_BACK ||
requestCode == CAMERA_REQUEST_ID_FRONT ||
requestCode == CAMERA_REQUEST_ID_SIDE ||
requestCode == CAMERA_REQUEST_ADDITIONAL_ID ||
requestCode == CAMERA_REQUEST_ADDITIONAL_ID_BACK ||
requestCode == CAMERA_REQUEST_FACE_PHOTO
) {
requestToCropImage(requestCode);
}
} else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
File imageFile = createCompressedImageFileFromUri(resultUri);
kycv3ViewModel.checkImageStatus(currentRequest, resultCode, imageFile);
} else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (result.isSuccessful()) {
Uri resultUri = result.getUri();
File imageFile = createCompressedImageFileFromUri(resultUri);
kycv3ViewModel.checkImageStatus(currentRequest, resultCode, imageFile);
} else {
showToastMessage(result.getError().getMessage());
}
} else {
showToastMessage(result.getError().getMessage());
}
} else {
if (resultCode == RESULT_OK) {
photoURI = data.getData();
requestToCropImage(requestCode);
}
}
} catch (NullPointerException ex) {
ex.printStackTrace();
@ -804,7 +764,7 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
this.currentRequest = currentRequest;
CropImage.activity(photoURI)
.setCropMenuCropButtonTitle(getString(R.string.done_text))
.start(getActivity(), this);
.start(getContext(), this);
}
@ -830,10 +790,10 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterIn
@Override
public void onFragmentedSelected() {
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(),kycv3ViewModel.getBackAdditionalRequired());
if(kycv3ViewModel.getBackAdditionalRequired()){
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), kycv3ViewModel.getBackAdditionalRequired());
if (kycv3ViewModel.getBackAdditionalRequired()) {
additionalIDBackImageViewContainer.setVisibility(View.VISIBLE);
}else{
} else {
additionalIDBackImageViewContainer.setVisibility(View.GONE);
}
btnSubmit3.setEnabled(false);

7
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java

@ -117,6 +117,11 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
private KYCV3ViewModel kycv3ViewModel;
private CustomerDetailViewLiveData.CustomerDetailViewBinding customerDetailViewBinding;
public static CustomerDetailFragment newInstance() {
CustomerDetailFragment customerDetailFragment = new CustomerDetailFragment();
return customerDetailFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.e("===>","CustomerDetailFragment onCreateView called");
@ -292,13 +297,11 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
}
}
@OnClick(R.id.btn_submit1)
public void onClick() {
new ViewModelProvider(requireActivity()).get(KYCV3ViewModel.class).sendForm1KYCUpdate();
}
@OnClick(R.id.img_gps)
public void onGPSClicked() {
RxUtils.getAddressFromGPS(getActivity())

6
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/view/termsAndCondition/NewKycTermsAndConditionFragment.java

@ -18,6 +18,12 @@ public class NewKycTermsAndConditionFragment extends WebBrowserFragmentV2 {
private KYCV3ViewModel kycv3ViewModel;
private static String TAG = NewKycTermsAndConditionFragment.class.getSimpleName();
private String currentLoadedUrl="";
public static NewKycTermsAndConditionFragment newInstance() {
NewKycTermsAndConditionFragment newKycTermsAndConditionFragment = new NewKycTermsAndConditionFragment();
return newKycTermsAndConditionFragment;
}
@Override
protected void doTask(WebRequestModel webRequestModel, WebView webView) {
if(webRequestModel!=null&&!currentLoadedUrl.equalsIgnoreCase(webRequestModel.getUrl())) {

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/notice/view/NoticeActivity.java

@ -57,8 +57,6 @@ public class NoticeActivity extends BaseActivity implements NoticePresenterInter
private void setupViewPager() {
noticeViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
noticeListingFragment = new NoticeListingFragment();
@ -68,7 +66,7 @@ public class NoticeActivity extends BaseActivity implements NoticePresenterInter
fragments.add(noticeListingFragment);
fragments.add(noticeDetailFragment);
noticeViewPagerAdapter.addFragments(fragments);
noticeViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
noticeViewPager.setOffscreenPageLimit(2);

3
app/src/main/java/com/swifttech/remit/jmecustomer/features/otpverification/view/OTPVerificationActivity.java

@ -56,7 +56,6 @@ public class OTPVerificationActivity extends BaseActivity implements OTPVerifica
}
private void setupViewPager() {
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
ArrayList<Fragment> fragments = new ArrayList<>();
@ -66,7 +65,7 @@ public class OTPVerificationActivity extends BaseActivity implements OTPVerifica
fragments.add(otpRequestFragment);
fragments.add(otpVerifyFragment);
viewPagerAdapter.addFragments(fragments);
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
viewPager.setOffscreenPageLimit(3);

5
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryAddEditTermsFragment.java

@ -20,6 +20,7 @@ import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import static com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit.RecipientAddEditActivity.RECIPIENT_INFO_BUNDLE_KEY;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_REGISTER_TERMS;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_TERMS_N_CONDITIONS;
public class BeneficiaryAddEditTermsFragment extends WebBrowserFragmentV2 {
@ -33,7 +34,7 @@ public class BeneficiaryAddEditTermsFragment extends WebBrowserFragmentV2 {
if (webRequestModel != null && !currentLoadedUrl.equalsIgnoreCase(webRequestModel.getUrl())) {
this.currentLoadedUrl = webRequestModel.getUrl();
webView.loadUrl(webRequestModel.getUrl());
Log.d(this.getClass().getSimpleName(), currentLoadedUrl);
Log.d(TAG, currentLoadedUrl);
triggerWebviewEvent(webView);
}
}
@ -63,7 +64,7 @@ public class BeneficiaryAddEditTermsFragment extends WebBrowserFragmentV2 {
viewModel = new ViewModelProvider(requireActivity(), recipientAddViewModelFactory).get(RecipientAddViewModel.class);
}
showAcceptOption(true);
WebRequestModel webRequestModel = new WebRequestModel("", JME_TERMS_N_CONDITIONS, null);
WebRequestModel webRequestModel = new WebRequestModel("", JME_REGISTER_TERMS, null);
setWebRequestData(webRequestModel);
loadWebView();

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/RecipientAddEditActivity.java

@ -80,8 +80,6 @@ public class RecipientAddEditActivity extends BaseActivity implements RecipientA
private void setupViewPager() {
addBeneficiaryViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
Bundle bundle = new Bundle();
@ -100,7 +98,7 @@ public class RecipientAddEditActivity extends BaseActivity implements RecipientA
fragments.add(beneficiaryAddEditTermsFragment);
addBeneficiaryViewPagerAdapter.addFragments(fragments);
addBeneficiaryViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
addBeneficiaryViewPager.setOffscreenPageLimit(2);

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3TermsFragment.java

@ -20,8 +20,10 @@ import com.swifttech.remit.jmecustomer.features.recipientmanagement.view.Recipie
import com.swifttech.remit.jmecustomer.features.recipientmanagement.view.RecipientEditV3ViewModelFactory;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import com.swifttech.remit.jmecustomer.utils.Constants;
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_REGISTER_TERMS;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_TERMS_N_CONDITIONS;
public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 implements RecipientAddV3ContractInterface.RecipientTermsAndConditionsContract, GenericEditTextPromptDialog.GenericEditTextPromptListener {
@ -65,7 +67,7 @@ public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 impl
viewModel = new ViewModelProvider(requireActivity(), recipientAddViewModelFactory).get(RecipientAddV3ViewModel.class);
}
showAcceptOption(true);
WebRequestModel webRequestModel = new WebRequestModel("", JME_TERMS_N_CONDITIONS, null);
WebRequestModel webRequestModel = new WebRequestModel("",JME_REGISTER_TERMS, null);
setWebRequestData(webRequestModel);
loadWebView();

3
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java

@ -64,7 +64,6 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
private void setupViewPager() {
addBeneficiaryV3ViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
@ -84,7 +83,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
fragments.add(beneficiaryAddEditV3TermsFragment);
addBeneficiaryV3ViewPagerAdapter.addFragments(fragments);
addBeneficiaryV3ViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
addBeneficiaryV3ViewPager.setOffscreenPageLimit(2);

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/existingcustomer/view/ExistingCustomerRegisterV2Activity.java

@ -65,8 +65,6 @@ public class ExistingCustomerRegisterV2Activity extends BaseActivity implements
private void setupViewPager() {
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
ArrayList<Fragment> fragments = new ArrayList<>();
easyRemitExistingCustomerRegistrationRequestFragment = new ExistingCustomerRegistrationRequestFragment();
@ -76,7 +74,7 @@ public class ExistingCustomerRegisterV2Activity extends BaseActivity implements
fragments.add(easyRemitExistingCustomerRegistrationSubmitFragment);
viewPagerAdapter.addFragments(fragments);
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
viewPager.setOffscreenPageLimit(3);

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewIdActivity.java

@ -140,7 +140,7 @@ public class RenewIdActivity extends BaseActivity implements RenewIdV2PresenterI
frontIdLoadedSubject = PublishSubject.create();
backIdLoadedSubject = PublishSubject.create();
return new RenewUserIdLiveData.RenewUserIdBinding(
RxTextView.textChanges(edUserId).skipInitialValue(),
RxTextView.textChanges(edUserId),
frontIdLoadedSubject,
backIdLoadedSubject
);

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/termsandcondition/view/TermsAndConditionAcitivity.java

@ -67,8 +67,6 @@ public class TermsAndConditionAcitivity extends BaseActivity implements WebBrow
private void setupViewPager() {
termsAndConditionViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
List<Fragment> fragments = new ArrayList<>();
termsAndConditionFragment = new TermsAndConditionFragment();
@ -77,7 +75,7 @@ public class TermsAndConditionAcitivity extends BaseActivity implements WebBrow
fragments.add(termsAndConditionFragment);
fragments.add(pdfViewerFragment);
termsAndConditionViewPagerAdapter.addFragments(fragments);
termsAndConditionViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
termsAndConditionViewPager.setOffscreenPageLimit(2);

10
app/src/main/java/com/swifttech/remit/jmecustomer/features/webbrowser/WebBrowserFragmentV2.java

@ -37,6 +37,7 @@ import com.swifttech.remit.jmecustomer.base.BaseFragment;
import com.swifttech.remit.jmecustomer.common.customwidgets.CustomAlertDialog;
import com.swifttech.remit.jmecustomer.common.customwidgets.GmeButton;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import com.swifttech.remit.jmecustomer.utils.Constants;
import com.swifttech.remit.jmecustomer.utils.https.HTTPConstants;
import com.tbruyelle.rxpermissions2.RxPermissions;
@ -62,6 +63,8 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
private boolean isPageLoadSuccess = false;
private String requestUrl;
@BindView(R.id.webView)
WebView webView;
@ -113,6 +116,8 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
public void setWebRequestData(WebRequestModel webRequestModel) {
this.webRequestModel = webRequestModel;
requestUrl=webRequestModel.getUrl();
}
public void loadWebView() {
@ -166,7 +171,7 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
View view = (View) scrollView.getChildAt(scrollView.getChildCount() - 1);
int diff = (view.getBottom() - (scrollView.getHeight() + scrollView.getScrollY()));
Log.d(TAG, "onScrollChange: " + diff);
// if diff is zero, then the bottom has been reached
if (diff == 0 && showAcceptOption == true && isPageLoadSuccess == true) {
Log.i(TAG, diff + " is true ");
@ -228,6 +233,9 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
isPageLoadSuccess = true;
if (webView.getProgress() == 100) {
isPageLoadSuccess = true;
if(requestUrl.equals(Constants.JME_TRANSACTION_TERMS)){
llBottom.setVisibility(View.VISIBLE);
}
showProgressBar(false, "");
}
}

5
app/src/main/java/com/swifttech/remit/jmecustomer/features/withdraw/view/WithdrawActivity.java

@ -64,7 +64,6 @@ public class WithdrawActivity extends BaseActivity implements WithdrawPresenterI
private void setupViewPager() {
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
ArrayList<Fragment> fragments = new ArrayList<>();
@ -75,9 +74,9 @@ public class WithdrawActivity extends BaseActivity implements WithdrawPresenterI
fragments.add(amountInputFragment);
fragments.add(transactionReviewFragment);
viewPagerAdapter.addFragments(fragments);
viewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager(),fragments);
viewPager.setOffscreenPageLimit(3);
viewPager.setOffscreenPageLimit(2);
viewPager.setAdapter(viewPagerAdapter);

3
app/src/main/res/drawable/icv_kyc_non_verified_userstatus.xml

@ -13,7 +13,8 @@
android:pathData="M124.607,114.781H104.939C103.121,114.781 101.634,116.269 101.634,118.087C101.634,119.905 103.121,121.392 104.939,121.392H124.607C126.425,121.392 127.913,119.905 127.913,118.087C127.913,116.269 126.425,114.781 124.607,114.781Z"
android:fillColor="#DC1431"/>
<path
android:pathData="M92.543,108.335L81.469,119.409L77.998,115.938C76.676,114.616 74.693,114.616 73.37,115.938C72.048,117.26 72.048,119.244 73.37,120.566L79.32,126.516C79.981,127.177 80.808,127.508 81.634,127.508C82.461,127.508 83.287,127.177 83.948,126.516L97.336,113.128C98.658,111.806 98.658,109.823 97.336,108.501C96.013,107.013 93.865,107.013 92.543,108.335Z"
android:pathData="M92.543,108.335L81.469,
\119.409L77.998,115.938C76.676,114.616 74.693,114.616 73.37,115.938C72.048,117.26 72.048,119.244 73.37,120.566L79.32,126.516C79.981,127.177 80.808,127.508 81.634,127.508C82.461,127.508 83.287,127.177 83.948,126.516L97.336,113.128C98.658,111.806 98.658,109.823 97.336,108.501C96.013,107.013 93.865,107.013 92.543,108.335Z"
android:fillColor="#DC1431"/>
<path
android:pathData="M124.607,137.424H104.939C103.121,137.424 101.634,138.912 101.634,140.73C101.634,142.548 103.121,144.035 104.939,144.035H124.607C126.425,144.035 127.913,142.548 127.913,140.73C127.913,138.912 126.425,137.424 124.607,137.424Z"

1
app/src/main/res/layout/activity_login_v2.xml

@ -64,6 +64,7 @@
<com.swifttech.remit.jmecustomer.common.view.MTextInputEditTextSpaceMasked
android:inputType="textPassword"
android:id="@+id/password_edTxt"
android:imeOptions="actionDone"
style="@style/MTextInputEditText"/>
</com.swifttech.remit.jmecustomer.common.view.MTextInputLayout>

1
app/src/main/res/layout/activity_renew_id_layout.xml

@ -50,6 +50,7 @@
android:enabled="false"
android:cursorVisible="false"
android:inputType="text"
android:textColor="@color/black"
/>
</com.swifttech.remit.jmecustomer.common.view.MTextInputLayout>

3
app/src/main/res/layout/fragment_web_browser_v2.xml

@ -20,7 +20,7 @@
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:nestedScrollingEnabled="false"
android:scrollbars="none" />
@ -37,6 +37,7 @@
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkBoxAgreeConsent"
android:fontFamily="@font/lato_regular"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/btnSendMoney"

10
app/src/main/res/layout/notification_auto_debit_required.xml

@ -6,15 +6,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:padding="@dimen/_5sdp"
android:visibility="visible">
<ImageView
android:id="@+id/kftc_renew_image"
android:layout_margin="@dimen/_6sdp"
android:layout_width="@dimen/_60sdp"
android:layout_height="@dimen/_60sdp"
android:layout_width="@dimen/_50sdp"
android:layout_height="@dimen/_50sdp"
android:scaleType="fitCenter"
app:srcCompat="@drawable/icv_kyc_non_verified_userstatus"
app:layout_constraintBottom_toBottomOf="parent"
@ -29,7 +26,6 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="start"
android:paddingStart="@dimen/_4sdp"
android:paddingEnd="@dimen/_4sdp"
android:text="@string/renewUrAutoDebitAcc_text"
android:textColor="@color/colorAccent"
@ -46,12 +42,10 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_5sdp"
android:paddingStart="@dimen/_4sdp"
android:paddingEnd="@dimen/_4sdp"
android:text="@string/required_to_renew_debit_text"
android:textColor="@color/darkgray"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"

Loading…
Cancel
Save