|
|
@ -8,8 +8,12 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.Constants; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.Utils; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.security.SecurityUtils; |
|
|
|
import com.mtramin.rxfingerprint.data.FingerprintEncryptionResult; |
|
|
|
|
|
|
|
import io.reactivex.Observable; |
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers; |
|
|
|
import io.reactivex.observers.DisposableObserver; |
|
|
|
import io.reactivex.schedulers.Schedulers; |
|
|
|
|
|
|
|
public class ChangePasswordV2Presenter extends BasePresenter implements ChangePasswordV2InteractorInterface, ChangePasswordV2PresenterInterface { |
|
|
@ -37,8 +41,7 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
boolean confirmPwdValidation = true; |
|
|
|
boolean newPwdValidation = true; |
|
|
|
|
|
|
|
if(currentPass.trim().length()<1) |
|
|
|
{ |
|
|
|
if (currentPass.trim().length() < 1) { |
|
|
|
this.view.setCurrentPasswordError(getStringfromStringId(R.string.password_empty_error)); |
|
|
|
currentPwdValidation = false; |
|
|
|
} |
|
|
@ -59,8 +62,7 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
this.view.setNewPasswordError(getStringfromStringId(R.string.password_capital_letter_required_error)); |
|
|
|
newPwdValidation = false; |
|
|
|
} |
|
|
|
if(newPwd.trim().length()<1) |
|
|
|
{ |
|
|
|
if (newPwd.trim().length() < 1) { |
|
|
|
this.view.setNewPasswordError(getStringfromStringId(R.string.password_empty_error)); |
|
|
|
newPwdValidation = false; |
|
|
|
} |
|
|
@ -69,8 +71,7 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
this.view.setConfirmPasswordError(getStringfromStringId(R.string.confirm_password_mismatch_error)); |
|
|
|
confirmPwdValidation = false; |
|
|
|
} |
|
|
|
if(pwdConfrimString==null||pwdConfrimString.trim().length()<1) |
|
|
|
{ |
|
|
|
if (pwdConfrimString == null || pwdConfrimString.trim().length() < 1) { |
|
|
|
this.view.setConfirmPasswordError(getStringfromStringId(R.string.confirm_passowrd_empty_error)); |
|
|
|
confirmPwdValidation = false; |
|
|
|
} |
|
|
@ -79,14 +80,12 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
if (currentPwdValidation) { |
|
|
|
view.setCurrentPasswordError(null); |
|
|
|
} |
|
|
|
if(confirmPwdValidation) |
|
|
|
{ |
|
|
|
if (confirmPwdValidation) { |
|
|
|
view.setConfirmPasswordError(null); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(newPwdValidation) |
|
|
|
{ |
|
|
|
if (newPwdValidation) { |
|
|
|
view.setNewPasswordError(null); |
|
|
|
|
|
|
|
} |
|
|
@ -95,26 +94,22 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public boolean validateAll() |
|
|
|
{ |
|
|
|
public boolean validateAll() { |
|
|
|
boolean currentPwdValidation = true; |
|
|
|
boolean confirmPwdValidation = true; |
|
|
|
boolean newPwdValidation = true; |
|
|
|
|
|
|
|
if(encCurrentPassword==null||encCurrentPassword.trim().length()<1) |
|
|
|
{ |
|
|
|
if (encCurrentPassword == null || encCurrentPassword.trim().length() < 1) { |
|
|
|
this.view.setCurrentPasswordError(getStringfromStringId(R.string.password_empty_error)); |
|
|
|
currentPwdValidation = false; |
|
|
|
} |
|
|
|
|
|
|
|
if(encNewPassword==null||encNewPassword.trim().length()<1) |
|
|
|
{ |
|
|
|
if (encNewPassword == null || encNewPassword.trim().length() < 1) { |
|
|
|
this.view.setNewPasswordError(getStringfromStringId(R.string.password_empty_error)); |
|
|
|
newPwdValidation = false; |
|
|
|
} |
|
|
|
|
|
|
|
if(encConfirmPassword==null||encConfirmPassword.trim().length()<1) |
|
|
|
{ |
|
|
|
if (encConfirmPassword == null || encConfirmPassword.trim().length() < 1) { |
|
|
|
this.view.setConfirmPasswordError(getStringfromStringId(R.string.confirm_passowrd_empty_error)); |
|
|
|
confirmPwdValidation = false; |
|
|
|
} |
|
|
@ -122,14 +117,12 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
if (currentPwdValidation) { |
|
|
|
view.setCurrentPasswordError(null); |
|
|
|
} |
|
|
|
if(confirmPwdValidation) |
|
|
|
{ |
|
|
|
if (confirmPwdValidation) { |
|
|
|
view.setConfirmPasswordError(null); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(newPwdValidation) |
|
|
|
{ |
|
|
|
if (newPwdValidation) { |
|
|
|
view.setNewPasswordError(null); |
|
|
|
} |
|
|
|
|
|
|
@ -144,7 +137,7 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
.doFinally(() -> view.showProgressBar(false, "")) |
|
|
|
.subscribeOn(Schedulers.io()) |
|
|
|
.observeOn(AndroidSchedulers.mainThread()) |
|
|
|
.subscribe(new ChangePasswordObserver()); |
|
|
|
.subscribe(new ChangePasswordObserver(this.encNewPassword)); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -162,17 +155,31 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
this.encConfirmPassword = encConfirmPassword; |
|
|
|
} |
|
|
|
|
|
|
|
private void encryptPassword(String newPassword, String pwdChangeMessage) { |
|
|
|
Observable.zip(SecurityUtils.encryptSecret(view.getContext(), newPassword).subscribeOn(Schedulers.io()).onErrorReturn(error -> null), Observable.just(pwdChangeMessage), BiometricPwdParams::new) |
|
|
|
.observeOn(AndroidSchedulers.mainThread()) |
|
|
|
.subscribe(new BiometricEncrypterObserver()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public class ChangePasswordObserver extends GenericApiObserverResponse<ChangePasswordActivityV2APIResponse> |
|
|
|
{ |
|
|
|
public class ChangePasswordObserver extends GenericApiObserverResponse<ChangePasswordActivityV2APIResponse> { |
|
|
|
|
|
|
|
String newPassword; |
|
|
|
|
|
|
|
public ChangePasswordObserver(String encNewPassword) { |
|
|
|
this.newPassword = encNewPassword; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void onSuccess(ChangePasswordActivityV2APIResponse changePasswordActivityV2APIResponse) { |
|
|
|
if(changePasswordActivityV2APIResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) |
|
|
|
{ |
|
|
|
if (changePasswordActivityV2APIResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|
|
|
if (SecurityUtils.doesAppHasBiometricFeature(view.getContext())) { |
|
|
|
encryptPassword(newPassword, changePasswordActivityV2APIResponse.getMsg()); |
|
|
|
} else { |
|
|
|
view.showPopUpMessage(changePasswordActivityV2APIResponse.getMsg(), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitView()); |
|
|
|
} |
|
|
|
else |
|
|
|
} else |
|
|
|
view.showPopUpMessage(changePasswordActivityV2APIResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, null); |
|
|
|
} |
|
|
|
|
|
|
@ -194,5 +201,57 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class BiometricPwdParams { |
|
|
|
FingerprintEncryptionResult encPassword; |
|
|
|
String pwdChangeServerMessage; |
|
|
|
|
|
|
|
public BiometricPwdParams(FingerprintEncryptionResult encPassword, String pwdChangeServerMessage) { |
|
|
|
this.encPassword = encPassword; |
|
|
|
this.pwdChangeServerMessage = pwdChangeServerMessage; |
|
|
|
} |
|
|
|
|
|
|
|
public FingerprintEncryptionResult getEncPassword() { |
|
|
|
return encPassword; |
|
|
|
} |
|
|
|
|
|
|
|
public void setEncPassword(FingerprintEncryptionResult encPassword) { |
|
|
|
this.encPassword = encPassword; |
|
|
|
} |
|
|
|
|
|
|
|
public String getPwdChangeServerMessage() { |
|
|
|
return pwdChangeServerMessage; |
|
|
|
} |
|
|
|
|
|
|
|
public void setPwdChangeServerMessage(String pwdChangeServerMessage) { |
|
|
|
this.pwdChangeServerMessage = pwdChangeServerMessage; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class BiometricEncrypterObserver extends DisposableObserver<BiometricPwdParams> { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onNext(BiometricPwdParams data) { |
|
|
|
if (data.getEncPassword() == null) { |
|
|
|
gateway.persistUserPwd(null); |
|
|
|
gateway.turnOffFingerprintAuth(true); |
|
|
|
view.showPopUpMessage(data.getPwdChangeServerMessage(), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitView()); |
|
|
|
} else { |
|
|
|
gateway.persistUserPwd(data.getEncPassword().getEncrypted()); |
|
|
|
view.showPopUpMessage(data.getPwdChangeServerMessage(), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitView()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onError(Throwable e) { |
|
|
|
gateway.persistUserPwd(null); |
|
|
|
gateway.turnOffFingerprintAuth(true); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onComplete() { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |