Browse Source

[회원가입][Bug] 프젠터 정리

hyodong.min 7 years ago
parent
commit
c6274c670e

+ 4 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/Event.java

@@ -48,11 +48,14 @@ public class Event {
   public final static int SPECIAL_CODE_CLICK = 20;
   public static final int CONFIRM = 21;
   public static final int RESULT = 22;
+  public static final int CHANGED = 23;
+  public static final int INIT = 24;
+  public static final int DETAIL = 25;
 
   @Retention(RetentionPolicy.SOURCE)
   @IntDef({
     NONE, CLICK, BACK, SIGN_UP, LOGIN, CHECK, UNCHECK, JOINED, TUTORIAL_CLOSE, TUTORIAL_NEXT,
-    RETRY, INPUT_PIN, NETWORK_CONNECTED,
+    RETRY, INPUT_PIN, NETWORK_CONNECTED, CHANGED, INIT, DETAIL,
     SUCCESS, FAIL, CANCEL, EMAIL_CLICK, SPECIAL_CODE_CLICK, CONFIRM, RESULT
   })
   public @interface ID {}

+ 2 - 13
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/MobileAuthorizationView.java

@@ -17,7 +17,6 @@ import android.view.inputmethod.InputMethodManager;
 import android.widget.AdapterView;
 import android.widget.Button;
 import android.widget.CheckBox;
-import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.RadioButton;
@@ -235,20 +234,10 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     });
 
     // gender
-    radioSelectMale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-      @Override
-      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
-        presenter.setOnGenderCheckedChanged(b);
-      }
-    });
+    radioSelectMale.setOnCheckedChangeListener((compoundButton, b) -> presenter.setOnGenderCheckedChanged(b));
 
     // nationality
-    radioSelectLocal.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-      @Override
-      public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
-        presenter.onNationalCheckedChanged(b);
-      }
-    });
+    radioSelectLocal.setOnCheckedChangeListener((compoundButton, b) -> presenter.onNationalCheckedChanged(b));
 
     // 폰 국번
     spinnerFirstPhoneNumber.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

+ 37 - 28
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpAgreeFragment.java

@@ -68,7 +68,43 @@ public class SignUpAgreeFragment extends FragmentBase<SignUpAgreePresenter> impl
 
     buttonAgree = parent.findViewById(R.id.button_sign_up_agree);
 
-    items = presenter.getAgreeItems();
+    presenter.onEvent(new Event.Builder(Event.INIT).build());
+
+  }
+
+
+  @Override
+  protected SignUpAgreePresenter definePresenter() {
+    return new SignUpAgreePresenter(getModel(SignUpModel.class), this);
+  }
+
+
+  private CheckBox getCheckBoxByIndex(int index) {
+    return getView().findViewById(ResourceUtil.getId("agree_check" + index));
+  }
+
+  private void notifyAgreeChanged() {
+    presenter.onEvent(new Event.Builder(Event.CHANGED).build());
+  }
+
+  private void notifyDetailPressed(int index, String data) {
+    Log.i("APP# SignUpAgreeHolder | draw", "| index: " + index + ", data: " + data);
+    presenter.onEvent(new Event.Builder(Event.DETAIL).integer(index).json(data).build());
+
+  }
+
+  private void checkAll(boolean isChecked) {
+    SignUpAgreeItemBean bean;
+    for (int i = 0; i < len; ++i) {
+      bean = items.get(i);
+      bean.setChecked(isChecked);
+    }
+  }
+  @Override
+  public void init(List<SignUpAgreeItemBean> agreeItemBeans) {
+
+    this.items = agreeItemBeans;
+    View parent = getView();
 
     len = items.size();
     CheckBox checkBox;
@@ -99,33 +135,6 @@ public class SignUpAgreeFragment extends FragmentBase<SignUpAgreePresenter> impl
     });
   }
 
-  @Override
-  protected SignUpAgreePresenter definePresenter() {
-    return new SignUpAgreePresenter(getModel(SignUpModel.class), this);
-  }
-
-
-  private CheckBox getCheckBoxByIndex(int index) {
-    return getView().findViewById(ResourceUtil.getId("agree_check" + index));
-  }
-
-  private void notifyAgreeChanged() {
-    presenter.onAgreeChanged();
-  }
-
-  private void notifyDetailPressed(int index, String data) {
-    Log.i("APP# SignUpAgreeHolder | draw", "| index: " + index + ", data: " + data);
-
-  }
-
-  private void checkAll(boolean isChecked) {
-    SignUpAgreeItemBean bean;
-    for (int i = 0; i < len; ++i) {
-      bean = items.get(i);
-      bean.setChecked(isChecked);
-    }
-  }
-
   @Override
   public void setAgreeButtonEnabled(boolean isEnabled) {
     buttonAgree.setEnabled(isEnabled);

+ 15 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpMobileAuthorizationFragment.java

@@ -10,8 +10,11 @@ import android.widget.LinearLayout;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.model.SignUpModel;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.ISignUpView;
 import kr.co.zumo.app.lifeplus.view.custom.MobileAuthorizationView;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
+import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
 import kr.co.zumo.app.lifeplus.view.fragment.FragmentBase;
 import kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpMobileAuthorizationPresenter;
 
@@ -43,7 +46,18 @@ public class SignUpMobileAuthorizationFragment extends FragmentBase<SignUpMobile
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    authView = new MobileAuthorizationView(getContext(), presenter);
+    authView = new MobileAuthorizationView(getContext(), new IDialogResultListener() {
+      @Override
+      public void onDialogResult(DialogBase dialog, Event event) {
+        presenter.onEvent(event);
+      }
+
+      @Override
+      public void onDialogCanceled(DialogBase dialog) {
+        presenter.onEvent(new Event.Builder(Event.CANCEL).build());
+
+      }
+    });
 
     LinearLayout layout = getView().findViewById(R.id.container);
     layout.addView(authView);

+ 5 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpPinFragment.java

@@ -23,6 +23,7 @@ import java.util.Collections;
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.model.SignUpModel;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.fragment.FragmentBase;
 import kr.co.zumo.app.lifeplus.view.presenter.signup.ISignUpPinView;
 import kr.co.zumo.app.lifeplus.view.presenter.signup.SignUpPinPresenter;
@@ -95,7 +96,8 @@ public class SignUpPinFragment extends FragmentBase<SignUpPinPresenter> implemen
 
     shuffleKeyboard();
 
-    presenter.onPinStart();
+    //pinDriver.onPinStart();
+    presenter.onEvent(new Event.Builder(Event.INIT).build());
   }
 
   @Override
@@ -144,7 +146,8 @@ public class SignUpPinFragment extends FragmentBase<SignUpPinPresenter> implemen
     String pin = password;
     password = "";
 
-    presenter.onPinResult(pin);
+//    pinDriver.onPinResult(pin)
+    presenter.onEvent(new Event.Builder(Event.RESULT).string(pin).build());
   }
 
   private void doSomeAfterClickDeleteButton() {

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/ISignUpAgreeView.java

@@ -3,6 +3,9 @@
  */
 package kr.co.zumo.app.lifeplus.view.presenter.signup;
 
+import java.util.List;
+
+import kr.co.zumo.app.lifeplus.bean.SignUpAgreeItemBean;
 import kr.co.zumo.app.lifeplus.view.ISignUpView;
 
 /**
@@ -17,4 +20,5 @@ import kr.co.zumo.app.lifeplus.view.ISignUpView;
  */
 public interface ISignUpAgreeView extends ISignUpView {
   void setAgreeButtonEnabled(boolean isEnabled);
+  void init(List<SignUpAgreeItemBean> agreeItemBeans);
 }

+ 36 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpAgreePresenter.java

@@ -10,6 +10,12 @@ import kr.co.zumo.app.lifeplus.model.SignUpModel;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.command.FragmentChangeCommand;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
+import kr.co.zumo.app.lifeplus.view.dialog.IAttribute;
+import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
+import kr.co.zumo.app.lifeplus.view.dialog.WebDialog;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -72,12 +78,39 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
       case Event.SUCCESS:
         onCommand(new FragmentChangeCommand(ScreenID.SIGN_UP_COMPLETED, ScreenID.DIRECTION_NEXT));
         break;
+      case Event.CHANGED:
+        onAgreeChanged();
+        break;
+      case Event.INIT:
+        view.init(getAgreeItems());
+        break;
+      case Event.DETAIL:
+        onClickDetail(event);
+        break;
       default:
         break;
     }
   }
 
-  public void onAgreeChanged() {
+  private void onClickDetail(Event event) {
+    String url = event.fromJson(SignUpAgreeItemBean.class).getDetailUrl();
+    DialogBuilder.create(DialogID.WEB)
+      .listener(new IDialogResultListener() {
+        @Override
+        public void onDialogResult(DialogBase dialog, Event event) {
+
+        }
+
+        @Override
+        public void onDialogCanceled(DialogBase dialog) {
+
+        }
+      })
+      .attribute((IAttribute<WebDialog>) d -> d.setUrl(url))
+      .show();
+  }
+
+  private void onAgreeChanged() {
 
     __validate();
 
@@ -89,7 +122,7 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
    *
    * @return
    */
-  public List<SignUpAgreeItemBean> getAgreeItems() {
+  private List<SignUpAgreeItemBean> getAgreeItems() {
     return model.getAgreeItems();
   }
 
@@ -109,6 +142,6 @@ public class SignUpAgreePresenter extends Presenter<SignUpModel, ISignUpAgreeVie
   }
 
   private void setButtonUsage() {
-      view.setAgreeButtonEnabled(isValidated);
+    view.setAgreeButtonEnabled(isValidated);
   }
 }

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpCompletePresenter.java

@@ -57,7 +57,8 @@ public class SignUpCompletePresenter extends SignUpFragmentPresenter {
 
   @Override
   public boolean onBackPressed() {
-    return false;
+    onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_MAIN, ScreenID.DIRECTION_BACK));
+    return true;
   }
 
   @Override

+ 41 - 46
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpMobileAuthorizationPresenter.java

@@ -12,8 +12,6 @@ import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.ISignUpView;
 import kr.co.zumo.app.lifeplus.view.command.FragmentChangeCommand;
-import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
-import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
 
 /**
  * SignUpMobileAuthorizationPresenter
@@ -25,7 +23,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
  * @history 민효동   [2018. 9. 28.]   [최초 작성]
  * @since 2018. 9. 28.
  */
-public class SignUpMobileAuthorizationPresenter extends SignUpFragmentPresenter implements IDialogResultListener {
+public class SignUpMobileAuthorizationPresenter extends SignUpFragmentPresenter {
 
   public SignUpMobileAuthorizationPresenter(SignUpModel model, ISignUpView view) {
     super(model, view);
@@ -70,58 +68,55 @@ public class SignUpMobileAuthorizationPresenter extends SignUpFragmentPresenter
   @Override
   protected void onEventInternal(Event event) {
     switch (event.getEventId()) {
-      case Event.SUCCESS:
+      case Event.CONFIRM:
         onCommand(new FragmentChangeCommand(ScreenID.SIGN_UP_PIN, ScreenID.DIRECTION_NEXT));
         break;
+      case Event.SUCCESS:
+        Log.i("APP# SignUpMobileAuthorizationPresenter | onEventInternal", "|" + "resultString: " + event.getString());
+        onAuthResult(event);
+        break;
+      case Event.FAIL:
+        // todo 모바일 인증 실패
+        break;
+      case Event.CANCEL:
+        // fixme for test
+        if (AppUtil.isDebug()) {
+          onEvent(new Event.Builder(Event.CONFIRM).build());
+        }
+        break;
       default:
         break;
     }
   }
 
-  @Override
-  public void onDialogResult(DialogBase dialog, Event event) {
-    Log.i("APP# SignUpActivity | ", "|" + "resultString: " + event.getString());
-    int eventId = event.getEventId();
-    if (Event.SUCCESS == eventId) {
-      LifeplusAPIBean bean = event.fromJson(LifeplusAPIBean.class);
-
-      Log.w("APP# SignUpActivity | onDialogResult", "| " + bean.toPrettyJson());
-
-      /**
-       * // todo 아래 코드는 팝업 외에서 처리해야 한다.
-       * 2. 성공 시 PROCESS 진입
-       1) 만 14세 이상 : 약관동의(JO2001)화면 링크
-       2) 14세 미만 : 14세 미만 가입불가 안내 (JO5002) 화면 링크
-       3) 회원 Y: 기존회원 간편암호 확인 안내 (JO5002) 화면 링크

-       4) 회원탈퇴일 기준 30일 이내 Y
-       - 탈퇴 회원 (30일 이내) 가입불가 안내 (JO5003) 화면 링크
-       */
-
-      if (false) {
-        //todo 14세 미만
-      }
-      else if (false) {
-        // todo 기존 회원
-      }
-      else if (false) {
-        // todo 30일 이내 재가입
-      }
-      else {
-        // 신규 가입
-        onEvent(new Event.Builder(Event.SUCCESS).build());
-      }
+  public void onAuthResult(Event event) {
+    LifeplusAPIBean bean = event.fromJson(LifeplusAPIBean.class);
+
+    Log.w("APP# SignUpMobileAuthorizationPresenter | onEventInternal", "| " + bean.toPrettyJson());
+
+    /**
+     * // todo 아래 코드는 팝업 외에서 처리해야 한다.
+     * 2. 성공 시 PROCESS 진입
+     1) 만 14세 이상 : 약관동의(JO2001)화면 링크
+     2) 14세 미만 : 14세 미만 가입불가 안내 (JO5002) 화면 링크
+     3) 회원 Y: 기존회원 간편암호 확인 안내 (JO5002) 화면 링크

+     4) 회원탈퇴일 기준 30일 이내 Y
+     - 탈퇴 회원 (30일 이내) 가입불가 안내 (JO5003) 화면 링크
+     */
+
+    if (false) {
+      //todo 14세 미만
     }
-    else if (Event.FAIL == eventId) {
-      // todo 모바일 인증 실패
+    else if (false) {
+      // todo 기존 회원
     }
-  }
-
-  @Override
-  public void onDialogCanceled(DialogBase dialog) {
-    dialog.dismiss();
-    // fixme for test
-    if (AppUtil.isDebug()) {
-      onEvent(new Event.Builder(Event.SUCCESS).build());
+    else if (false) {
+      // todo 30일 이내 재가입
+    }
+    else {
+      // 신규 가입
+      onEvent(new Event.Builder(Event.CONFIRM).build());
     }
   }
+
 }

+ 9 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/signup/SignUpPinPresenter.java

@@ -8,7 +8,6 @@ import kr.co.zumo.app.lifeplus.model.SignUpModel;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
-import kr.co.zumo.app.lifeplus.view.IPinDriver;
 import kr.co.zumo.app.lifeplus.view.command.FragmentChangeCommand;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
@@ -22,7 +21,7 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
  * @history 민효동   [2018. 9. 28.]   [최초 작성]
  * @since 2018. 9. 28.
  */
-public class SignUpPinPresenter extends Presenter<SignUpModel, ISignUpPinView> implements IPinDriver {
+public class SignUpPinPresenter extends Presenter<SignUpModel, ISignUpPinView> {
 
   private String pin;
 
@@ -72,13 +71,18 @@ public class SignUpPinPresenter extends Presenter<SignUpModel, ISignUpPinView> i
       case Event.SUCCESS:
         onCommand(new FragmentChangeCommand(ScreenID.SIGN_UP_AGREE, ScreenID.DIRECTION_NEXT));
         break;
+      case Event.INIT:
+        onPinStart();
+        break;
+      case Event.RESULT:
+        onPinResult(event.getString());
+        break;
       default:
         break;
     }
   }
 
-  @Override
-  public void onPinResult(String result) {
+  private void onPinResult(String result) {
     if (StringUtil.isFull(pin)) {
       // 두 번째 등록
       view.setDisabled();
@@ -105,8 +109,7 @@ public class SignUpPinPresenter extends Presenter<SignUpModel, ISignUpPinView> i
     }
   }
 
-  @Override
-  public void onPinStart() {
+  private void onPinStart() {
     view.updateGuideText(R.string.sign_up_register_pin);
     view.updateTitleText(R.string.sign_up_register_pin_title);
   }