浏览代码

[컨텐츠][New] 앱리뷰 표시 조건 변경

hyodong.min 7 年之前
父节点
当前提交
56ba20c3a3

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

@@ -18,6 +18,9 @@ package kr.co.zumo.app.lifeplus.model;
 public class LifeplusPreferences {
   private BaseSharedPreferences preferences;
 
+  // 리뷰 확인 했음
+  public static final int REVIEW_COMPLETED = 100;
+
   public final static String ENCRYPTION_USER_NO = "encryption_user_no";
   public final static String ZUMO_USER_UPDATE_COMPLETED = "zumo_user_update_completed";
   public final static String USER_ID = "user_id";

+ 3 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/SuperModel.java

@@ -20,7 +20,7 @@ import kr.co.zumo.app.lifeplus.util.StringUtil;
  * @history 민효동   [2018. 9. 5.]   [최초 작성]
  * @since 2018. 9. 5.
  */
-public final class SuperModel implements IMemberStatus{
+public final class SuperModel implements IMemberStatus {
 
   /**
    * 여러 Activity 에서 사용 할 수 있으므로 싱글톤 유지
@@ -259,6 +259,7 @@ public final class SuperModel implements IMemberStatus{
 
   /**
    * 핀 저장 - 암호환 된 핀을
+   *
    * @param encryptedPin 암호화된 핀
    */
   public void saveEncryptedPin(String encryptedPin) {
@@ -351,6 +352,7 @@ public final class SuperModel implements IMemberStatus{
   public int getMemberStatus() {
     return memberStatus;
   }
+
   /**
    * 블럭 멥버 확인
    *

+ 5 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsModel.java

@@ -263,9 +263,13 @@ public class ContentsModel extends ContentsBaseModel {
     return contentsDetailListBean.getItemCount();
   }
 
+  public boolean isLastPage() {
+    return getItemCount() - 1 == getCurrentPageIndex();
+  }
+
   public boolean isSeriesPage() {
     if (hasSeries()) {
-      return getItemCount() - 1 == getCurrentPageIndex();
+      return isLastPage();
     }
     else {
       return false;

+ 40 - 30
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsPresenter.java

@@ -13,12 +13,14 @@ import kr.co.zumo.app.lifeplus.bean.HtmlBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
+import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.command.WebCommand;
+import kr.co.zumo.app.lifeplus.view.dialog.AppReviewDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
@@ -218,41 +220,19 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
     view.setLiked(model.isLiked());
     view.setBookmarked(model.isBookmarked());
 
-    // todo 첫 페이지가 아닐 수도 있음
     // -> 공유/북마크(페이지 단위)로 진입
     view.setVisibleDotDotDot(false);
 
     /**
-     * fixme 조건 변경 -> 5회 이상 진입 + 마지막 페이지 일 경우.
-     * 12/5 오픈에서는 제외
+     * 5회 이상 진입 + 마지막 페이지 일 경우.
      */
-//    int count = model.getCountForReview();
-//    if (count < 100) {
-//      ++count;
-//      model.setCountForReview(count);
-//      if (count == 3) {
-//        model.setCountForReview(100);
-//        reviewDialog = new DialogBuilder<AppReviewDialog, ICustomDialogListener>(getFragmentManager(), DialogID.APP_REVIEW)
-//          .listener(new ICustomDialogListener<AppReviewDialog>() {
-//            @Override
-//            public void onDialogResult(AppReviewDialog dialog, Event event) {
-//              switch (event.getEventId()) {
-//                case Event.ADD:
-//                  view.goGooglePlay();
-//                  break;
-//                default:
-//                  break;
-//              }
-//            }
-//
-//            @Override
-//            public void onDialogCanceled(AppReviewDialog dialog) {
-//              dialog.dispose();
-//            }
-//          })
-//          .show();
-//      }
-//    }
+    int count = model.getCountForReview();
+    if (count < LifeplusPreferences.REVIEW_COMPLETED) {
+      ++count;
+
+      // fixme 12/5 오픈에서는 제외
+      model.setCountForReview(count);
+    }
 
   }
 
@@ -436,6 +416,36 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
     else {
       view.setCardPageNumber(model.getCurrentPageIndex() + " / " + String.valueOf(model.getItemCount() - (model.hasSeries() ? 2 : 1)));
     }
+
+    /**
+     *  5회 이상 && 마지막 페이지
+     */
+    int reviewCount = model.getCountForReview();
+    if (reviewCount >= 5 && reviewCount != LifeplusPreferences.REVIEW_COMPLETED && model.isLastPage()) {
+
+      // 리뷰 한 것으로 표시
+      model.setCountForReview(LifeplusPreferences.REVIEW_COMPLETED);
+
+      reviewDialog = new DialogBuilder<AppReviewDialog, ICustomDialogListener>(getFragmentManager(), DialogID.APP_REVIEW)
+        .listener(new ICustomDialogListener<AppReviewDialog>() {
+          @Override
+          public void onDialogResult(AppReviewDialog dialog, Event event) {
+            switch (event.getEventId()) {
+              case Event.ADD:
+                view.goGooglePlay();
+                break;
+              default:
+                break;
+            }
+          }
+
+          @Override
+          public void onDialogCanceled(AppReviewDialog dialog) {
+            dialog.dispose();
+          }
+        })
+        .show();
+    }
   }
 
   private void showMoreInfoPopup(int index) {