浏览代码

[컨텐츠][New] 마지막 장 알림 토스트 표시 방식 수정
- 최소 거리 지정, 시리즈가 없을 경우

hyodong.min 7 年之前
父节点
当前提交
123a8fae58

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/Event.java

@@ -122,6 +122,7 @@ public class Event {
   public static final int SORT = 94;
   public static final int TUTORIAL = 95;
   public static final int CLICK_HTML = 96;
+  public static final int LAST = 97;
 
 
   @Retention(RetentionPolicy.SOURCE)
@@ -134,7 +135,7 @@ public class Event {
     ACTION_BAR_SEARCH, ACTION_BAR_MENU, ACTION_BAR_TITLE, FIRST_CATEGORY, SECOND_CATEGORY, THIRD_CATEGORY, FOURTH_CATEGORY, FIFTH_CATEGORY,
     SWITCH, BOOK_MARK_DEFAULT, BOOK_MARK_LIST, ADD, MY_COIN_MAIN, MY_PURCHASE_HISTORY, GUIDE, ADD_BUCKET, MY_MAIN_GUEST, COUPON_MALL, CATEGORY_CLICK,
     MY_FAQ, UPDATE, FILTER, CLOSE, HELP, CONTENTS, MORE, BANNER, RECOMMEND, KAKAO_TALK, FACE_BOOK, CODE_COPY, EVENT, TAG, BOOKMARK, ORDER, DEFAULT, COMPLETE_BUCKET,
-    LIKE, FRAGMENT_STACK_EMPTY, OVER_VIEW, SHARE, CALL_INFO, LINK, HOME_PAGE, INSTAGRAM, ADDRESS, SCROLL, SORT, TUTORIAL, CLICK_HTML
+    LIKE, FRAGMENT_STACK_EMPTY, OVER_VIEW, SHARE, CALL_INFO, LINK, HOME_PAGE, INSTAGRAM, ADDRESS, SCROLL, SORT, TUTORIAL, CLICK_HTML, LAST
   })
   public @interface ID {}
 

+ 4 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsFragment.java

@@ -198,14 +198,14 @@ public class ContentsFragment extends FragmentBase<ContentsPresenter> implements
         startSmoothScroll(linearSmoothScroller);
       }
     };
-    
-    TouchEventWithDirection touchEventWithDirection = new TouchEventWithDirection();
+
+    TouchEventWithDirection touchEventWithDirection = new TouchEventWithDirection(100);
     recyclerViewContentsDetail.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
       @Override
       public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent motionEvent) {
         if (touchEventWithDirection.getDirection(motionEvent).equals(TouchEventWithDirection.DIRECTION_RIGHT)) {
-          if (layoutManager.findFirstVisibleItemPosition() == contentsDetailBeans.size() - 1) {
-            presenter.onEvent(new Event.Builder(Event.NONE).build());
+          if (layoutManager.findFirstVisibleItemPosition() == adapter.getItemCount() - 1) {
+            presenter.onEvent(new Event.Builder(Event.LAST).build());
           }
         }
         return false;

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

@@ -178,8 +178,10 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
 //        View view = inflater.inflate(R.layout.tutorial_listicle_cover, null);
 //        frameLayout.addView(view);
         break;
-      case Event.NONE:
-        showLastPageToast();
+      case Event.LAST:
+        if (false == model.hasSeries()) {
+          showLastPageToast();
+        }
         break;
       case Event.CLICK_HTML:
         // html 의 자바스크립트를 통해서 전달된 데이터
@@ -487,20 +489,10 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
       stringResource = R.string.last_contents_card;
     }
 
-    Runnable runnable = new Runnable() {
-      @Override
-      public void run() {
-        Toast.makeText(view.getActivity(), stringResource, Toast.LENGTH_SHORT);
-        if (toast != null) {
-          toast.cancel();
-          toast = null;
-        }
-        else {
-          toast = Toast.makeText(view.getActivity(), stringResource, Toast.LENGTH_SHORT);
-          toast.show();
-        }
-      }
-    };
-    runnable.run();
+    if (toast != null) {
+      toast.cancel();
+    }
+    toast = Toast.makeText(view.getActivity(), stringResource, Toast.LENGTH_SHORT);
+    toast.show();
   }
 }

+ 22 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/TouchEventWithDirection.java

@@ -24,6 +24,12 @@ public class TouchEventWithDirection {
   private int oldX;
   private int oldY;
 
+  private final int distanceMinPx;
+
+  public TouchEventWithDirection(int distanceMinPx) {
+    this.distanceMinPx = distanceMinPx;
+  }
+
   public String getDirection(MotionEvent e) {
     direction = DIRECTION_NONE;
     int action = e.getAction();
@@ -41,19 +47,29 @@ public class TouchEventWithDirection {
 
         // Use dx and dy to determine the direction of the move
         if (Math.abs(dx) > Math.abs(dy)) {
-          if (dx > 0) {
-            direction = DIRECTION_RIGHT;
+          if (Math.abs(dx) > distanceMinPx) {
+            if (dx > 0) {
+              direction = DIRECTION_RIGHT;
+            }
+            else {
+              direction = DIRECTION_LEFT;
+            }
           }
           else {
-            direction = DIRECTION_LEFT;
+            direction = DIRECTION_NONE;
           }
         }
         else {
-          if (dy > 0) {
-            direction = DIRECTION_DOWN;
+          if (Math.abs(dy) > distanceMinPx) {
+            if (dy > 0) {
+              direction = DIRECTION_DOWN;
+            }
+            else {
+              direction = DIRECTION_UP;
+            }
           }
           else {
-            direction = DIRECTION_UP;
+            direction = DIRECTION_NONE;
           }
         }
         break;