Преглед изворни кода

[인증][Bug] 기존 회원 가입 시 디바이스ID 업데이트 안되는 버그 수정

hyodong.min пре 6 година
родитељ
комит
ad3fa1db1f

+ 17 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/PinResetFromAlreadyMemberInputPresenter.java

@@ -3,6 +3,9 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.pin;
 
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
+import kr.co.zumo.app.lifeplus.model.module.APIError;
+import kr.co.zumo.app.lifeplus.model.module.APIModuleListener;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
 
@@ -44,7 +47,20 @@ public class PinResetFromAlreadyMemberInputPresenter extends PinResetInputPresen
    * - 각 진입 화면마다 Fragment 와 Presenter 를 extends 하여 지정해준다.
    */
   protected void moveToNext() {
-    model.login();
+    // device id update
+    model.updateDeviceId(new APIModuleListener<LifeplusAPIBean>() {
+      @Override
+      public void onApiSuccess(LifeplusAPIBean resultBean) {
+        model.login();
+      }
+
+      @Override
+      public void onApiError(String errorMessage, APIError error) {
+        showErrorDialog(errorMessage, () -> {
+          moveToBack();
+        });
+      }
+    });
   }
 
   /**

+ 26 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/pin/PinResetInputModel.java

@@ -4,6 +4,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.pin;
 
 import io.reactivex.disposables.Disposable;
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
 import kr.co.zumo.app.lifeplus.bean.api.LoginBean;
 import kr.co.zumo.app.lifeplus.bean.api.LoginResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
@@ -11,8 +12,10 @@ import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.model.module.APIError;
 import kr.co.zumo.app.lifeplus.model.module.APILoginStatusMapper;
+import kr.co.zumo.app.lifeplus.model.module.APIMemberDeviceIDModule;
 import kr.co.zumo.app.lifeplus.model.module.APIMemberSelectModule;
 import kr.co.zumo.app.lifeplus.model.module.APIModuleListener;
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
@@ -27,6 +30,7 @@ import kr.co.zumo.app.lifeplus.view.Event;
  */
 public class PinResetInputModel extends Model {
   private Disposable disposable;
+  private Disposable disposableDeviceId;
 
   @Override
   protected void createViewInternal() {
@@ -34,7 +38,14 @@ public class PinResetInputModel extends Model {
 
   @Override
   protected void destroyInternal() {
-
+    if (null != disposable) {
+      disposable.dispose();
+      disposable = null;
+    }
+    if (null != disposableDeviceId) {
+      disposableDeviceId.dispose();
+      disposableDeviceId = null;
+    }
   }
 
   @Override
@@ -98,6 +109,20 @@ public class PinResetInputModel extends Model {
     );
   }
 
+  public void updateDeviceId(IAPIModuleListener<LifeplusAPIBean> listener) {
+    disposableDeviceId = new APIMemberDeviceIDModule().call(new RequestBean(), new APIModuleListener<LifeplusAPIBean>(waiterCaller) {
+      @Override
+      public void onApiSuccess(LifeplusAPIBean resultBean) {
+        listener.onApiSuccess(resultBean);
+      }
+
+      @Override
+      public void onApiError(String errorMessage, APIError error) {
+        listener.onApiError(errorMessage, error);
+      }
+    });
+  }
+
   /**
    * 블럭 멥버 확인
    *