|
|
@ -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,31 +75,45 @@ 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())) { |
|
|
|
if (presenterInterface.validateAll(emailId.getText().toString(),ed_dob.getText().toString()) ) { |
|
|
|
hideKeyBoard(); |
|
|
|
presenterInterface.resetPassword(emailId.getText().toString(), ed_dob.getText().toString()); |
|
|
|
} |
|
|
@ -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); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |