Browse Source

[FAQ][Bug] 리스트 로드 에러 처리

hyodong.min 7 years ago
parent
commit
adadaeb64a

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/model/FAQModel.java

@@ -67,7 +67,7 @@ public class FAQModel extends Model {
         .subscribeOn(Schedulers.io())
         .observeOn(AndroidSchedulers.mainThread())
         .subscribe(resultBean -> {
-          Log.i("APP# FAQModel | loadFaq", "|" + resultBean.toPrettyJson());
+          Log.i("APP# FAQModel | loadFaq", "| " + resultBean.toPrettyJson());
           faqBeans = resultBean.getData();
           try {
             presenter.onResult(new Event.Builder(Event.RESULT).build());
@@ -76,7 +76,7 @@ public class FAQModel extends Model {
           }
         }, e -> {
           try {
-            presenter.onResult(new Event.Builder(Event.ERROR).build());
+            presenter.onResult(new Event.Builder(Event.ERROR).string(e.getLocalizedMessage()).build());
           } catch (Throwable throwable) {
             throwable.printStackTrace();
           }

+ 35 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/FAQPresenter.java

@@ -8,6 +8,12 @@ import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IFAQView;
 import kr.co.zumo.app.lifeplus.view.command.ActivityChangeCommand;
+import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
+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.IAttribute;
+import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
 
 /**
  * FAQPresenter
@@ -21,6 +27,8 @@ import kr.co.zumo.app.lifeplus.view.command.ActivityChangeCommand;
  */
 public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
 
+  DialogBase alertDialog;
+
   public FAQPresenter(FAQModel model, IFAQView view) {
     super(model, view);
 
@@ -40,7 +48,10 @@ public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
 
   @Override
   protected void destroyInternal() {
-
+    if (null != alertDialog) {
+      alertDialog.dispose();
+      alertDialog = null;
+    }
   }
 
   @Override
@@ -67,6 +78,7 @@ public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
   public void onResult(Event event) throws Throwable {
     switch (event.getEventId()) {
       case Event.ERROR:
+        showAlert(event.getString());
         break;
       case Event.RESULT:
         view.drawList(model.getFaqBeans());
@@ -75,4 +87,26 @@ public class FAQPresenter extends Presenter<FAQModel, IFAQView> {
         break;
     }
   }
+
+  private void showAlert(String str) {
+    alertDialog = DialogBuilder.create(DialogID.ALERT)
+      .listener(new IDialogResultListener() {
+        @Override
+        public void onDialogResult(DialogBase dialog, Event event) {
+          if (event.getEventId() == Event.CONFIRM) {
+            alertDialog = null;
+            dialog.dispose();
+          }
+        }
+
+        @Override
+        public void onDialogCanceled(DialogBase dialog) {
+          alertDialog = null;
+        }
+      })
+      .attribute((IAttribute<AlertDialog>) dialog -> {
+        dialog.setText(str);
+      })
+      .show();
+  }
 }

File diff suppressed because it is too large
+ 32 - 46
app/src/sandbox/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIRepository.java