Browse Source

Realtime validation added to registration screen

master
Preyea Regmi 5 years ago
parent
commit
0df5a620f8
  1. 9
      app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java
  2. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java
  3. 58
      app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java
  4. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  5. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

9
app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java

@ -19,6 +19,7 @@ import com.google.gson.reflect.TypeToken;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public class RegisterV2Gateway extends PrivilegedGateway implements RegisterV2InteractorInterface.Register2GatewayInterface {
@ -118,4 +119,12 @@ public class RegisterV2Gateway extends PrivilegedGateway implements RegisterV2In
observable.onComplete();
});
}
@Override
public Observable<ResponseBody> validateParameters(String userID) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("username",userID);
return HttpClientV2.getInstance().validateParams(jsonObject);
}
}

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java

@ -33,6 +33,8 @@ public interface RegisterV2InteractorInterface extends BaseInteractorInterface {
Observable<LoginModelV2> saveUserInfo(LoginModelV2 userRelatedData);
Observable<ResponseBody> validateParameters(String userID);
}
}

58
app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java

@ -12,6 +12,9 @@ import com.gmeremit.online.gmeremittance_native.registerV2.model.RegisterApiResp
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.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
import com.gmeremit.online.gmeremittance_native.utils.https.MessageResponseDataModel;
import com.gmeremit.online.gmeremittance_native.utils.security.SecurityUtils;
import com.google.firebase.iid.FirebaseInstanceId;
@ -114,7 +117,7 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres
selectedMobileNumber = "";
view.setMobileError(getStringfromStringId(R.string.kyc_mobile_empty_error));
} else if (mobileNumber.length() < 9 || mobileNumber.length() > 12) {
} else if (mobileNumber.length() < 9 || mobileNumber.length() >= 11) {
selectedMobileNumber = "";
isSelectedMobileNoValid = false;
view.setMobileError(getStringfromStringId(R.string.kyc_mobile_invalid_number_error));
@ -156,18 +159,26 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres
isSelectedUserIdValid = false;
view.setUserIdError(getStringfromStringId(R.string.user_id_empty_error));
} else if (id.length() <4||id.length()>=50) {
} else if (id.length() < 4 || id.length() >= 50) {
isSelectedUserIdValid = false;
view.setUserIdError(getStringfromStringId(R.string.userid_error_text));
} else {
isSelectedUserIdValid = true;
view.setUserIdError(null);
validateUserIdFromApi();
}
validateAll();
}
private void validateUserIdFromApi() {
compositeDisposable.add(this.gateway.validateParameters(selectedUserId)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new UserIdValidationObserver()));
}
@Override
public void updatePassword(String encUpdatedPassword, int lengthValue) {
if (lengthValue >= 6) {
@ -229,7 +240,7 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
@ -338,4 +349,39 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres
}
}
public class UserIdValidationObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
isSelectedUserIdValid = true;
view.setUserIdError(null);
} else {
isSelectedUserIdValid = false;
view.setUserIdError(t.getMsg());
}
}
@Override
public void onFailed(String message) {
isSelectedUserIdValid = false;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
isSelectedUserIdValid = false;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
protected void unauthorizedAccess(String message) {
isSelectedUserIdValid = false;
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
}

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java

@ -49,5 +49,6 @@ public class API_URL {
public static final String REWARD_REDEEM = "v2/reward/productBuy";
public static final String CHECK_AUTO_DEBIT_RENEWAL = BuildConfig.API_VERSION+"/kftc/CheckKFTCAccounts/{userId}";
public static final String VALIDATE_PARAM = "v3/validation";
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

@ -256,4 +256,8 @@ public interface ApiEndpoints {
@GET(API_URL.CHECK_AUTO_DEBIT_RENEWAL)
@Headers("Content-Type: application/json")
Observable<ResponseBody> checkAutoDebitForRenewal(@Header("Authorization") String token,@Path("userId") String userId);
@POST(API_URL.VALIDATE_PARAM)
@Headers("Content-Type: application/json")
Observable<ResponseBody> validateParams( @Body() JsonObject jsonObject);
}
Loading…
Cancel
Save