Browse Source

Hide keyboard fixes

master
Preyea Regmi 5 years ago
parent
commit
c114f8df09
  1. 12
      app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/gateway/ChangePasswordV2Gateway.java
  2. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2InteractorInterface.java
  3. 195
      app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2Presenter.java
  4. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2PresenterInterface.java
  5. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/view/ChangePasswordV2Activity.java
  6. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2Presenter.java
  7. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java
  8. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java
  9. 4
      app/src/main/res/drawable/ic_send_money_avd.xml

12
app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/gateway/ChangePasswordV2Gateway.java

@ -1,5 +1,7 @@
package com.gmeremit.online.gmeremittance_native.changepasswordV2.gateway;
import com.gmeremit.online.gmeremittance_native.GmeApplication;
import com.gmeremit.online.gmeremittance_native.base.PrefKeys;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway;
import com.gmeremit.online.gmeremittance_native.changepasswordV2.model.ChangePasswordActivityV2APIResponse;
import com.gmeremit.online.gmeremittance_native.changepasswordV2.presenter.ChangePasswordV2InteractorInterface;
@ -28,4 +30,14 @@ public class ChangePasswordV2Gateway extends PrivilegedGateway implements Change
return HttpClientV2.getInstance().performChangePasswordV2(auth,jsonObject);
}
@Override
public void persistUserPwd(String encrypted) {
GmeApplication.getStorage().edit().putString(PrefKeys.APP_USER_SECRET_KEY,encrypted).apply();
}
@Override
public void turnOffFingerprintAuth(boolean action) {
GmeApplication.getStorage().edit().putBoolean(PrefKeys.APP_FINGER_PRINT_ENABLED,!action).apply();
}
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2InteractorInterface.java

@ -12,5 +12,9 @@ public interface ChangePasswordV2InteractorInterface extends BaseInteractorInter
interface ChangePasswordV2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<ChangePasswordActivityV2APIResponse> performChangePassRequest(String auth, String userId, String oldPass, String newPass,String confirmPass);
void persistUserPwd(String encrypted);
void turnOffFingerprintAuth(boolean b);
}
}

195
app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2Presenter.java

@ -8,11 +8,15 @@ 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 {
public class ChangePasswordV2Presenter extends BasePresenter implements ChangePasswordV2InteractorInterface, ChangePasswordV2PresenterInterface {
private final ChangePasswordV2PresenterInterface.ChangePasswordV2ContractInterface view;
private final ChangePasswordV2Gateway gateway;
@ -22,174 +26,229 @@ public class ChangePasswordV2Presenter extends BasePresenter implements ChangePa
private String encConfirmPassword;
public ChangePasswordV2Presenter(ChangePasswordV2PresenterInterface.ChangePasswordV2ContractInterface view) {
this.view=view;
this.gateway=new ChangePasswordV2Gateway(this);
this.view = view;
this.gateway = new ChangePasswordV2Gateway(this);
this.encCurrentPassword="";
this.encNewPassword="";
this.encConfirmPassword="";
this.encCurrentPassword = "";
this.encNewPassword = "";
this.encConfirmPassword = "";
}
@Deprecated
@Override
public boolean validateData(String currentPass, String newPwd, String pwdConfrimString) {
boolean currentPwdValidation=true;
boolean confirmPwdValidation=true;
boolean newPwdValidation=true;
boolean currentPwdValidation = true;
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;
currentPwdValidation = false;
}
if (!Utils.hasSpecialCharacters(newPwd)) {
this.view.setNewPasswordError(getStringfromStringId(R.string.password_symbol_required_error));
newPwdValidation= false;
newPwdValidation = false;
}
if (!Utils.hasNumbers(newPwd)) {
this.view.setNewPasswordError(getStringfromStringId(R.string.password_number_required_error));
newPwdValidation= false;
newPwdValidation = false;
}
if (newPwd.length()>1&&newPwd.length()<9) {
if (newPwd.length() > 1 && newPwd.length() < 9) {
this.view.setNewPasswordError(getStringfromStringId(R.string.password_length_error));
newPwdValidation= false;
newPwdValidation = false;
}
if (!Utils.hasAtleastOnCapitalLetter(newPwd)) {
this.view.setNewPasswordError(getStringfromStringId(R.string.password_capital_letter_required_error));
newPwdValidation= false;
newPwdValidation = false;
}
if(newPwd.trim().length()<1)
{
if (newPwd.trim().length() < 1) {
this.view.setNewPasswordError(getStringfromStringId(R.string.password_empty_error));
newPwdValidation= false;
newPwdValidation = false;
}
if (!newPwd.equals(pwdConfrimString)) {
this.view.setConfirmPasswordError(getStringfromStringId(R.string.confirm_password_mismatch_error));
confirmPwdValidation= false;
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;
confirmPwdValidation = false;
}
if(currentPwdValidation) {
if (currentPwdValidation) {
view.setCurrentPasswordError(null);
}
if(confirmPwdValidation)
{
if (confirmPwdValidation) {
view.setConfirmPasswordError(null);
}
if(newPwdValidation)
{
if (newPwdValidation) {
view.setNewPasswordError(null);
}
return currentPwdValidation&&confirmPwdValidation&&newPwdValidation;
return currentPwdValidation && confirmPwdValidation && newPwdValidation;
}
@Override
public boolean validateAll()
{
boolean currentPwdValidation=true;
boolean confirmPwdValidation=true;
boolean newPwdValidation=true;
if(encCurrentPassword==null||encCurrentPassword.trim().length()<1)
{
public boolean validateAll() {
boolean currentPwdValidation = true;
boolean confirmPwdValidation = true;
boolean newPwdValidation = true;
if (encCurrentPassword == null || encCurrentPassword.trim().length() < 1) {
this.view.setCurrentPasswordError(getStringfromStringId(R.string.password_empty_error));
currentPwdValidation= false;
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;
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;
confirmPwdValidation = false;
}
if(currentPwdValidation) {
if (currentPwdValidation) {
view.setCurrentPasswordError(null);
}
if(confirmPwdValidation)
{
if (confirmPwdValidation) {
view.setConfirmPasswordError(null);
}
if(newPwdValidation)
{
if (newPwdValidation) {
view.setNewPasswordError(null);
}
return currentPwdValidation&&confirmPwdValidation&&newPwdValidation;
return currentPwdValidation && confirmPwdValidation && newPwdValidation;
}
@Override
public void changePassword(String currentPass, String newPass) {
this.gateway.performChangePassRequest(this.gateway.getAuth(),this.gateway.getUserID(),this.encCurrentPassword,this.encNewPassword,this.encConfirmPassword)
.doOnSubscribe(d->view.showProgressBar(true,getStringfromStringId(R.string.processing_request_text)))
.doFinally(()->view.showProgressBar(false,""))
this.gateway.performChangePassRequest(this.gateway.getAuth(), this.gateway.getUserID(), this.encCurrentPassword, this.encNewPassword, this.encConfirmPassword)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new ChangePasswordObserver());
.subscribe(new ChangePasswordObserver(this.encNewPassword));
}
@Override
public void updateCurrentPassword(String encCurrentPassword) {
this.encCurrentPassword=encCurrentPassword;
this.encCurrentPassword = encCurrentPassword;
}
@Override
public void updateNewPassword(String encNewPassword) {
this.encNewPassword=encNewPassword;
this.encNewPassword = encNewPassword;
}
@Override
public void updateConfirmPassword(String encConfirmPassword) {
this.encConfirmPassword=encConfirmPassword;
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))
{
view.showPopUpMessage(changePasswordActivityV2APIResponse.getMsg(), CustomAlertDialog.AlertType.SUCCESS,alertType -> view.exitView());
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
view.showPopUpMessage(changePasswordActivityV2APIResponse.getMsg(), CustomAlertDialog.AlertType.FAILED,null);
} else
view.showPopUpMessage(changePasswordActivityV2APIResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null);
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET,null);
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
protected void unauthorizedAccess(String message) {
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT,alertType -> view.logout());
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
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() {
}
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/presenter/ChangePasswordV2PresenterInterface.java

@ -1,5 +1,7 @@
package com.gmeremit.online.gmeremittance_native.changepasswordV2.presenter;
import android.content.Context;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
@ -27,5 +29,7 @@ public interface ChangePasswordV2PresenterInterface extends BasePresenterInterfa
void setConfirmPasswordError(String passwords_does_not_match);
void setCurrentPasswordError(String s);
Context getContext();
}
}

6
app/src/main/java/com/gmeremit/online/gmeremittance_native/changepasswordV2/view/ChangePasswordV2Activity.java

@ -1,5 +1,6 @@
package com.gmeremit.online.gmeremittance_native.changepasswordV2.view;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
@ -256,6 +257,11 @@ public class ChangePasswordV2Activity extends BaseActivity implements ChangePass
currentPasswordErrorTxt.setErrorText(error);
}
@Override
public Context getContext() {
return this;
}
class SecurityKeypadCurrentPasswordListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade,SecurityKeyboardView.SecurityKeyboardFocusStateListener {
@Override
public void done(Intent intent) {

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2Presenter.java

@ -114,7 +114,6 @@ public class LoginV2Presenter extends BasePresenter implements LoginV2PresenterI
if (fingerPrintScanningSubscription != null && !fingerPrintScanningSubscription.isDisposed())
fingerPrintScanningSubscription.dispose();
} else {
view.hideKeyBoard();
if (fingerPrintScanningSubscription == null || fingerPrintScanningSubscription.isDisposed())
fingerPrintScanningSubscription = Observable.zip(Observable.fromCallable(gateway::getPersistedUserId), decryptData(gateway.getPersistedUserPwd()), BiometricDecParams::new)
.observeOn(AndroidSchedulers.mainThread())

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java

@ -315,6 +315,7 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
hideKeyBoard();
mIsMorphingInProgress = true;
isLoadingInProgress = true;
loginBtn.setText("");

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java

@ -108,7 +108,7 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener,
public void onPageSelected(int position) {
Log.d("SplashScreenAction", "Page selected: " + position);
addBottomDots(position);
((SplashAnimatedViewPagerFragment) fragmentList.get(position)).playAnimation(position==0?300:0);
((SplashAnimatedViewPagerFragment) fragmentList.get(position)).playAnimation(position==0?200:0);
}

4
app/src/main/res/drawable/ic_send_money_avd.xml

@ -10,14 +10,14 @@
<set>
<objectAnimator
android:propertyName="translateX"
android:duration="500"
android:duration="400"
android:valueFrom="-900"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/decelerate_interpolator"/>
<objectAnimator
android:propertyName="translateY"
android:duration="500"
android:duration="400"
android:valueFrom="900"
android:valueTo="0"
android:valueType="floatType"

Loading…
Cancel
Save