瀏覽代碼

[설정][New] 약관 상세 내용 로딩하여 표시

hyodong.min 7 年之前
父節點
當前提交
55c96b67d2

+ 7 - 16
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIMainContentsLoadModule.java

@@ -5,12 +5,9 @@ package kr.co.zumo.app.lifeplus.model.module;
 
 import android.util.Log;
 
-import java.util.List;
-
 import io.reactivex.Observable;
 import io.reactivex.Single;
 import io.reactivex.functions.BiFunction;
-import io.reactivex.functions.Function;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.MainContentsResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
@@ -33,20 +30,14 @@ public class APIMainContentsLoadModule extends APIModule<RequestBean, MainConten
     Single<ContentsFlagResultBean> flags = ContentsFlagHelper.getInstance().load();
     Single<MainContentsResultBean> contents = new LifeplusAPIRepository().getMainContents(requestBean);
 
-    return Observable.combineLatest(flags.toObservable(), contents.toObservable(), new BiFunction<ContentsFlagResultBean, MainContentsResultBean, MainContentsResultBean>() {
-      @Override
-      public MainContentsResultBean apply(ContentsFlagResultBean flagResultBean, MainContentsResultBean mainContentsResultBean) throws Exception {
-        Log.w("APP# APIMainContentsLoadModule | apply", "|" + flagResultBean.toJson());
-        Log.w("APP# APIMainContentsLoadModule | apply", "|" + mainContentsResultBean.toJson());
-        return mainContentsResultBean;
-      }
-    })
-      .toList()
-      .map(new Function<List<MainContentsResultBean>, MainContentsResultBean>() {
+    return Single.fromObservable(Observable.combineLatest(flags.toObservable(), contents.toObservable(), new BiFunction<ContentsFlagResultBean, MainContentsResultBean, MainContentsResultBean>() {
         @Override
-        public MainContentsResultBean apply(List<MainContentsResultBean> mainContentsResultBeans) throws Exception {
-          return mainContentsResultBeans.get(0);
+        public MainContentsResultBean apply(ContentsFlagResultBean flagResultBean, MainContentsResultBean mainContentsResultBean) throws Exception {
+          Log.w("APP# APIMainContentsLoadModule | apply", "|" + flagResultBean.toJson());
+          Log.w("APP# APIMainContentsLoadModule | apply", "|" + mainContentsResultBean.toJson());
+          return mainContentsResultBean;
         }
-      });
+      })
+    );
   }
 }

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

@@ -149,6 +149,7 @@ public class Event {
   public static final int MEMBER_UPDATE_POLICY_ALL = 1019;
   public static final int CONTENTS_LIKE = 1020;
   public static final int CONTENTS_BOOKMARK = 1021;
+  public static final int POLICY_DETAIL = 1022;
 
   // boolean
   public static final String TRUE = "TRUE";

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/info/SettingTermsFragment.java

@@ -116,7 +116,7 @@ public class SettingTermsFragment extends FragmentBase<SettingTermsPresenter> im
 
   private void notifyDetailPressed(int index) {
     Log.i("APP# SignUpAgreeHolder | draw", "| index: " + index);
-    presenter.onEvent(new Event.Builder(Event.DETAIL).integer(index).build());
+    presenter.onEvent(new Event.Builder(Event.DETAIL).index(index).build());
 
   }
 

+ 32 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/info/SettingTermsModel.java

@@ -8,9 +8,12 @@ import java.util.ArrayList;
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.lifeplus.bean.api.PolicyBean;
 import kr.co.zumo.app.lifeplus.bean.api.PolicyListResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.PolicyNoRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.PolicyResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.model.module.APIMemberPolicyLoadModule;
+import kr.co.zumo.app.lifeplus.model.module.APIPolicyDetailModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.view.Event;
 
@@ -70,19 +73,45 @@ public class SettingTermsModel extends Model {
       @Override
       public void onApiSuccess(PolicyListResultBean resultBean) {
         agreeItems = resultBean.getData();
-        onResult(new Event.Builder(Event.RESULT).integer(Event.POLICY_REQUEST).build());
+        onResult(new Event.Builder(Event.RESULT).index(Event.POLICY_REQUEST).build());
       }
 
       @Override
       public void onApiReason(PolicyListResultBean resultBean) {
-        onResult(new Event.Builder(Event.ERROR).integer(Event.POLICY_REQUEST).string(resultBean.getReturnMessage()).build());
+        onResult(new Event.Builder(Event.ERROR).index(Event.POLICY_REQUEST).string(resultBean.getReturnMessage()).build());
       }
 
       @Override
       public void onApiError(String errorMessage) {
-        onResult(new Event.Builder(Event.ERROR).integer(Event.POLICY_REQUEST).string(errorMessage).build());
+        onResult(new Event.Builder(Event.ERROR).index(Event.POLICY_REQUEST).string(errorMessage).build());
       }
     });
 
   }
+
+  public void loadTerms(int index) {
+    disposable = new APIPolicyDetailModule().call(new PolicyNoRequestBean(agreeItems.get(index).getPolicyNumber()), new IAPIModuleListener<PolicyResultBean>() {
+      @Override
+      public void onApiSuccess(PolicyResultBean resultBean) {
+        if (null != resultBean.getData()) {
+          onResult(new Event.Builder(Event.RESULT).index(Event.POLICY_DETAIL).string(resultBean.getData().getContents()).build());
+        }
+        else {
+          onResult(new Event.Builder(Event.ERROR).index(Event.POLICY_DETAIL).string("loading error...").build());
+        }
+      }
+
+      @Override
+      public void onApiReason(PolicyResultBean resultBean) {
+        onResult(new Event.Builder(Event.ERROR).index(Event.POLICY_DETAIL).string(resultBean.getReturnMessage()).build());
+
+      }
+
+      @Override
+      public void onApiError(String errorMessage) {
+        onResult(new Event.Builder(Event.ERROR).index(Event.POLICY_DETAIL).string(errorMessage).build());
+
+      }
+    });
+  }
 }

+ 7 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/info/SettingTermsPresenter.java

@@ -77,7 +77,7 @@ public class SettingTermsPresenter extends Presenter<SettingTermsModel, ISetting
   protected void onEventInternal(Event event) {
     switch (event.getEventId()) {
       case Event.DETAIL:
-        onClickDetail(event);
+        model.loadTerms(event.getIndex());
         break;
       default:
         break;
@@ -93,12 +93,15 @@ public class SettingTermsPresenter extends Presenter<SettingTermsModel, ISetting
   public void onResult(Event event) {
     switch (event.getEventId()) {
       case Event.RESULT:
-        if (event.getInteger() == Event.POLICY_REQUEST) {
+        if (event.getIndex() == Event.POLICY_REQUEST) {
           doubleChecker.checkFirst();
         }
+        else if (event.getIndex() == Event.POLICY_DETAIL) {
+          onClickDetail(event.getString());
+        }
         break;
       case Event.ERROR:
-        if (event.getInteger() == Event.POLICY_REQUEST) {
+        if (event.getIndex() == Event.POLICY_REQUEST) {
           showErrorDialog(event.getString());
         }
         break;
@@ -107,8 +110,7 @@ public class SettingTermsPresenter extends Presenter<SettingTermsModel, ISetting
     }
   }
 
-  private void onClickDetail(Event event) {
-    String contents = model.getAgreeItems().get(event.getInteger()).getContents();
+  private void onClickDetail(String contents) {
     new DialogBuilder<PolicyDialog, ICustomDialogListener>(getFragmentManager(), DialogID.POLICY)
       .listener(new ICustomDialogListener<PolicyDialog>() {
         @Override