Ver código fonte

[메인][New] 재방문 코인 지급

hyodong.min 6 anos atrás
pai
commit
faeda62c82

+ 2 - 13
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarter.java

@@ -93,16 +93,6 @@ public class ScreenStarter implements IModuleEmergencyHandler {
 
     String userId = SuperModel.getInstance().getUserId();
     if (StringUtil.isFull(userId)) {
-      /**
-       * 로그인
-       * 로그인 완료되면
-       * -> 정상 : token 저장 > 메인화면
-       * -> 비정상
-       *   - 블럭 계정 > token 저장하지 않고 둠, 그러면 다시 로그인 시 블럭 계정
-       *   - 휴면 계정 > 위와 같음
-       *   - 일시 중지 > 위와 같음
-       *
-       */
       login();
     }
     else if (preferences.isOnBoardingDone() == false) {
@@ -156,7 +146,6 @@ public class ScreenStarter implements IModuleEmergencyHandler {
 
         @Override
         public void onApiSuccess(LoginResultBean resultBean) {
-          // 정상 처리 됐음
           onLogin(resultBean);
         }
 
@@ -169,7 +158,6 @@ public class ScreenStarter implements IModuleEmergencyHandler {
   }
 
   private void onLogin(LoginResultBean resultBean) {
-
     if (SuperModel.getInstance().isBlockMember()) {
       ActivityDeliveryHelper.getInstance().setPackaging(resultBean.getData());
       gotoScreen(START_FROM_MEMBER_BLOCK);
@@ -189,7 +177,7 @@ public class ScreenStarter implements IModuleEmergencyHandler {
     }
     else {
       // 정상;
-
+      ActivityDeliveryHelper.getInstance().setPackaging(resultBean.getData());
       gotoMainOrUnlock();
     }
   }
@@ -293,4 +281,5 @@ public class ScreenStarter implements IModuleEmergencyHandler {
   public interface IListener {
     void onScreenSelected(Context context, int fragmentFlag);
   }
+
 }

+ 30 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainModel.java

@@ -50,8 +50,10 @@ import kr.co.zumo.app.lifeplus.model.module.APIPopupLoadModule;
 import kr.co.zumo.app.lifeplus.model.module.coop.APIWeatherModule;
 import kr.co.zumo.app.lifeplus.util.Formatter;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
 import kr.co.zumo.app.lifeplus.view.screen.my.bookmark.BookmarkModelHelper;
 import kr.co.zumo.app.lifeplus.view.screen.my.bucketlist.BucketListModelHelper;
+import kr.co.zumo.app.lifeplus.view.screen.my.coin.CoinModelHelper;
 import kr.co.zumo.app.lifeplus.view.screen.setting.SettingViewHolder;
 
 /**
@@ -236,6 +238,34 @@ public class MainModel extends Model {
     this.index = index;
   }
 
+
+  // coin --------------------------------------
+  private int givenCoin;
+
+  public void setGivenCoin(int givenCoin) {
+    this.givenCoin = givenCoin;
+  }
+
+  public int getGivenCoin() {
+    return givenCoin;
+  }
+
+  public String getCoin() {
+    return CoinModelHelper.getInstance().getCoin();
+  }
+
+  public void getCoinAsync(IEventListener listener) {
+    CoinModelHelper.getInstance().getCoinAsync(listener);
+  }
+
+  public void mergeCoin() {
+    CoinModelHelper.getInstance().addCoin(givenCoin);
+    givenCoin = 0;
+  }
+
+  // coin --------------------------------------
+
+
   /**
    * 날씨 처음 로딩
    */

+ 27 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainPresenter.java

@@ -14,6 +14,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
+import kr.co.zumo.app.lifeplus.bean.api.LoginBean;
 import kr.co.zumo.app.lifeplus.bean.api.MainContentsCategoryBean;
 import kr.co.zumo.app.lifeplus.bean.api.PromotionPopupBean;
 import kr.co.zumo.app.lifeplus.config.DebugConfig;
@@ -36,6 +37,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
 import kr.co.zumo.app.lifeplus.view.dialog.PromotionDialog;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 import kr.co.zumo.app.lifeplus.view.screen.category.CategoryID;
+import kr.co.zumo.app.lifeplus.view.screen.common.CoinPopupDriver;
 import kr.co.zumo.app.lifeplus.view.screen.setting.SettingViewHolder;
 
 /**
@@ -63,6 +65,14 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
     doubleCheckerWeather = new DoubleChecker(this::renderWeather);
 
     model.setContext(view.getActivity());
+
+    LoginBean loginBean = model.getDeliveryPackaging(LoginBean.class);
+    if (null != loginBean) {
+      Log.i("APP# MainPresenter | MemberBlockPresenter", "|" + ": " + loginBean.toJson());
+      int coin = loginBean.getIntCoin();
+      model.setGivenCoin(coin);
+      model.clearDeliveryPackaging();
+    }
   }
 
   private void renderWeather() {
@@ -84,7 +94,23 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
   @Override
   protected void startInternalOnce() {
     model.loadWeather();
-    model.loadPopupInfo();
+
+    // 로그인 시 적립된 코인이 있다면 팝업 표시
+    if (model.getGivenCoin() > 0) {
+      model.getCoinAsync(e -> {
+        Log.i("APP# MainPresenter | onResult", "|" + " current coin: " + e.getInteger());
+        new CoinPopupDriver(getFragmentManager(), () -> {
+          model.loadPopupInfo();
+        }, () -> {
+          model.loadPopupInfo();
+        }).show(Integer.parseInt(model.getCoin()), model.getGivenCoin(), R.string.coin_long_time_no_see);
+
+        model.mergeCoin();
+      });
+    }
+    else {
+      model.loadPopupInfo();
+    }
   }
 
   @Override

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -844,6 +844,7 @@
   <string name="coin_event_completed">이벤트 참여 완료!</string>
   <string name="coin_booking_place">구매예약 확정!</string>
   <string name="coin_event_bonus">이벤트 보너스 코인 적립!</string>
+  <string name="coin_long_time_no_see">재방문 환영!</string>
 
   <!-- event -->
   <string name="show_map">지도보기</string>