Browse Source

[공통][New] 로그인 에러 대비

hyodong.min 6 years ago
parent
commit
aea4756477

+ 16 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIMemberSelectModule.java

@@ -3,9 +3,11 @@
  */
 package kr.co.zumo.app.lifeplus.model.module;
 
+import java.util.ArrayList;
+
 import io.reactivex.Observable;
 import io.reactivex.Single;
-import io.reactivex.functions.Consumer;
+import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsFlagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.LoginResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
@@ -27,17 +29,22 @@ public class APIMemberSelectModule extends LifeplusAPIModule<RequestBean, LoginR
   @Override
   protected Single<LoginResultBean> getAPI(RequestBean requestBean) {
     ContentsFlagHelper.getInstance().dispose();
-    Single<ContentsFlagResultBean> flags = ContentsFlagHelper.getInstance().load();
+    Single<ContentsFlagResultBean> flags = ContentsFlagHelper.getInstance().load()
+      .onErrorReturn(throwable -> { // 에러 시 빈 데이터로 대체
+        ContentsFlagResultBean tempBean = new ContentsFlagResultBean();
+        ContentsFlagBean data = new ContentsFlagBean();
+        data.setBookmarkedList(new ArrayList<>());
+        data.setLikedList(new ArrayList<>());
+        tempBean.setData(data);
+        return new ContentsFlagResultBean();
+      });
     Single<LoginResultBean> login = new LifeplusAPIRepository().selectMember(requestBean);
 
     return Single.fromObservable(Observable.combineLatest(flags.toObservable(), login.toObservable(), (flagResultBean, loginResultBean) -> loginResultBean))
-      .doOnSuccess(new Consumer<LoginResultBean>() {
-        @Override
-        public void accept(LoginResultBean loginResultBean) throws Exception {
-          // 로그인 이후 fcm 토근 저장
-          if (loginResultBean.isSuccess()) {
-            FirebaseHelper.getInstance().init();
-          }
+      .doOnSuccess(loginResultBean -> {
+        // 로그인 이후 fcm 토근 저장
+        if (loginResultBean.isSuccess()) {
+          FirebaseHelper.getInstance().init();
         }
       });
   }