From cb2303c33dfa2e2ccc14c4ff0054877fc15cafde Mon Sep 17 00:00:00 2001 From: preyearegmi Date: Tue, 29 Jan 2019 18:49:56 +0900 Subject: [PATCH] PreDashboard input field changed --- .../presenter/ResetPassV2Presenter.java | 12 +- .../ResetPassV2PresenterInterface.java | 4 +- .../resetpassV2/view/ResetPassV2Activity.java | 108 ++++++++++++------ .../res/layout/activity_reset_pass_v2.xml | 105 ++++++++++------- 4 files changed, 149 insertions(+), 80 deletions(-) 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 index cb52c256..dbc12e0c 100644 --- 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 @@ -44,7 +44,14 @@ public class ResetPassV2Presenter extends BasePresenter implements ResetPassV2Pr } @Override - public boolean validateEmail(String emailId) { + public boolean validateAll(String email, String dob) { + boolean isEmailValid=validateEmail(email); + boolean isDobValid=validateDob(dob); + return isEmailValid&&isDobValid; + } + + + private boolean validateEmail(String emailId) { if(!Utils.isValidEmail(emailId)) { this.view.showIncorrectEmail("Please enter a valid email id"); @@ -54,8 +61,7 @@ public class ResetPassV2Presenter extends BasePresenter implements ResetPassV2Pr return true; } - @Override - public boolean validateDob(String dobString) { + private boolean validateDob(String dobString) { if(dobString==null||dobString.trim().length()<1) { view.showIncorrectDob("Please enter a valid dob"); 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 index 8de7a513..0454ee1b 100644 --- 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 @@ -9,9 +9,9 @@ public interface ResetPassV2PresenterInterface extends BasePresenterInterface { void resetPassword(String emailId, String dob); - boolean validateEmail(String email); - boolean validateDob( String dob); + + boolean validateAll(String email,String dob); interface ResetPassV2ContractInterface extends BaseContractInterface 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 index 47d53654..5506ea36 100644 --- 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 @@ -1,16 +1,23 @@ package com.gmeremit.online.gmeremittance_native.resetpassV2.view; import android.app.DatePickerDialog; +import android.graphics.Rect; import android.support.design.widget.TextInputLayout; +import android.support.v4.view.GestureDetectorCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; +import android.view.GestureDetector; +import android.view.MotionEvent; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; +import android.widget.FrameLayout; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BaseActivity; +import com.gmeremit.online.gmeremittance_native.customwidgets.GmeErrorTextView; +import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; import com.gmeremit.online.gmeremittance_native.resetpassV2.presenter.ResetPassV2Presenter; import com.gmeremit.online.gmeremittance_native.resetpassV2.presenter.ResetPassV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.utils.Utils; @@ -32,11 +39,11 @@ public class ResetPassV2Activity extends BaseActivity implements View.OnClickLis @BindView(R.id.ed_dob) EditText ed_dob; - @BindView(R.id.useridWrapper) - TextInputLayout useridWrapper; + @BindView(R.id.emailErrorTxt) + GmeErrorTextView emailErrorTxt; - @BindView(R.id.dobWrapper) - TextInputLayout dobWrapper; + @BindView(R.id.dateErrorTxt) + GmeErrorTextView dateErrorTxt; @BindView(R.id.btn_submit) @@ -46,11 +53,16 @@ public class ResetPassV2Activity extends BaseActivity implements View.OnClickLis View iv_back; - private DatePickerDialog datePickerDialog; + @BindView(R.id.ed_dob_container) + FrameLayout ed_dob_container; + private ResetPassV2PresenterInterface presenterInterface; - private Calendar newCalendar; + + + private GestureDetectorCompat dobConatinerClickGestureDetector; + private ResetDobClickGestureDetector dobContainerOnClickGestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { @@ -63,33 +75,47 @@ public class ResetPassV2Activity extends BaseActivity implements View.OnClickLis private void initialize() { presenterInterface = new ResetPassV2Presenter(this); - newCalendar = Calendar.getInstance(); iv_back.setVisibility(View.VISIBLE); + dobContainerOnClickGestureDetector = new ResetDobClickGestureDetector(); + dobConatinerClickGestureDetector = new GestureDetectorCompat(this, dobContainerOnClickGestureDetector); } private void performDefaultAction(Bundle savedInstanceState) { } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + return (dobConatinerClickGestureDetector.onTouchEvent(ev) || super.dispatchTouchEvent(ev)); + } + + + @Override protected void onStart() { super.onStart(); - ed_dob.setOnClickListener(this); btn_submit.setOnClickListener(this); iv_back.setOnClickListener(this); } + + @Override + protected void onStop() { + super.onStop(); + btn_submit.setOnClickListener(null); + iv_back.setOnClickListener(null); + } + @Override public void onClick(View v) { switch (v.getId()) { - case R.id.ed_dob: - promptDatePicker(); - break; + case R.id.btn_submit: - if (presenterInterface.validateEmail(emailId.getText().toString()) && presenterInterface.validateDob(ed_dob.getText().toString())) { - hideKeyBoard(); - presenterInterface.resetPassword(emailId.getText().toString(), ed_dob.getText().toString()); + if (presenterInterface.validateAll(emailId.getText().toString(),ed_dob.getText().toString()) ) { + hideKeyBoard(); + presenterInterface.resetPassword(emailId.getText().toString(), ed_dob.getText().toString()); } break; @@ -100,16 +126,6 @@ public class ResetPassV2Activity extends BaseActivity implements View.OnClickLis } public void promptDatePicker() { -// datePickerDialog = new DatePickerDialog(this, (DatePickerDialog.OnDateSetListener) (view, year, monthOfYear, dayOfMonth) -> { -// Calendar newDate = Calendar.getInstance(); -// newDate.set(year, monthOfYear, dayOfMonth); -// ed_dob.setText(new SimpleDateFormat(Utils.getDefaultDateFormat(), Locale.US).format(newDate.getTime())); -// }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); -// -// datePickerDialog.getDatePicker().setMaxDate(new Date().getTime() - 10000); -// datePickerDialog.getDatePicker().updateDate(1990, 1, 1); -// -// datePickerDialog.show(); hideKeyBoard(); SpinnerDatePickerDialogBuilder builder = new SpinnerDatePickerDialogBuilder(); @@ -136,19 +152,43 @@ public class ResetPassV2Activity extends BaseActivity implements View.OnClickLis @Override public void showIncorrectEmail(String message) { - if (message == null) - useridWrapper.setErrorEnabled(false); - else - useridWrapper.setErrorEnabled(true); - useridWrapper.setError(message); + emailErrorTxt.setErrorText(message); } @Override public void showIncorrectDob(String message) { - if (message == null) - dobWrapper.setErrorEnabled(false); - else - dobWrapper.setErrorEnabled(true); - dobWrapper.setError(message); + dateErrorTxt.setErrorText(message); + } + + + class ResetDobClickGestureDetector extends GestureDetector.SimpleOnGestureListener { + @Override + public boolean onSingleTapUp(MotionEvent e) { + if (e.getAction() == MotionEvent.ACTION_UP) { + boolean isDobContainerClicked = checkIfDateContainerIsClicked(e.getX(), e.getY()); + if (isDobContainerClicked) + promptDatePicker(); + return isDobContainerClicked; + } + return super.onSingleTapUp(e); + } + + private boolean checkIfDateContainerIsClicked(float x, float y) { + int posX = (int) x; + int posY = (int) y; + + int[] dobConatinerLeftAndTopCoordinates = new int[2]; + + + ed_dob_container.getLocationOnScreen(dobConatinerLeftAndTopCoordinates); + + Rect dobContainerBoundRect = new Rect(dobConatinerLeftAndTopCoordinates[0], dobConatinerLeftAndTopCoordinates[1], + dobConatinerLeftAndTopCoordinates[0] + ed_dob_container.getMeasuredWidth(), + dobConatinerLeftAndTopCoordinates[1] + ed_dob_container.getMeasuredHeight()); + + return dobContainerBoundRect.contains(posX, posY); + } + + } } diff --git a/app/src/main/res/layout/activity_reset_pass_v2.xml b/app/src/main/res/layout/activity_reset_pass_v2.xml index b6539908..a5056efb 100644 --- a/app/src/main/res/layout/activity_reset_pass_v2.xml +++ b/app/src/main/res/layout/activity_reset_pass_v2.xml @@ -49,65 +49,88 @@ app:txtfontName="@string/regular" /> - + - - - - + android:imeOptions="actionDone" + android:background="@drawable/curve_rectangle_edit_text" + /> + + - + - - - + android:imeOptions="actionDone" + /> +