summaryrefslogtreecommitdiffstats
path: root/quickstep/recents_ui_overrides
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2019-11-20 13:08:44 -0800
committerTony Wickham <twickham@google.com>2019-11-20 13:08:44 -0800
commit94fb4cd3fd561aa08ab1d0970687981387d7512a (patch)
tree4f7d61ef2a29c7f01aa85301c595676d759496ef /quickstep/recents_ui_overrides
parentf3761296a1a94086a3f7bc37cc6d3cada73d5d87 (diff)
downloadandroid_packages_apps_Trebuchet-94fb4cd3fd561aa08ab1d0970687981387d7512a.tar.gz
android_packages_apps_Trebuchet-94fb4cd3fd561aa08ab1d0970687981387d7512a.tar.bz2
android_packages_apps_Trebuchet-94fb4cd3fd561aa08ab1d0970687981387d7512a.zip
Fix quick switch from home biased towards returning home
When flinging up and to the right, we previously always returned home. Now, if the right velocity is stronger, we quick switch. Bug: 126596417 Change-Id: I14fa0584399bb90f2e07e0b296fc5932d8224fbf
Diffstat (limited to 'quickstep/recents_ui_overrides')
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java
index 7ffffeda1..7dec014f9 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java
@@ -342,9 +342,20 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
final LauncherState targetState;
if (horizontalFling && verticalFling) {
- // Flinging left and up, left and down, or right and up all go back home.
- // Only flinging right and down goes to quick switch.
- targetState = velocity.x < 0 || velocity.y < 0 ? NORMAL : QUICK_SWITCH;
+ if (velocity.x < 0) {
+ // Flinging left and up or down both go back home.
+ targetState = NORMAL;
+ } else {
+ if (velocity.y > 0) {
+ // Flinging right and down goes to quick switch.
+ targetState = QUICK_SWITCH;
+ } else {
+ // Flinging up and right could go either home or to quick switch.
+ // Determine the target based on the higher velocity.
+ targetState = Math.abs(velocity.x) > Math.abs(velocity.y)
+ ? QUICK_SWITCH : NORMAL;
+ }
+ }
} else if (horizontalFling) {
targetState = velocity.x > 0 ? QUICK_SWITCH : NORMAL;
} else if (verticalFling) {