Loading src/com/android/launcher3/Workspace.java +0 −28 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LongArrayMap; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.Thunk; import com.android.launcher3.util.VerticalFlingDetector; import com.android.launcher3.util.WallpaperOffsetInterpolator; import com.android.launcher3.widget.PendingAddShortcutInfo; import com.android.launcher3.widget.PendingAddWidgetInfo; Loading Loading @@ -571,33 +570,6 @@ public class Workspace extends PagedView } // Add the first page CellLayout firstPage = insertNewWorkspaceScreen(Workspace.FIRST_SCREEN_ID, 0); if (FeatureFlags.PULLDOWN_SEARCH) { firstPage.setOnTouchListener(new VerticalFlingDetector(mLauncher) { // detect fling when touch started from empty space @Override public boolean onTouch(View v, MotionEvent ev) { if (workspaceInModalState()) return false; if (shouldConsumeTouch(v)) return true; if (super.onTouch(v, ev)) { mLauncher.startSearch("", false, null, false); return true; } return false; } }); firstPage.setOnInterceptTouchListener(new VerticalFlingDetector(mLauncher) { // detect fling when touch started from on top of the icons @Override public boolean onTouch(View v, MotionEvent ev) { if (shouldConsumeTouch(v)) return true; if (super.onTouch(v, ev)) { mLauncher.startSearch("", false, null, false); return true; } return false; } }); } // Always add a QSB on the first screen. if (qsb == null) { // In transposed layout, we add the QSB in the Grid. As workspace does not touch the Loading src/com/android/launcher3/util/VerticalFlingDetector.javadeleted 100644 → 0 +0 −88 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.util; import android.content.Context; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; public class VerticalFlingDetector implements View.OnTouchListener { private static final float CUSTOM_SLOP_MULTIPLIER = 2.2f; private static final int SEC_IN_MILLIS = 1000; private VelocityTracker mVelocityTracker; private float mMinimumFlingVelocity; private float mMaximumFlingVelocity; private float mDownX, mDownY; private boolean mShouldCheckFling; private double mCustomTouchSlop; public VerticalFlingDetector(Context context) { ViewConfiguration vc = ViewConfiguration.get(context); mMinimumFlingVelocity = vc.getScaledMinimumFlingVelocity(); mMaximumFlingVelocity = vc.getScaledMaximumFlingVelocity(); mCustomTouchSlop = CUSTOM_SLOP_MULTIPLIER * vc.getScaledTouchSlop(); } @Override public boolean onTouch(View v, MotionEvent ev) { if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(ev); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: mDownX = ev.getX(); mDownY = ev.getY(); mShouldCheckFling = false; break; case MotionEvent.ACTION_MOVE: if (mShouldCheckFling) { break; } if (Math.abs(ev.getY() - mDownY) > mCustomTouchSlop && Math.abs(ev.getY() - mDownY) > Math.abs(ev.getX() - mDownX)) { mShouldCheckFling = true; } break; case MotionEvent.ACTION_UP: if (mShouldCheckFling) { mVelocityTracker.computeCurrentVelocity(SEC_IN_MILLIS, mMaximumFlingVelocity); // only when fling is detected in down direction if (mVelocityTracker.getYVelocity() > mMinimumFlingVelocity) { cleanUp(); return true; } } // fall through. case MotionEvent.ACTION_CANCEL: cleanUp(); } return false; } private void cleanUp() { if (mVelocityTracker == null) { return; } mVelocityTracker.recycle(); mVelocityTracker = null; } } src_flags/com/android/launcher3/config/FeatureFlags.java +0 −2 Original line number Diff line number Diff line Loading @@ -48,8 +48,6 @@ public final class FeatureFlags { public static final boolean QSB_ON_FIRST_SCREEN = true; // When enabled the all-apps icon is not added to the hotseat. public static final boolean NO_ALL_APPS_ICON = true; // When enabled fling down gesture on the first workspace triggers search. public static final boolean PULLDOWN_SEARCH = false; // When enabled the status bar may show dark icons based on the top of the wallpaper. public static final boolean LIGHT_STATUS_BAR = false; // When enabled icons are badged with the number of notifications associated with that app. Loading Loading
src/com/android/launcher3/Workspace.java +0 −28 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LongArrayMap; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.Thunk; import com.android.launcher3.util.VerticalFlingDetector; import com.android.launcher3.util.WallpaperOffsetInterpolator; import com.android.launcher3.widget.PendingAddShortcutInfo; import com.android.launcher3.widget.PendingAddWidgetInfo; Loading Loading @@ -571,33 +570,6 @@ public class Workspace extends PagedView } // Add the first page CellLayout firstPage = insertNewWorkspaceScreen(Workspace.FIRST_SCREEN_ID, 0); if (FeatureFlags.PULLDOWN_SEARCH) { firstPage.setOnTouchListener(new VerticalFlingDetector(mLauncher) { // detect fling when touch started from empty space @Override public boolean onTouch(View v, MotionEvent ev) { if (workspaceInModalState()) return false; if (shouldConsumeTouch(v)) return true; if (super.onTouch(v, ev)) { mLauncher.startSearch("", false, null, false); return true; } return false; } }); firstPage.setOnInterceptTouchListener(new VerticalFlingDetector(mLauncher) { // detect fling when touch started from on top of the icons @Override public boolean onTouch(View v, MotionEvent ev) { if (shouldConsumeTouch(v)) return true; if (super.onTouch(v, ev)) { mLauncher.startSearch("", false, null, false); return true; } return false; } }); } // Always add a QSB on the first screen. if (qsb == null) { // In transposed layout, we add the QSB in the Grid. As workspace does not touch the Loading
src/com/android/launcher3/util/VerticalFlingDetector.javadeleted 100644 → 0 +0 −88 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.util; import android.content.Context; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; public class VerticalFlingDetector implements View.OnTouchListener { private static final float CUSTOM_SLOP_MULTIPLIER = 2.2f; private static final int SEC_IN_MILLIS = 1000; private VelocityTracker mVelocityTracker; private float mMinimumFlingVelocity; private float mMaximumFlingVelocity; private float mDownX, mDownY; private boolean mShouldCheckFling; private double mCustomTouchSlop; public VerticalFlingDetector(Context context) { ViewConfiguration vc = ViewConfiguration.get(context); mMinimumFlingVelocity = vc.getScaledMinimumFlingVelocity(); mMaximumFlingVelocity = vc.getScaledMaximumFlingVelocity(); mCustomTouchSlop = CUSTOM_SLOP_MULTIPLIER * vc.getScaledTouchSlop(); } @Override public boolean onTouch(View v, MotionEvent ev) { if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(ev); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: mDownX = ev.getX(); mDownY = ev.getY(); mShouldCheckFling = false; break; case MotionEvent.ACTION_MOVE: if (mShouldCheckFling) { break; } if (Math.abs(ev.getY() - mDownY) > mCustomTouchSlop && Math.abs(ev.getY() - mDownY) > Math.abs(ev.getX() - mDownX)) { mShouldCheckFling = true; } break; case MotionEvent.ACTION_UP: if (mShouldCheckFling) { mVelocityTracker.computeCurrentVelocity(SEC_IN_MILLIS, mMaximumFlingVelocity); // only when fling is detected in down direction if (mVelocityTracker.getYVelocity() > mMinimumFlingVelocity) { cleanUp(); return true; } } // fall through. case MotionEvent.ACTION_CANCEL: cleanUp(); } return false; } private void cleanUp() { if (mVelocityTracker == null) { return; } mVelocityTracker.recycle(); mVelocityTracker = null; } }
src_flags/com/android/launcher3/config/FeatureFlags.java +0 −2 Original line number Diff line number Diff line Loading @@ -48,8 +48,6 @@ public final class FeatureFlags { public static final boolean QSB_ON_FIRST_SCREEN = true; // When enabled the all-apps icon is not added to the hotseat. public static final boolean NO_ALL_APPS_ICON = true; // When enabled fling down gesture on the first workspace triggers search. public static final boolean PULLDOWN_SEARCH = false; // When enabled the status bar may show dark icons based on the top of the wallpaper. public static final boolean LIGHT_STATUS_BAR = false; // When enabled icons are badged with the number of notifications associated with that app. Loading