From 796daa81e29ae02ea5ff86fb6b9006574e202d76 Mon Sep 17 00:00:00 2001 From: preyearegmi Date: Tue, 11 Sep 2018 16:19:57 +0900 Subject: [PATCH] Login and register module revamped --- .idea/caches/build_file_checksums.ser | Bin 535 -> 535 bytes app/src/main/AndroidManifest.xml | 9 +- .../gmeremittance_native/GmeApplication.java | 12 +- .../loginV2/view/LoginV2Activity.java | 11 +- .../registerV2/gateway/RegisterV2Gateway.java | 4 +- .../registerV2/model/RegisterApiResponse.java | 53 +++++++ .../RegisterV2InteractorInterface.java | 3 +- .../presenter/RegisterV2Presenter.java | 32 +++- .../RegisterV2PresenterInterface.java | 15 +- .../registerV2/view/RegisterV2Activity.java | 55 ++++++- .../gateway/ResetPassV2Gateway.java | 32 ++++ .../resetpassV2/model/ResetApiResponse.java | 53 +++++++ .../ResetPassV2InteractorInterface.java | 16 ++ .../presenter/ResetPassV2Presenter.java | 82 +++++++++++ .../ResetPassV2PresenterInterface.java | 19 +++ .../resetpassV2/view/ResetPassV2Activity.java | 114 +++++++++++++++ .../splash_screen/view/SplashScreen.java | 6 +- .../utils/https/API_URL.java | 1 + .../utils/https/ApiEndpoints.java | 8 +- app/src/main/res/layout/activity_login_v2.xml | 6 +- .../main/res/layout/activity_register_v2.xml | 50 ++++++- .../res/layout/activity_reset_pass_v2.xml | 137 ++++++++++++++++++ 22 files changed, 670 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/model/RegisterApiResponse.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/gateway/ResetPassV2Gateway.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/model/ResetApiResponse.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2InteractorInterface.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2Presenter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2PresenterInterface.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/view/ResetPassV2Activity.java create mode 100644 app/src/main/res/layout/activity_reset_pass_v2.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 26dc55c1c7a3520662cea6fb23ced0946961243f..3fde18ca7ee0b74f52daf701f245235846be438d 100644 GIT binary patch delta 15 XcmbQvGM#0@43^` - + + /> \ No newline at end of file diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java index 1db56168..63342c67 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java @@ -19,9 +19,6 @@ import com.zxy.tiny.Tiny; import io.fabric.sdk.android.Fabric; -/** - * Created by frantic on 2/22/18. - */ public class GmeApplication extends Application { @@ -46,14 +43,7 @@ public class GmeApplication extends Application { gmeSharedPreferences= this.getSharedPreferences("GME", Context.MODE_PRIVATE); - /* if(Build.VERSION.SDK_INT>=24){ - try{ - Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure"); - m.invoke(null); - }catch(Exception e){ - e.printStackTrace(); - } - }*/ + } @Override diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java index f74fbde4..9e94c28e 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java @@ -15,6 +15,7 @@ import com.gmeremit.online.gmeremittance_native.home.view.HomeActivity; import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2Presenter; import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; +import com.gmeremit.online.gmeremittance_native.resetpassV2.view.ResetPassV2Activity; import butterknife.BindView; import butterknife.ButterKnife; @@ -82,20 +83,20 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene public void onClick(View v) { switch (v.getId()) { case R.id.register: - Intent intent = new Intent(this, RegisterV2Activity.class); - startActivity(intent); + Intent registerIntent = new Intent(this, RegisterV2Activity.class); + startActivity(registerIntent); finish(); break; case R.id.btn_submit: if(presenter.validateUserId(usernameId.getText().toString())) - { presenter.loginUser(usernameId.getText().toString(),passwordId.getText().toString()); - } break; case R.id.tv_forgotpass: - + Intent forgetPassIntent = new Intent(this, ResetPassV2Activity.class); + startActivity(forgetPassIntent); + finish(); break; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java index f754375f..a22d2cb9 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/gateway/RegisterV2Gateway.java @@ -5,6 +5,7 @@ import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2Interac import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.GetAllRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2InteractorInterface; +import com.gmeremit.online.gmeremittance_native.registerV2.model.RegisterApiResponse; import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2InteractorInterface; import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; import com.google.gson.JsonObject; @@ -24,12 +25,13 @@ public class RegisterV2Gateway extends PrivilegedGateway implements RegisterV2In } @Override - public Observable registerUser(String auth, String userName, String password, String clientId, String fcmId, String appVersion, String phoneBrand, String phoneOs, String deviceId, String osVersion) { + public Observable registerUser(String auth, String userName, String password,String dob, String clientId, String fcmId, String appVersion, String phoneBrand, String phoneOs, String deviceId, String osVersion) { JsonObject jsonObject=new JsonObject(); jsonObject.addProperty("username",userName); jsonObject.addProperty("password",password); + jsonObject.addProperty("dob",dob); jsonObject.addProperty("clientId",clientId); jsonObject.addProperty("uuid",deviceId); jsonObject.addProperty("appVersion",appVersion); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/model/RegisterApiResponse.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/model/RegisterApiResponse.java new file mode 100644 index 00000000..89b82097 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/model/RegisterApiResponse.java @@ -0,0 +1,53 @@ +package com.gmeremit.online.gmeremittance_native.registerV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class RegisterApiResponse { + + @SerializedName("ErrorCode") + @Expose + private String errorCode; + @SerializedName("Msg") + @Expose + private String msg; + @SerializedName("Id") + @Expose + private String id; + @SerializedName("Data") + @Expose + private Object data; + + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java index 644d10a9..f243fb7d 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2InteractorInterface.java @@ -4,6 +4,7 @@ import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse; +import com.gmeremit.online.gmeremittance_native.registerV2.model.RegisterApiResponse; import io.reactivex.Observable; import okhttp3.ResponseBody; @@ -14,6 +15,6 @@ public interface RegisterV2InteractorInterface extends BaseInteractorInterface { interface Register2GatewayInterface extends PrivilegedGatewayInterface { - Observable registerUser(String auth,String userName, String password, String clientId,String fcmId, String appVersion,String phoneBrand,String phoneOs,String deviceId,String osVersion); + Observable registerUser(String auth, String userName, String password,String dob, String clientId, String fcmId, String appVersion, String phoneBrand, String phoneOs, String deviceId, String osVersion); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java index 05a4d928..544a8f7d 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java @@ -2,7 +2,10 @@ package com.gmeremit.online.gmeremittance_native.registerV2.presenter; import com.gmeremit.online.gmeremittance_native.GmeApplication; import com.gmeremit.online.gmeremittance_native.base.BasePresenter; +import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.registerV2.gateway.RegisterV2Gateway; +import com.gmeremit.online.gmeremittance_native.registerV2.model.RegisterApiResponse; +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.google.firebase.iid.FirebaseInstanceId; @@ -10,7 +13,6 @@ import com.google.firebase.iid.FirebaseInstanceId; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.schedulers.Schedulers; -import okhttp3.ResponseBody; public class RegisterV2Presenter extends BasePresenter implements RegisterV2PresenterInterface, RegisterV2InteractorInterface { @@ -32,11 +34,14 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres this.view.setConfirmPasswordError("Confirm password doesnot match."); return false; } + view.setConfirmPasswordError(null); + view.setPasswordError(null); + view.setUserIdError(null); return true; } @Override - public void registerUser(String userId, String password) { + public void registerUser(String userId, String password, String dob) { String auth = "Basic " + Utils.toBase64("172017F9EC11222E8107142733:QRK2UM0Q:" + GmeApplication.getAppRelatedMetaData().getDeviceId()); String fcmID = FirebaseInstanceId.getInstance().getToken(); if (fcmID == null) @@ -46,6 +51,7 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres auth, userId, password, + dob, "172017F9EC11222E8107142733", fcmID, GmeApplication.getAppRelatedMetaData().getAppVersion(), @@ -53,12 +59,21 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres GmeApplication.getAppRelatedMetaData().getOsName(), GmeApplication.getAppRelatedMetaData().getDeviceId(), GmeApplication.getAppRelatedMetaData().getOsVersion()) + .doOnSubscribe(d->view.showProgressBar(true,"Registering user...")) + .doFinally(()->view.showProgressBar(false,"")) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(new RegistrationObserver()) ); } + @Override + public boolean validateDob(String dobString) { + + view.setDobError(null); + return true; + } + @Override public void onViewDestroyed() { super.onViewDestroyed(); @@ -68,21 +83,24 @@ public class RegisterV2Presenter extends BasePresenter implements RegisterV2Pres } } - public class RegistrationObserver extends GenericApiObserverResponse { + public class RegistrationObserver extends GenericApiObserverResponse { @Override - protected void onSuccess(ResponseBody responseBody) { - + protected void onSuccess(RegisterApiResponse responseBody) { + if(responseBody.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) + view.showPopUpMessage(responseBody.getMsg(), CustomAlertDialog.AlertType.SUCCESS,alertType->view.redirectToLogin()); + else + view.showPopUpMessage(responseBody.getMsg(), CustomAlertDialog.AlertType.FAILED,null); } @Override public void onFailed(String message) { - + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); } @Override protected void onConnectionNotEstablished(String message) { - + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); } } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2PresenterInterface.java index 3aae93d8..9ea98ea1 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2PresenterInterface.java @@ -2,26 +2,25 @@ package com.gmeremit.online.gmeremittance_native.registerV2.presenter; import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.CountryDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.DistrictDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ProvinceDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel; public interface RegisterV2PresenterInterface extends BasePresenterInterface { boolean validatePasswords(String pwdString, String pwdConfrimString); - void registerUser(String userId, String password); + void registerUser(String userId, String password, String dob); + + boolean validateDob(String dobString); interface RegisterV2ContractInterface extends BaseContractInterface { void setConfirmPasswordError(String error); void setPasswordError(String error); + void setDobError(String error); + void setUserIdError(String error); + + void redirectToLogin(); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java index cd31ad6a..e7ed53b8 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java @@ -1,9 +1,11 @@ package com.gmeremit.online.gmeremittance_native.registerV2.view; +import android.app.DatePickerDialog; import android.content.Intent; import android.support.design.widget.TextInputLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -17,6 +19,10 @@ import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2P import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.sign_in.view.LoginView; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; + import butterknife.BindView; import butterknife.ButterKnife; @@ -32,6 +38,9 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen @BindView(R.id.confirm_password) EditText confirmPasswordTextView; + @BindView(R.id.ed_dob) + EditText ed_dob; + @BindView(R.id.btn_submit) Button btn_submit; @@ -44,10 +53,15 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen @BindView(R.id.confirmpassWrapper) TextInputLayout confirmpassWrapper; + @BindView(R.id.dobWrapper) + TextInputLayout dobWrapper; + @BindView(R.id.tv_login) TextView tv_login; RegisterV2PresenterInterface presenter; + private DatePickerDialog datePickerDialog; + private Calendar newCalendar; @Override protected void onCreate(Bundle savedInstanceState) { @@ -61,6 +75,7 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen private void initialize() { this.presenter=new RegisterV2Presenter(this); + newCalendar = Calendar.getInstance(); } private void performDefaultAction(Bundle savedInstanceState) { @@ -72,6 +87,7 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen super.onStart(); tv_login.setOnClickListener(this); btn_submit.setOnClickListener(this); + ed_dob.setOnClickListener(this); } @Override @@ -79,6 +95,7 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen super.onStop(); tv_login.setOnClickListener(null); btn_submit.setOnClickListener(null); + ed_dob.setOnClickListener(null); } @Override @@ -86,18 +103,33 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen switch(v.getId()) { case R.id.tv_login: - Intent i = new Intent(this, LoginV2Activity.class); - startActivity(i); - finish(); + redirectToLogin(); + break; + + case R.id.ed_dob: + promptDatePicker(); break; case R.id.btn_submit: - if(presenter.validatePasswords(passwordTextView.getText().toString(),confirmPasswordTextView.getText().toString())) - presenter.registerUser(emailMobileTextView.getText().toString(),passwordTextView.getText().toString()); + if(presenter.validatePasswords(passwordTextView.getText().toString(),confirmPasswordTextView.getText().toString())&&presenter.validateDob(ed_dob.getText().toString())) + presenter.registerUser(emailMobileTextView.getText().toString(),passwordTextView.getText().toString(),ed_dob.getText().toString()); break; } } + public void promptDatePicker() { + datePickerDialog = new DatePickerDialog(this, (DatePickerDialog.OnDateSetListener) (view, year, monthOfYear, dayOfMonth) -> { + Calendar newDate = Calendar.getInstance(); + newDate.set(year, monthOfYear, dayOfMonth); + Log.d("year", year + monthOfYear + dayOfMonth + " ---"); + + ed_dob.setText(new SimpleDateFormat("yyyy/dd/MM", Locale.US).format(newDate.getTime())); + }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); + + datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis()); + datePickerDialog.getDatePicker().updateDate(1990, 1, 1); + datePickerDialog.show(); + } @Override public void setConfirmPasswordError(String error) { confirmpassWrapper.setError(error); @@ -108,10 +140,23 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen passwordWrapper.setError(error); } + @Override + public void setDobError(String error) { + dobWrapper.setError(error); + } + @Override public void setUserIdError(String error) { useridWrapper.setError(error); } + @Override + public void redirectToLogin() { + Intent redirectIntent=new Intent(this,LoginV2Activity.class); + redirectIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(redirectIntent); + finish(); + } + } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/gateway/ResetPassV2Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/gateway/ResetPassV2Gateway.java new file mode 100644 index 00000000..a96cffe2 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/gateway/ResetPassV2Gateway.java @@ -0,0 +1,32 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.gateway; + +import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; +import com.gmeremit.online.gmeremittance_native.kycV2.presenter.KYCV2InteractorInterface; +import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2InteractorInterface; +import com.gmeremit.online.gmeremittance_native.resetpassV2.model.ResetApiResponse; +import com.gmeremit.online.gmeremittance_native.resetpassV2.presenter.ResetPassV2InteractorInterface; +import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; +import com.google.gson.JsonObject; + +import io.reactivex.Observable; + +public class ResetPassV2Gateway extends PrivilegedGateway implements ResetPassV2InteractorInterface.ResetPassV2GatewayInterface { + + + + + private final ResetPassV2InteractorInterface interactor; + + public ResetPassV2Gateway(ResetPassV2InteractorInterface interactorInterface) { + this.interactor=interactorInterface; + } + + @Override + public Observable resetPassV2(String auth, String userId, String dob) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("userId",userId); + jsonObject.addProperty("dob",dob); + + return HttpClientV2.getInstance().resetPassV2(auth,jsonObject); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/model/ResetApiResponse.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/model/ResetApiResponse.java new file mode 100644 index 00000000..5d069ccc --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/model/ResetApiResponse.java @@ -0,0 +1,53 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class ResetApiResponse { + + @SerializedName("ErrorCode") + @Expose + private String errorCode; + @SerializedName("Msg") + @Expose + private String msg; + @SerializedName("Id") + @Expose + private String id; + @SerializedName("Data") + @Expose + private Object data; + + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2InteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2InteractorInterface.java new file mode 100644 index 00000000..45dbde10 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2InteractorInterface.java @@ -0,0 +1,16 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.presenter; + +import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface; +import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface; +import com.gmeremit.online.gmeremittance_native.resetpassV2.model.ResetApiResponse; + +import io.reactivex.Observable; + +public interface ResetPassV2InteractorInterface extends BaseInteractorInterface { + + + interface ResetPassV2GatewayInterface extends PrivilegedGatewayInterface + { + Observable resetPassV2(String auth,String userId,String dob); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2Presenter.java new file mode 100644 index 00000000..44330873 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2Presenter.java @@ -0,0 +1,82 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.presenter; + +import com.gmeremit.online.gmeremittance_native.GmeApplication; +import com.gmeremit.online.gmeremittance_native.base.BasePresenter; +import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; +import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2PresenterInterface; +import com.gmeremit.online.gmeremittance_native.resetpassV2.gateway.ResetPassV2Gateway; +import com.gmeremit.online.gmeremittance_native.resetpassV2.model.ResetApiResponse; +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 io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.schedulers.Schedulers; + +public class ResetPassV2Presenter extends BasePresenter implements ResetPassV2PresenterInterface, ResetPassV2InteractorInterface { + + + private final ResetPassV2Gateway gateway; + private final ResetPassV2ContractInterface view; + CompositeDisposable compositeDisposable; + + public ResetPassV2Presenter(ResetPassV2PresenterInterface.ResetPassV2ContractInterface view) { + this.gateway= new ResetPassV2Gateway(this); + compositeDisposable=new CompositeDisposable(); + this.view=view; + } + + + @Override + public boolean validate(String emailId, String dob) { + return true; + } + + @Override + public void resetPassword(String emailId, String dob) { + String auth = "Basic " + Utils.toBase64("172017F9EC11222E8107142733:QRK2UM0Q:" + GmeApplication.getAppRelatedMetaData().getDeviceId()); + compositeDisposable.add( + gateway.resetPassV2(auth,emailId,dob) + .doOnSubscribe(d->view.showProgressBar(true,"Requesting...")) + .doFinally(()->view.showProgressBar(false,"")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new ResetPassObserver()) + + ); + + } + + @Override + public void onViewDestroyed() { + super.onViewDestroyed(); + if (compositeDisposable != null & !compositeDisposable.isDisposed()) { + compositeDisposable.dispose(); + compositeDisposable.clear(); + } + } + + public class ResetPassObserver extends GenericApiObserverResponse + { + + @Override + protected void onSuccess(ResetApiResponse resetApiResponse) { + if(resetApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) + view.showPopUpMessage(resetApiResponse.getMsg(), CustomAlertDialog.AlertType.SUCCESS,alertType->view.exitView()); + else + view.showPopUpMessage(resetApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED,null); + } + + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); + + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); + } + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2PresenterInterface.java new file mode 100644 index 00000000..32f1c89e --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/presenter/ResetPassV2PresenterInterface.java @@ -0,0 +1,19 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.presenter; + +import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; +import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; + +public interface ResetPassV2PresenterInterface extends BasePresenterInterface { + + + boolean validate(String emailId, String dob); + + void resetPassword(String emailId, String dob); + + + interface ResetPassV2ContractInterface extends BaseContractInterface + { + void showIncorrectEmail(String message); + void showIncorrectDob(String message); + +}} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/view/ResetPassV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/view/ResetPassV2Activity.java new file mode 100644 index 00000000..49c9205c --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/resetpassV2/view/ResetPassV2Activity.java @@ -0,0 +1,114 @@ +package com.gmeremit.online.gmeremittance_native.resetpassV2.view; + +import android.app.DatePickerDialog; +import android.support.design.widget.TextInputLayout; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.DatePicker; +import android.widget.EditText; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.base.BaseActivity; +import com.gmeremit.online.gmeremittance_native.resetpassV2.presenter.ResetPassV2Presenter; +import com.gmeremit.online.gmeremittance_native.resetpassV2.presenter.ResetPassV2PresenterInterface; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class ResetPassV2Activity extends BaseActivity implements View.OnClickListener, ResetPassV2PresenterInterface.ResetPassV2ContractInterface { + + @BindView(R.id.email_mobile) + EditText emailId; + + @BindView(R.id.ed_dob) + EditText ed_dob; + + @BindView(R.id.useridWrapper) + TextInputLayout useridWrapper; + + @BindView(R.id.dobWrapper) + TextInputLayout dobWrapper; + + + @BindView(R.id.btn_submit) + View btn_submit; + + + private DatePickerDialog datePickerDialog; + + + private ResetPassV2PresenterInterface presenterInterface; + private Calendar newCalendar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_reset_pass_v2); + ButterKnife.bind(this); + initialize(); + performDefaultAction(savedInstanceState); + } + + private void initialize() { + presenterInterface = new ResetPassV2Presenter(this); + newCalendar = Calendar.getInstance(); + } + + private void performDefaultAction(Bundle savedInstanceState) { + + } + + @Override + protected void onStart() { + super.onStart(); + ed_dob.setOnClickListener(this); + btn_submit.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.ed_dob: + promptDatePicker(); + break; + + case R.id.btn_submit: + if (presenterInterface.validate(emailId.getText().toString(), ed_dob.getText().toString())) { + presenterInterface.resetPassword(emailId.getText().toString(), ed_dob.getText().toString()); + } + break; + } + } + + public void promptDatePicker() { + datePickerDialog = new DatePickerDialog(this, (DatePickerDialog.OnDateSetListener) (view, year, monthOfYear, dayOfMonth) -> { + Calendar newDate = Calendar.getInstance(); + newDate.set(year, monthOfYear, dayOfMonth); + Log.d("year", year + monthOfYear + dayOfMonth + " ---"); + + ed_dob.setText(new SimpleDateFormat("yyyy/dd/MM", Locale.US).format(newDate.getTime())); + }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); + + datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis()); + datePickerDialog.getDatePicker().updateDate(1990, 1, 1); + + datePickerDialog.show(); + } + + @Override + public void showIncorrectEmail(String message) { + useridWrapper.setError(message); + } + + @Override + public void showIncorrectDob(String message) { + dobWrapper.setError(message); + + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java index 08a66c9c..1604a50d 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java @@ -21,6 +21,8 @@ import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.home.view.HomeActivity; import com.gmeremit.online.gmeremittance_native.invite.view.InviteActivity; import com.gmeremit.online.gmeremittance_native.kycform.view.KycFormActivity; +import com.gmeremit.online.gmeremittance_native.loginV2.view.LoginV2Activity; +import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; import com.gmeremit.online.gmeremittance_native.reward_points.view.RewardPointsActivity; import com.gmeremit.online.gmeremittance_native.sign_in.view.LoginView; import com.gmeremit.online.gmeremittance_native.signup.view.SignUpActivity; @@ -136,10 +138,10 @@ public class SplashScreen extends AppCompatActivity { public void onClick(View view) { switch (view.getId()) { case R.id.btn_login: - startActivity(new Intent(this, LoginView.class)); + startActivity(new Intent(this, LoginV2Activity.class)); break; case R.id.btn_new_user: - startActivity(new Intent(this, SignUpActivity.class)); + startActivity(new Intent(this, RegisterV2Activity.class)); break; } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java index 03b90ead..42459345 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java @@ -135,5 +135,6 @@ public class API_URL { public static final String SIGN_IN_V2 = BuildConfig.BASE_URL + "users/access-code"; public static final String SIGN_UP_V2 = "mobile/customerRegister"; + public static final String RESET_PASSWORD_V2 = "mobile/passwordReset"; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java index 9094e408..0233e9c9 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java @@ -36,12 +36,14 @@ import com.gmeremit.online.gmeremittance_native.recipient.model.response_data.Al import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.GetAllRecipientApiResponse; +import com.gmeremit.online.gmeremittance_native.registerV2.model.RegisterApiResponse; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResendCodeBodyRequest; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResetPasswordRequestBody; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.SecretAnswerRequestBody; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.UserIdRequestBody; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.UserIdResponseBody; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.VerifyCodeRequestBody; +import com.gmeremit.online.gmeremittance_native.resetpassV2.model.ResetApiResponse; import com.gmeremit.online.gmeremittance_native.reward_points.model.Reward; import com.gmeremit.online.gmeremittance_native.reward_points.model.RewardAddress; import com.gmeremit.online.gmeremittance_native.reward_points.model.RewardAddressResponse; @@ -587,6 +589,10 @@ public interface ApiEndpoints { @POST(API_URL.SIGN_UP_V2) @Headers("Content-Type: application/json") - Observable signUpV2(@Header("Authorization") String token, @Body JsonObject signInJsonBody); + Observable signUpV2(@Header("Authorization") String token, @Body JsonObject signInJsonBody); + + @POST(API_URL.RESET_PASSWORD_V2) + @Headers("Content-Type: application/json") + Observable resetPassV2(@Header("Authorization") String token, @Body JsonObject signInJsonBody); } diff --git a/app/src/main/res/layout/activity_login_v2.xml b/app/src/main/res/layout/activity_login_v2.xml index a1a2e663..17466ec1 100644 --- a/app/src/main/res/layout/activity_login_v2.xml +++ b/app/src/main/res/layout/activity_login_v2.xml @@ -43,11 +43,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" - + android:paddingTop="8dp" + android:paddingBottom="8dp" android:text="Login with your email address or mobile number" android:textSize="14sp" - app:txtfontName="@string/regular" - /> + app:txtfontName="@string/regular" /> @@ -31,8 +32,8 @@ android:id="@+id/welcome_label" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="6dp" - android:text="Register to\nGlobal Money Express" + android:paddingTop="10dp" + android:paddingBottom="5dp" android:text="Register to\nGlobal Money Express" android:textColor="@color/colorAccent" android:textSize="24sp" app:txtfontName="@string/bold"/> @@ -43,6 +44,8 @@ android:layout_height="wrap_content" android:text="Register with your email address or mobile number" android:textSize="14sp" + android:paddingTop="8dp" + android:paddingBottom="8dp" app:txtfontName="@string/regular" /> @@ -63,6 +66,46 @@ /> + + + + + + + + + diff --git a/app/src/main/res/layout/activity_reset_pass_v2.xml b/app/src/main/res/layout/activity_reset_pass_v2.xml new file mode 100644 index 00000000..31265af9 --- /dev/null +++ b/app/src/main/res/layout/activity_reset_pass_v2.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file