Browse Source

[회원가입][New] 온보딩에서 진입 시 뒤로 가기는 온보딩이 아닌 홈으로 이동

hyodong.min 7 years ago
parent
commit
7dd8b58c31

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/ScreenID.java

@@ -27,6 +27,7 @@ public class ScreenID {
   public static final int SIGN_UP_START = 5;
   public static final int SIGN_UP_START_FROM_ZUMO = 1006;
   public static final int SIGN_UP_START_FROM_ON_BOARDING = 1007;
+  public static final int SIGN_UP_START_FROM_ZUMO_ON_BOARDING = 1008;
   public static final int SIGN_UP_MOBILE_AUTHORIZATION = 8;
   public static final int SIGN_UP_ALREADY_MEMBER = 9;
   public static final int SIGN_UP_NEED_FOR_30DAYS = 10;
@@ -101,7 +102,7 @@ public class ScreenID {
     LIFE_PLUS_INTRODUCTION, LIFE_PLUS_X, SETTING_MEMBER_INFO, MY_MAIN_GUEST, COUPON_MALL, ALL_MENU_GUEST, SETTING_MEMBER_QUIT_INFO, MY_FAQ, SETTING_MEMBER_QUIT_REQUEST,
     SETTING_MEMBER_QUIT_FINISH, SETTING_TERMS, SETTING_MEMBER_QUIT_FAIL, MAIN_PIN_UNLOCK, PIN_RESET_AUTH, PIN_RESET_INPUT, PIN_RESET_AUTH_FROM_SETTING,
     PIN_RESET_INPUT_FROM_SETTING, PIN_RESET_AUTH_FROM_ALREADY_MEMBER, PIN_RESET_INPUT_FROM_ALREADY_MEMBER, CONTENTS, EVENT, PHONE_NUMBER_RESET, BUCKET_MY_EDIT, BUCKET_DEFAULT,
-    NETWORK_ERROR_STARTING, OVER_VIEW, ACTIVITY, SERIES, CONTENTS_WEB
+    NETWORK_ERROR_STARTING, OVER_VIEW, ACTIVITY, SERIES, CONTENTS_WEB, SIGN_UP_START_FROM_ZUMO_ON_BOARDING
   })
   public @interface ID {}
 

+ 7 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/screen/ActivityScreen.java

@@ -87,7 +87,13 @@ public class ActivityScreen extends Screen {
       case ScreenID.SIGN_UP_START:
         intent = new Intent(activity, SignUpActivity.class);
         if (helper.getModel().isUpdateUser()) {
-          id = ScreenID.SIGN_UP_START_FROM_ZUMO;
+          if (helper.isFromOnBoarding()) {
+            helper.setFromOnBoarding(false);
+            id = ScreenID.SIGN_UP_START_FROM_ON_BOARDING;
+          }
+          else {
+            id = ScreenID.SIGN_UP_START_FROM_ZUMO;
+          }
         }
         else if (helper.isFromOnBoarding()) {
           helper.setFromOnBoarding(false);

+ 68 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/contents/CustomListicleImageView.java

@@ -7,6 +7,7 @@ import android.support.v7.widget.PagerSnapHelper;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.SnapHelper;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
@@ -74,18 +75,82 @@ public class CustomListicleImageView extends ConstraintLayout {
     snapHelper.attachToRecyclerView(recyclerView);
   }
 
+  int oldX;
+  int oldY;
+
+  private static final String DIRECTION_NONE = "none";
+  private static final String DIRECTION_UP = "up";
+  private static final String DIRECTION_DOWN = "down";
+  private static final String DIRECTION_RIGHT = "right";
+  private static final String DIRECTION_LEFT = "left";
+
+  private String getDirection(MotionEvent e) {
+    String direction = DIRECTION_NONE;
+    int action = e.getAction();
+    switch (action) {
+      case MotionEvent.ACTION_DOWN:
+        oldX = (int) e.getX();
+        oldY = (int) e.getY();
+        break;
+      case MotionEvent.ACTION_MOVE:
+        int newX = (int) e.getX();
+        int newY = (int) e.getY();
+
+        int dx = oldX - newX;
+        int dy = oldY - newY;
+
+        // Use dx and dy to determine the direction of the move
+        if (Math.abs(dx) > Math.abs(dy)) {
+          if (dx > 0) {
+            direction = DIRECTION_RIGHT;
+          }
+          else {
+            direction = DIRECTION_LEFT;
+          }
+        }
+        else {
+          if (dy > 0) {
+            direction = DIRECTION_DOWN;
+          }
+          else {
+            direction = DIRECTION_UP;
+          }
+        }
+        break;
+      default:
+        // nothing
+        break;
+    }
+    return direction;
+  }
+
   private RecyclerView.OnItemTouchListener touchEventListener = new RecyclerView.OnItemTouchListener() {
     @Override
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
+      String direction = getDirection(e);
+      Log.w("APP# CustomListicleImageView | onInterceptTouchEvent", "|" + "direction: " + direction);
+
       int action = e.getAction();
       switch (action) {
-        case MotionEvent.ACTION_MOVE:
         case MotionEvent.ACTION_DOWN:
         case MotionEvent.ACTION_UP:
+        case MotionEvent.ACTION_MOVE:
           /**
-           * todo index 가 0 일 때 좌-> 우 드래그 시 false, index 가 끝일 때 좌<-우 드래그 시 false
+           * index 가 0 일 때 좌-> 우 드래그 시 false, index 가 끝일 때 좌<-우 드래그 시 false
            */
-          rv.getParent().requestDisallowInterceptTouchEvent(true);
+          boolean intercept = true;
+          if (currentIndex == 0) {
+            if (direction.equals(DIRECTION_LEFT)) {
+              intercept = false;
+            }
+          }
+
+          if (currentIndex == contentsLength - 1) {
+            if (direction.equals(DIRECTION_RIGHT)) {
+              intercept = false;
+            }
+          }
+          rv.getParent().requestDisallowInterceptTouchEvent(intercept);
           break;
         default:
           break;

+ 6 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/factory/BasicFragmentFactory.java

@@ -7,15 +7,15 @@ import android.support.v4.app.Fragment;
 
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
-import kr.co.zumo.app.lifeplus.view.screen.contents.series.ContentsSeriesFragment;
 import kr.co.zumo.app.lifeplus.view.screen.category.type1.FirstCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.category.type2.SecondCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.category.type3.ThirdCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.category.type4.FourthCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.category.type5.FifthCategoryMainFragment;
 import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsFragment;
-import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsWebFragment;
 import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsOverviewFragment;
+import kr.co.zumo.app.lifeplus.view.screen.contents.ContentsWebFragment;
+import kr.co.zumo.app.lifeplus.view.screen.contents.series.ContentsSeriesFragment;
 import kr.co.zumo.app.lifeplus.view.screen.couponmall.CouponMallFragment;
 import kr.co.zumo.app.lifeplus.view.screen.error.NetworkErrorStartingFragment;
 import kr.co.zumo.app.lifeplus.view.screen.event.EventFragment;
@@ -70,6 +70,7 @@ import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpPinFragment;
 import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpStartFragment;
 import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpStartOnBoardingFragment;
 import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpStartZumoFragment;
+import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpStartZumoOnBoardingFragment;
 import kr.co.zumo.app.lifeplus.view.screen.signup.SignUpUnder14YearsFragment;
 
 /**
@@ -99,6 +100,9 @@ public class BasicFragmentFactory extends FragmentFactory {
       case ScreenID.SIGN_UP_START_FROM_ON_BOARDING:
         fragment = new SignUpStartOnBoardingFragment();
         break;
+      case ScreenID.SIGN_UP_START_FROM_ZUMO_ON_BOARDING:
+        fragment = new SignUpStartZumoOnBoardingFragment();
+        break;
       case ScreenID.SIGN_UP_MOBILE_AUTHORIZATION:
         fragment = new SignUpMobileAuthFragment();
         break;

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/onboarding/OnBoardingPresenter.java

@@ -99,6 +99,7 @@ public class OnBoardingPresenter extends Presenter<BlankModel, IOnBoardingView>
           break;
         case Event.TUTORIAL_RIGHT:
           // 회원 전환
+          getHelper(ScreenManagerHelper.class).setFromOnBoarding(true);
           SuperModel.getInstance().getPreferences().setTutorialDone(true);
 
           go(ScreenID.SIGN_UP_START);

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/signup/SignUpStartOnBoardingFragment.java

@@ -47,6 +47,8 @@ public class SignUpStartOnBoardingFragment extends SignUpStartFragment {
     presenter.setSignCompletedStringId(R.string.sign_up_success_message);
     presenter.setCoinCompletedStringId(R.string.coupon_message);
 
+    presenter.setOnBoardingStart();
+
     View buttonAuthorization = parent.findViewById(R.id.button_confirm);
     buttonAuthorization.setOnClickListener(view -> presenter.onEvent(new Event.Builder(Event.SUCCESS).build()));
   }

+ 23 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/signup/SignUpStartZumoOnBoardingFragment.java

@@ -0,0 +1,23 @@
+package kr.co.zumo.app.lifeplus.view.screen.signup;
+
+import android.os.Bundle;
+
+/**
+ * SignUpStartFragment
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-09-21]   [최초 작성]
+ * @since 2018-09-21
+ */
+public class SignUpStartZumoOnBoardingFragment extends SignUpStartZumoFragment {
+
+  @Override
+  protected void onAfterActivityCreated(Bundle savedInstanceState) {
+    super.onAfterActivityCreated(savedInstanceState);
+    presenter.setOnBoardingStart();
+  }
+
+}