diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2016-09-16 12:03:27 -0700 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2016-09-16 12:03:27 -0700 |
commit | f99370c2a9cbe340f340a15a5f065166de9f809a (patch) | |
tree | db968bc6d6d30c5207cc277335278c9f50f94358 /src | |
parent | 46133612b4c864a4e4da45a9de3a343e3955c321 (diff) | |
download | android_packages_apps_Trebuchet-f99370c2a9cbe340f340a15a5f065166de9f809a.tar.gz android_packages_apps_Trebuchet-f99370c2a9cbe340f340a15a5f065166de9f809a.tar.bz2 android_packages_apps_Trebuchet-f99370c2a9cbe340f340a15a5f065166de9f809a.zip |
Fixing issue where overview->normal workspace mode cannot be done by tapping
b/31458165
Because workspaceInModalState makes the VerticalFlingDetector
to consume the touch input, click is not detected in Overview mode.
Placed pulldown to search behind a feature flag.
Change-Id: I31ab69f57944a18e6b264c4f2ed2d0c1175cd940
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 35 | ||||
-rw-r--r-- | src/com/android/launcher3/util/VerticalFlingDetector.java | 3 |
2 files changed, 27 insertions, 11 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 0bb8cbfb9..c499beeb3 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -594,18 +594,31 @@ public class Workspace extends PagedView } // Add the first page CellLayout firstPage = insertNewWorkspaceScreen(Workspace.FIRST_SCREEN_ID, 0); - final VerticalFlingDetector detector = new VerticalFlingDetector(mLauncher){ - @Override - public boolean onTouch(View v, MotionEvent ev) { - if (shouldConsumeTouch(v)) return true; - if (super.onTouch(v, ev)) { - mLauncher.startSearch("", false, null, false); + 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 false; } - return false; - } - }; - firstPage.setOnTouchListener(detector); - firstPage.setOnInterceptTouchListener(detector); + }); + 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 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 diff --git a/src/com/android/launcher3/util/VerticalFlingDetector.java b/src/com/android/launcher3/util/VerticalFlingDetector.java index 5f2b3f3ac..7236c2d1b 100644 --- a/src/com/android/launcher3/util/VerticalFlingDetector.java +++ b/src/com/android/launcher3/util/VerticalFlingDetector.java @@ -79,6 +79,9 @@ public class VerticalFlingDetector implements View.OnTouchListener { } private void cleanUp() { + if (mVelocityTracker == null) { + return; + } mVelocityTracker.recycle(); mVelocityTracker = null; } |