浏览代码

[설정][New] 전화번호 재설정

hyodong.min 7 年之前
父节点
当前提交
50235f3408

+ 9 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/factory/BasicFragmentFactory.java

@@ -7,6 +7,11 @@ import android.support.v4.app.Fragment;
 
 
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
+import kr.co.zumo.app.lifeplus.view.screen.category.type1.FirstCategoryMainFragment;
+import kr.co.zumo.app.lifeplus.view.screen.category.type2.SecondCategoryMainFragment;
+import kr.co.zumo.app.lifeplus.view.screen.category.type3.ThirdCategoryMainFragment;
+import kr.co.zumo.app.lifeplus.view.screen.category.type4.FourthCategoryMainFragment;
+import kr.co.zumo.app.lifeplus.view.screen.category.type5.FifthCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsFragment;
 import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsFragment;
 import kr.co.zumo.app.lifeplus.view.screen.couponmall.CouponMallFragment;
 import kr.co.zumo.app.lifeplus.view.screen.couponmall.CouponMallFragment;
 import kr.co.zumo.app.lifeplus.view.screen.error.NetworkErrorFragment;
 import kr.co.zumo.app.lifeplus.view.screen.error.NetworkErrorFragment;
@@ -18,11 +23,6 @@ import kr.co.zumo.app.lifeplus.view.screen.guide.GuideFragment;
 import kr.co.zumo.app.lifeplus.view.screen.guide.LifeplusBrandFragment;
 import kr.co.zumo.app.lifeplus.view.screen.guide.LifeplusBrandFragment;
 import kr.co.zumo.app.lifeplus.view.screen.info.PermissionInfoFragment;
 import kr.co.zumo.app.lifeplus.view.screen.info.PermissionInfoFragment;
 import kr.co.zumo.app.lifeplus.view.screen.main.MainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.main.MainFragment;
-import kr.co.zumo.app.lifeplus.view.screen.category.type5.FifthCategoryMainFragment;
-import kr.co.zumo.app.lifeplus.view.screen.category.type1.FirstCategoryMainFragment;
-import kr.co.zumo.app.lifeplus.view.screen.category.type4.FourthCategoryMainFragment;
-import kr.co.zumo.app.lifeplus.view.screen.category.type2.SecondCategoryMainFragment;
-import kr.co.zumo.app.lifeplus.view.screen.category.type3.ThirdCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.main.pin.MainPinUnlockFragment;
 import kr.co.zumo.app.lifeplus.view.screen.main.pin.MainPinUnlockFragment;
 import kr.co.zumo.app.lifeplus.view.screen.member.MemberBlockFragment;
 import kr.co.zumo.app.lifeplus.view.screen.member.MemberBlockFragment;
 import kr.co.zumo.app.lifeplus.view.screen.member.MemberRestActiveCompletedFragment;
 import kr.co.zumo.app.lifeplus.view.screen.member.MemberRestActiveCompletedFragment;
@@ -43,6 +43,7 @@ import kr.co.zumo.app.lifeplus.view.screen.my.main.MyMainMemberFragment;
 import kr.co.zumo.app.lifeplus.view.screen.my.purchase.MyPurchaseHistoryFragment;
 import kr.co.zumo.app.lifeplus.view.screen.my.purchase.MyPurchaseHistoryFragment;
 import kr.co.zumo.app.lifeplus.view.screen.notification.NotiFragment;
 import kr.co.zumo.app.lifeplus.view.screen.notification.NotiFragment;
 import kr.co.zumo.app.lifeplus.view.screen.onboarding.OnBoardingFragment;
 import kr.co.zumo.app.lifeplus.view.screen.onboarding.OnBoardingFragment;
+import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PhoneNumberResetAuthFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFromAlreadyMemberFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFromAlreadyMemberFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFromSettingFragment;
 import kr.co.zumo.app.lifeplus.view.screen.pin.reset.PinResetAuthFromSettingFragment;
@@ -164,6 +165,9 @@ public class BasicFragmentFactory extends FragmentFactory {
       case ScreenID.PIN_RESET_INPUT_FROM_ALREADY_MEMBER:
       case ScreenID.PIN_RESET_INPUT_FROM_ALREADY_MEMBER:
         fragment = new PinResetInputFromAlreadyMemberFragment();
         fragment = new PinResetInputFromAlreadyMemberFragment();
         break;
         break;
+      case ScreenID.PHONE_NUMBER_RESET:
+        fragment = new PhoneNumberResetAuthFragment();
+        break;
       case ScreenID.SETTING:
       case ScreenID.SETTING:
         fragment = new SettingFragment();
         fragment = new SettingFragment();
         break;
         break;

+ 49 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/reset/PhoneNumberAuthPresenter.java

@@ -0,0 +1,49 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.screen.pin.reset;
+
+import kr.co.zumo.app.lifeplus.bean.MobileAuthBean;
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+
+/**
+ * PinResetAuthFromAlreadyMemberPresenter
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018-11-03]   [최초 작성]
+ * @since 2018-11-03
+ */
+public class PhoneNumberAuthPresenter extends PinResetAuthPresenter {
+
+  public PhoneNumberAuthPresenter(PinResetAuthModel model, IPinResetAuthView view) {
+    super(model, view);
+  }
+
+  /**
+   * Template method
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void moveToNext() {
+    moveToBack();
+  }
+
+  /**
+   * Template method
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void moveToBack() {
+    DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+    MobileAuthBean bean = model.getMobileAuthBean();
+    if (null != bean) {
+      String phoneNumber = model.getMobileAuthBean().getFullPhoneNumber();
+      deliveryHelper.setPackaging(phoneNumber);
+    }
+    back(ScreenID.SETTING_MEMBER_INFO);
+  }
+}

+ 22 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/reset/PhoneNumberResetAuthFragment.java

@@ -0,0 +1,22 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.screen.pin.reset;
+
+/**
+ * PinResetAuthFromAlreadyMemberFragment
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018-11-03]   [최초 작성]
+ * @since 2018-11-03
+ */
+public class PhoneNumberResetAuthFragment extends PinResetAuthFragment {
+
+  @Override
+  protected PinResetAuthPresenter definePresenter() {
+    return new PhoneNumberAuthPresenter(getModel(PinResetAuthModel.class), this);
+  }
+}

+ 12 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/reset/PinResetAuthModel.java

@@ -24,6 +24,8 @@ import kr.co.zumo.app.lifeplus.view.Event;
  * @since 2018-11-03
  * @since 2018-11-03
  */
  */
 public class PinResetAuthModel extends Model {
 public class PinResetAuthModel extends Model {
+  private MobileAuthBean mobileAuthBean;
+
   @Override
   @Override
   protected void destroyInternal() {
   protected void destroyInternal() {
 
 
@@ -49,6 +51,14 @@ public class PinResetAuthModel extends Model {
 
 
   }
   }
 
 
+  public MobileAuthBean getMobileAuthBean() {
+    return mobileAuthBean;
+  }
+
+  public void setMobileAuthBean(MobileAuthBean mobileAuthBean) {
+    this.mobileAuthBean = mobileAuthBean;
+  }
+
   /**
   /**
    * 모바일 인증 결과 처리
    * 모바일 인증 결과 처리
    *
    *
@@ -58,6 +68,8 @@ public class PinResetAuthModel extends Model {
     MobileAuthBean mobileAuthBean = event.fromJson(MobileAuthBean.class);
     MobileAuthBean mobileAuthBean = event.fromJson(MobileAuthBean.class);
     LifeplusAPIBean resultBean = new Gson().fromJson(event.getString(), LifeplusAPIBean.class);
     LifeplusAPIBean resultBean = new Gson().fromJson(event.getString(), LifeplusAPIBean.class);
 
 
+    setMobileAuthBean(mobileAuthBean);
+    
     Log.w("APP# PinResetAuthModel | onAuthResult", "| 인증 결과: " + resultBean.toPrettyJson());
     Log.w("APP# PinResetAuthModel | onAuthResult", "| 인증 결과: " + resultBean.toPrettyJson());
     Log.w("APP# PinResetAuthModel | onAuthResult", "| 유저 데이터: " + mobileAuthBean.toPrettyJson());
     Log.w("APP# PinResetAuthModel | onAuthResult", "| 유저 데이터: " + mobileAuthBean.toPrettyJson());
 
 

+ 3 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/common/SettingMemberInfoFragment.java

@@ -6,6 +6,7 @@ package kr.co.zumo.app.lifeplus.view.screen.setting.common;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.Nullable;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -268,7 +269,9 @@ public class SettingMemberInfoFragment extends FragmentBase<SettingMemberInfoPre
         new StringBuilder().append("<b>").append(bean.isMandatory() ? ResourceUtil.getString(R.string.agree_required) : ResourceUtil.getString(R.string.agree_option))
         new StringBuilder().append("<b>").append(bean.isMandatory() ? ResourceUtil.getString(R.string.agree_required) : ResourceUtil.getString(R.string.agree_option))
           .append("</b> ").append("<font color='#999999'>").append(title).append("</font>").toString()));
           .append("</b> ").append("<font color='#999999'>").append(title).append("</font>").toString()));
       checkBoxAllDriver.addChildBox(checkBox);
       checkBoxAllDriver.addChildBox(checkBox);
+      Log.i("APP# SettingMemberInfoFragment | setPolicyList", "| bean.isChecked(): " + bean.isChecked());
       checkBox.setChecked(bean.isChecked());
       checkBox.setChecked(bean.isChecked());
+      Log.i("APP# SettingMemberInfoFragment | setPolicyList", "| checkBox.isChecked(): " + checkBox.isChecked());
 
 
       // agree
       // agree
       final int index = i;
       final int index = i;

+ 27 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/common/SettingMemberInfoPresenter.java

@@ -9,10 +9,12 @@ import java.util.ArrayList;
 
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.SettingMemberBean;
 import kr.co.zumo.app.lifeplus.bean.api.SettingMemberBean;
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.model.verify.Verifier;
 import kr.co.zumo.app.lifeplus.model.verify.Verifier;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
+import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
 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.DialogID;
@@ -32,8 +34,14 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
  */
  */
 public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel, ISettingMemberInfoView> {
 public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel, ISettingMemberInfoView> {
 
 
+  private DoubleChecker doubleChecker;
+
   public SettingMemberInfoPresenter(SettingMemberInfoModel model, ISettingMemberInfoView view) {
   public SettingMemberInfoPresenter(SettingMemberInfoModel model, ISettingMemberInfoView view) {
     super(model, view);
     super(model, view);
+
+    doubleChecker = new DoubleChecker(this::render);
+
+    model.loadMemberInfo();
   }
   }
 
 
   @Override
   @Override
@@ -77,7 +85,7 @@ public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel
       case Event.RESULT:
       case Event.RESULT:
         if (Event.SETTING_LOAD == event.getInteger()) {
         if (Event.SETTING_LOAD == event.getInteger()) {
           // 회원 정보 로딩 완료
           // 회원 정보 로딩 완료
-          render();
+          doubleChecker.checkSecond();
         }
         }
         else if (Event.SETTING_REGISTER_EMAIL == event.getInteger()) {
         else if (Event.SETTING_REGISTER_EMAIL == event.getInteger()) {
           // 이메일 등록 완료
           // 이메일 등록 완료
@@ -169,6 +177,22 @@ public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel
     view.setPhoneNumber(StringUtil.formatPhoneNumber(bean.getPhoneNumber()));
     view.setPhoneNumber(StringUtil.formatPhoneNumber(bean.getPhoneNumber()));
     view.setBirthDate(bean.getBirthDate());
     view.setBirthDate(bean.getBirthDate());
 
 
+    // todo 데이터 로딩 없이 갱신하도록 수정하고 싶음
+    // 현재 약관 첫 번째 체크박스가 오동작해서, 화면 진입 시마다 api를 호출하도록 해뒀음.
+    // 전화번호 재설정 후 되돌아왔는지 확인
+    DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+
+    String phoneNumber = deliveryHelper.getPackaging(String.class);
+    if (null != phoneNumber && phoneNumber.length() > 9) {
+//      SettingMemberBean bean = model.getSettingMemberBean();
+      bean.setPhoneNumber(phoneNumber);
+
+      view.setPhoneNumber(StringUtil.formatPhoneNumber(bean.getPhoneNumber()));
+
+      deliveryHelper.setPackaging(null);
+    }
+
+
     // 이메일 유/무 구분
     // 이메일 유/무 구분
     String email = bean.getEmail();
     String email = bean.getEmail();
     setEmailType(email);
     setEmailType(email);
@@ -260,9 +284,9 @@ public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel
    * 전화번호 재설정 눌렀을 때
    * 전화번호 재설정 눌렀을 때
    */
    */
   public void onClickPhoneNumberReset() {
   public void onClickPhoneNumberReset() {
-    // todo 본인 인증 시작
     // 인증만 하고 돌아옴
     // 인증만 하고 돌아옴
     // 돌아오면 전화번호 갱신되어야 함
     // 돌아오면 전화번호 갱신되어야 함
+    go(ScreenID.PHONE_NUMBER_RESET);
   }
   }
 
 
   /**
   /**
@@ -357,6 +381,6 @@ public class SettingMemberInfoPresenter extends Presenter<SettingMemberInfoModel
 
 
   @Override
   @Override
   public void onScreenReady() {
   public void onScreenReady() {
-
+    doubleChecker.checkFirst();
   }
   }
 }
 }