Ver código fonte

[공통][New] 로그인 이전에 flag 로딩 안됨
- repository 에서 막고 있음

hyodong.min 6 anos atrás
pai
commit
3421090777

+ 0 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarter.java

@@ -143,7 +143,6 @@ public class ScreenStarter implements IModuleEmergencyHandler {
   private void login() {
     disposable = new APIMemberSelectModule().call(new RequestBean(),
       new APILoginStatusMapper(SuperModel.getInstance(), new APIModuleListener<LoginResultBean>() {
-
         @Override
         public void onApiSuccess(LoginResultBean resultBean) {
           onLogin(resultBean);

+ 13 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIMemberSelectModule.java

@@ -7,11 +7,13 @@ 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;
 import kr.co.zumo.app.lifeplus.helper.FirebaseHelper;
+import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
 import kr.co.zumo.app.lifeplus.supervisor.ContentsFlagHelper;
 
@@ -28,6 +30,16 @@ import kr.co.zumo.app.lifeplus.supervisor.ContentsFlagHelper;
 public class APIMemberSelectModule extends LifeplusAPIModule<RequestBean, LoginResultBean> {
   @Override
   protected Single<LoginResultBean> getAPI(RequestBean requestBean) {
+    // login
+    Single<LoginResultBean> login = new LifeplusAPIRepository().selectMember(requestBean)
+      .doOnSuccess(new Consumer<LoginResultBean>() {
+        @Override
+        public void accept(LoginResultBean loginResultBean) throws Exception {
+          new LoginModuleParser(SuperModel.getInstance()).parse(loginResultBean);
+        }
+      });
+
+    // contents flag
     ContentsFlagHelper.getInstance().dispose();
     Single<ContentsFlagResultBean> flags = ContentsFlagHelper.getInstance().load()
       .onErrorReturn(throwable -> { // 에러 시 빈 데이터로 대체
@@ -38,9 +50,8 @@ public class APIMemberSelectModule extends LifeplusAPIModule<RequestBean, LoginR
         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))
+    return Single.fromObservable(Observable.combineLatest(login.toObservable(), flags.toObservable(), (loginResultBean, flagResultBean) -> loginResultBean))
       .doOnSuccess(loginResultBean -> {
         // 로그인 이후 fcm 토근 저장
         if (loginResultBean.isSuccess()) {

+ 3 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/LoginModuleParser.java

@@ -3,6 +3,8 @@
  */
 package kr.co.zumo.app.lifeplus.model.module;
 
+import android.util.Log;
+
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
 import kr.co.zumo.app.lifeplus.bean.api.LoginResultBean;
 import kr.co.zumo.app.lifeplus.model.IMemberStatusManager;
@@ -33,6 +35,7 @@ public class LoginModuleParser {
    * @return true: 정상적으로 파싱됨, false: API 통신은 성공(200)했지만 데이터 포맷 등의 이상으로 오류
    */
   public boolean parse(LoginResultBean loginResultBean) {
+    Log.i("APP# LoginModuleParser | parse", "|" + loginResultBean.toJson());
     try {
       if (null == loginResultBean) {
         return false;

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/ContentsFlagHelper.java

@@ -67,6 +67,7 @@ public class ContentsFlagHelper implements IFlags {
   private ContentsFlagBean contentsFlagBean;
 
   public Single<ContentsFlagResultBean> load() {
+    Log.i("APP# ContentsFlagHelper | load", "|" + "====================================");
     Single<ContentsFlagResultBean> single;
     if (null != contentsFlagBean) {
       Log.w("APP# ContentsFlagHelper | load", "|" + "   return cache.........................");