Browse Source

[세팅][New] MemberInfoModelHelper 추가
- 마이 메인에서도 세팅 정보(이름)을 사용하기 위함

hyodong.min 7 years ago
parent
commit
d3b67120b3

+ 91 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/MemberInfoModelHelper.java

@@ -0,0 +1,91 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.screen.setting;
+
+import io.reactivex.disposables.Disposable;
+import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.SettingMemberBean;
+import kr.co.zumo.app.lifeplus.bean.api.SettingMemberResultBean;
+import kr.co.zumo.app.lifeplus.model.SuperModel;
+import kr.co.zumo.app.lifeplus.model.module.APISettingMemberInfoLoadModule;
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
+
+/**
+ * MemberInfoModelHelper
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 12. 3.]   [최초 작성]
+ * @since 2018. 12. 3.
+ */
+public class MemberInfoModelHelper {
+  private static MemberInfoModelHelper ourInstance = new MemberInfoModelHelper();
+
+  public static MemberInfoModelHelper getInstance() {
+    return ourInstance;
+  }
+
+  private MemberInfoModelHelper() {
+  }
+
+  private SettingMemberBean settingMemberBean;
+
+  private Disposable disposableLoading;
+
+  /**
+   * 설정 기본 정보 로딩
+   */
+  public Disposable loadSettingInfo(RequestBean requestBean, IAPIModuleListener<SettingMemberResultBean> listener) {
+    if (null != settingMemberBean) {
+      SettingMemberResultBean resultBean = new SettingMemberResultBean();
+      resultBean.setData(settingMemberBean);
+      listener.onApiSuccess(resultBean);
+
+    }
+    else {
+
+      stopLoading();
+      disposableLoading = new APISettingMemberInfoLoadModule().call(requestBean, new IAPIModuleListener<SettingMemberResultBean>() {
+        @Override
+        public void onApiSuccess(SettingMemberResultBean resultBean) {
+          settingMemberBean = resultBean.getData();
+
+          if (null == settingMemberBean) {
+            listener.onApiError("invalid result");
+          }
+          else {
+            SuperModel.getInstance().setUserName(settingMemberBean.getUserName());
+            SuperModel.getInstance().setUserEmail(settingMemberBean.getEmail());
+            SuperModel.getInstance().getPreferences().setPushEnabled(settingMemberBean.isAllowPush());
+            SuperModel.getInstance().getPreferences().setPushMarketingEnabled(settingMemberBean.isAllowPushMarketing());
+            SuperModel.getInstance().getPreferences().setLocationServiceEnabled(settingMemberBean.isAllowLocationService());
+
+            listener.onApiSuccess(resultBean);
+          }
+        }
+
+        @Override
+        public void onApiReason(SettingMemberResultBean resultBean) {
+          listener.onApiReason(resultBean);
+        }
+
+        @Override
+        public void onApiError(String errorMessage) {
+          listener.onApiError(errorMessage);
+        }
+      });
+    }
+    return disposableLoading;
+  }
+
+
+  private void stopLoading() {
+    if (null != disposableLoading) {
+      disposableLoading.dispose();
+      disposableLoading = null;
+    }
+  }
+}

+ 5 - 12
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingModel.java

@@ -15,7 +15,6 @@ import kr.co.zumo.app.lifeplus.bean.api.SettingMemberResultBean;
 import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.model.module.APIMemberPushUpdateModule;
-import kr.co.zumo.app.lifeplus.model.module.APISettingMemberInfoLoadModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.model.module.PinModuleParser;
 import kr.co.zumo.app.lifeplus.util.AppUtil;
@@ -43,6 +42,7 @@ public class SettingModel extends Model {
   @Override
   protected void createViewInternal() {
   }
+
   @Override
   protected void destroyInternal() {
     disposeObservable();
@@ -158,7 +158,7 @@ public class SettingModel extends Model {
    * 설정 기본 정보 로딩
    */
   public void loadSettingInfo() {
-    disposableLoading = new APISettingMemberInfoLoadModule().call(new RequestBean(), new IAPIModuleListener<SettingMemberResultBean>() {
+    disposableLoading = MemberInfoModelHelper.getInstance().loadSettingInfo(new RequestBean(), new IAPIModuleListener<SettingMemberResultBean>() {
       @Override
       public void onApiSuccess(SettingMemberResultBean resultBean) {
         SettingModelHelper.getInstance().setSettingMemberBean(resultBean.getData());
@@ -168,17 +168,10 @@ public class SettingModel extends Model {
           settingMemberBean = new SettingMemberBean();
           SettingModelHelper.getInstance().setSettingMemberBean(settingMemberBean);
           onResult(new Event.Builder(Event.ERROR).build());
-          return;
         }
-
-        SuperModel.getInstance().setUserName(settingMemberBean.getUserName());
-        SuperModel.getInstance().setUserEmail(settingMemberBean.getEmail());
-
-        setPushEnabledInternal(settingMemberBean.isAllowPush());
-        setPushMarketingEnabledInternal(settingMemberBean.isAllowPushMarketing());
-        setLocationServiceEnabledInternal(settingMemberBean.isAllowLocationService());
-
-        onResult(new Event.Builder(Event.RESULT).integer(Event.SETTING_LOAD).build());
+        else {
+          onResult(new Event.Builder(Event.RESULT).integer(Event.SETTING_LOAD).build());
+        }
       }
 
       @Override