瀏覽代碼

[설정][New] 인증 후 이메일 변경 - API 연동

hyodong.min 7 年之前
父節點
當前提交
91d7d8f5c1

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

@@ -3,8 +3,13 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.pin.reset;
 
+import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.lifeplus.bean.MobileAuthBean;
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
+import kr.co.zumo.app.lifeplus.bean.api.MemberPhoneNumberRequestBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
+import kr.co.zumo.app.lifeplus.model.module.APIMemberMobileUpdateModule;
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 
 /**
@@ -19,10 +24,22 @@ import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
  */
 public class PhoneNumberAuthPresenter extends PinResetAuthPresenter {
 
+  private Disposable disposable;
+
   public PhoneNumberAuthPresenter(PinResetAuthModel model, IPinResetAuthView view) {
     super(model, view);
   }
 
+  @Override
+  protected void destroyInternal() {
+    super.destroyInternal();
+
+    if (null != disposable) {
+      disposable.dispose();
+      disposable = null;
+    }
+  }
+
   /**
    * Template method
    * - 진입 화면이 다르므로 이전 화면도 지정해준다.
@@ -38,12 +55,40 @@ public class PhoneNumberAuthPresenter extends PinResetAuthPresenter {
    * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
    */
   protected void moveToBack() {
-    DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+    back(ScreenID.SETTING_MEMBER_INFO);
+  }
+
+  /**
+   * Template method - 인증 완료돼었을 때
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void onAuthComplete() {
     MobileAuthBean bean = model.getMobileAuthBean();
     if (null != bean) {
       String phoneNumber = model.getMobileAuthBean().getFullPhoneNumber();
-      deliveryHelper.setPackaging(phoneNumber);
+      disposable = new APIMemberMobileUpdateModule().call(new MemberPhoneNumberRequestBean(model.getUserId(), model.getUserName(), phoneNumber), new IAPIModuleListener<LifeplusAPIBean>() {
+        @Override
+        public void onApiSuccess(LifeplusAPIBean resultBean) {
+          DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+          String phoneNumber = model.getMobileAuthBean().getFullPhoneNumber();
+          deliveryHelper.setPackaging(phoneNumber);
+          moveToBack();
+        }
+
+        @Override
+        public void onApiReason(LifeplusAPIBean resultBean) {
+          showErrorDialog(resultBean.getReturnMessage(), () -> moveToBack());
+        }
+
+        @Override
+        public void onApiError(String errorMessage) {
+          showErrorDialog(errorMessage, () -> moveToBack());
+        }
+      });
+    }
+    else {
+      showErrorDialog("Invalid result.", () -> moveToBack());
     }
-    back(ScreenID.SETTING_MEMBER_INFO);
   }
 }

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

@@ -38,4 +38,13 @@ public class PinResetAuthFromAlreadyMemberPresenter extends PinResetAuthPresente
   protected void moveToBack() {
     back(ScreenID.MAIN);
   }
+
+  /**
+   * Template method - 인증 완료돼었을 때
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void onAuthComplete() {
+    moveToNext();
+  }
 }

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

@@ -38,4 +38,13 @@ public class PinResetAuthFromSettingPresenter extends PinResetAuthPresenter {
   protected void moveToBack() {
     back(ScreenID.SETTING_MEMBER_INFO);
   }
+
+  /**
+   * Template method - 인증 완료돼었을 때
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void onAuthComplete() {
+    moveToNext();
+  }
 }

+ 11 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/reset/PinResetAuthPresenter.java

@@ -76,11 +76,11 @@ public class PinResetAuthPresenter extends Presenter<PinResetAuthModel, IPinRese
       case Event.SUCCESS:
         if (event.getInteger() == Event.MEMBER_AUTH) {
           // 인증 완료 -> fixme 여기에서 아직 가입이 안되어있다면 이상함
-          moveToNext();
+          onAuthComplete();
         }
         else if (event.getInteger() == Event.MEMBER_ALREADY_MEMBER) {
           // 이미 회원 -> 인증 완료인 샘
-          moveToNext();
+          onAuthComplete();
         }
         else if (event.getInteger() == Event.MEMBER_UNDER_14YEARS) {
           //14세 미만
@@ -125,6 +125,15 @@ public class PinResetAuthPresenter extends Presenter<PinResetAuthModel, IPinRese
     back(ScreenID.MAIN);
   }
 
+  /**
+   * Template method - 인증 완료돼었을 때
+   * - 진입 화면이 다르므로 이전 화면도 지정해준다.
+   * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
+   */
+  protected void onAuthComplete() {
+    moveToNext();
+  }
+
   @Override
   public void onScreenReady() {
 

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

@@ -6,7 +6,6 @@ package kr.co.zumo.app.lifeplus.view.screen.setting.common;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -241,7 +240,6 @@ public class SettingMemberInfoFragment extends FragmentBase<SettingMemberInfoPre
   @Override
   public void setPolicyList(ArrayList<PolicyBean> list) {
     ViewGroup container = findViewById(R.id.layout_agree_container);
-    container.removeAllViews();
 
     CheckBox checkBoxAll = findViewById(R.id.agree_check_all);
     checkBoxAllDriver = new CheckBoxAllDriver(checkBoxAll);
@@ -269,9 +267,7 @@ 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))
           .append("</b> ").append("<font color='#999999'>").append(title).append("</font>").toString()));
       checkBoxAllDriver.addChildBox(checkBox);
-      Log.i("APP# SettingMemberInfoFragment | setPolicyList", "| bean.isChecked(): " + bean.isChecked());
       checkBox.setChecked(bean.isChecked());
-      Log.i("APP# SettingMemberInfoFragment | setPolicyList", "| checkBox.isChecked(): " + checkBox.isChecked());
 
       // agree
       final int index = i;