Explorar el Código

[회원가입][Bug] 모바일 인증 인증번호 발송 1분 대기 시, 인증번호 확인버튼 비활성
- edit text 에 포커스 in 시 validation 체크에 의해서 활성화 되고 있었음

hyodong.min hace 7 años
padre
commit
99bb688641

+ 15 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/auth/MobileAuthPresenter.java

@@ -415,7 +415,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
 
   private void resetInputAll() {
     confirmRetryCount = 0;
-//    view.setEnabledRequestNumberButton(false);
+//    setEnabledRequestNumberButton(false);
     view.setEnabledRequestConfirmTextView(false);
     view.setEnabledRequestConfirmButton(false);
     view.doClearRequestConfirmTextView();
@@ -445,7 +445,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
     Log.i("APP# MobileAuthPresenter | doSomeWhenConfirmSuccess", "|" + bean.toPrettyJson());
 
     view.setEnabledExpansionTimeButton(false);
-    view.setEnabledRequestNumberButton(false);
+    setEnabledRequestNumberButton(false);
     view.setEnabledRequestConfirmTextView(false);
     view.setEnabledRequestConfirmButton(false);
     view.clearFocusAll();
@@ -480,7 +480,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
 
   private void verifyRequestNumberButton(boolean isDisplay) {
     boolean isValidated = verifyRequestNumberValidation(isDisplay);
-    view.setEnabledRequestNumberButton(isValidated);
+    setEnabledRequestNumberButton(isValidated);
   }
 
   private boolean verifyRequestNumberValidation(boolean isDisplay) {
@@ -524,7 +524,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
 
       prepareConfirm();
 
-      view.setEnabledRequestNumberButton(false);
+      setEnabledRequestNumberButton(false);
 
       AuthRequestBean bean = new AuthRequestBean();
       bean.setName(userBean.getName());
@@ -558,7 +558,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
   }
 
   private void doSomeWhenSendingFail() {
-    view.setEnabledRequestNumberButton(true);
+    setEnabledRequestNumberButton(true);
     view.setEnabledRequestConfirmTextView(false);
     view.setEnabledRequestConfirmButton(false);
     showSendingPopup(R.string.phone_identify_submit_message_fail);
@@ -665,6 +665,8 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
       .show();
   }
 
+  private boolean isAvailableRequestNumberButtonToDisable = true;
+
   private void countRetryButton() {
     int takingNumber = 10 + 1;
     if (numberRequestingCount > 3) {
@@ -676,6 +678,8 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
       view.doPhoneNumberCheckedValidationMessage(R.string.phone_identify_phone_validation_limit);
     }
 
+    isAvailableRequestNumberButtonToDisable = false;
+
     int finalTakingNumber = takingNumber;
     disposable.add(
       Observable.interval(0, 1000, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
@@ -692,18 +696,23 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
           }
           , Throwable::printStackTrace,
           () -> {
+            isAvailableRequestNumberButtonToDisable = true;
 
             if (numberRequestingCount > 3) {
               numberRequestingCount = 0;
               verifyPhoneNumber(userBean.getPhoneNumber(), true);
             }
-            view.setEnabledRequestNumberButton(true);
+            setEnabledRequestNumberButton(true);
             view.renderRetryButton(ResourceUtil.getString(R.string.phone_identify_submit_retry));
           }
         )
     );
   }
 
+  private void setEnabledRequestNumberButton(boolean isEnabled) {
+    view.setEnabledRequestNumberButton(isAvailableRequestNumberButtonToDisable && isEnabled);
+  }
+
   /**
    * 동의 세부 정보 보기 눌렀을 때
    *