summaryrefslogtreecommitdiffstats
path: root/quickstep/recents_ui_overrides
diff options
context:
space:
mode:
authorTony <twickham@google.com>2019-06-14 20:26:12 -0700
committerTony Wickham <twickham@google.com>2019-06-18 13:41:08 -0700
commit32cb616fab1ad495968d1eadd503a61b8bf3db35 (patch)
treec34099791eaea36a725233b55d054e8f5b0efe8f /quickstep/recents_ui_overrides
parente1abaa64c25fdc9841f5cbeff2647ff4f95ac255 (diff)
downloadandroid_packages_apps_Trebuchet-32cb616fab1ad495968d1eadd503a61b8bf3db35.tar.gz
android_packages_apps_Trebuchet-32cb616fab1ad495968d1eadd503a61b8bf3db35.tar.bz2
android_packages_apps_Trebuchet-32cb616fab1ad495968d1eadd503a61b8bf3db35.zip
Fix bugs with hotseat in overview
- Allow touches to go through recents to the hotseat. - Translate the hotseat with the all apps shelf when swiping up in background app state. Bug: 135222111 Change-Id: Ib887fc25ccfeb406a44074198c11f7b1d245443c
Diffstat (limited to 'quickstep/recents_ui_overrides')
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java12
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/OverviewState.java4
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java7
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/quickstep/views/LauncherRecentsView.java14
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java4
5 files changed, 39 insertions, 2 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java
index 1c6696858..d14de70c5 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java
@@ -83,4 +83,16 @@ public class BackgroundAppState extends OverviewState {
public int getVisibleElements(Launcher launcher) {
return super.getVisibleElements(launcher) & ~RECENTS_CLEAR_ALL_BUTTON;
}
+
+ @Override
+ public ScaleAndTranslation getHotseatScaleAndTranslation(Launcher launcher) {
+ if ((getVisibleElements(launcher) & HOTSEAT_ICONS) != 0) {
+ // Translate hotseat offscreen if we show it in overview.
+ ScaleAndTranslation scaleAndTranslation = super.getHotseatScaleAndTranslation(launcher);
+ scaleAndTranslation.translationY = LayoutUtils.getShelfTrackingDistance(launcher,
+ launcher.getDeviceProfile());
+ return scaleAndTranslation;
+ }
+ return super.getHotseatScaleAndTranslation(launcher);
+ }
}
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/OverviewState.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/OverviewState.java
index 9a99c1552..5c9b20096 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/OverviewState.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/states/OverviewState.java
@@ -127,6 +127,10 @@ public class OverviewState extends LauncherState {
// We have no all apps content, so we're still at the fully down progress.
return super.getVerticalProgress(launcher);
}
+ return getDefaultVerticalProgress(launcher);
+ }
+
+ public static float getDefaultVerticalProgress(Launcher launcher) {
return 1 - (getDefaultSwipeHeight(launcher)
/ launcher.getAllAppsController().getShiftRange());
}
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
index 0d06c19ab..e7d085ca1 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
@@ -16,7 +16,6 @@
package com.android.quickstep;
import static android.view.View.TRANSLATION_Y;
-
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
import static com.android.launcher3.LauncherState.NORMAL;
@@ -62,6 +61,7 @@ import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.SpringObjectAnimator;
import com.android.launcher3.testing.TestProtocol;
+import com.android.launcher3.uioverrides.states.OverviewState;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.views.FloatingIconView;
import com.android.quickstep.SysUINavigationMode.Mode;
@@ -260,8 +260,11 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
}
float shelfHiddenProgress = BACKGROUND_APP.getVerticalProgress(activity);
float shelfOverviewProgress = OVERVIEW.getVerticalProgress(activity);
+ // Peek based on default overview progress so we can see hotseat if we're showing
+ // that instead of predictions in overview.
+ float defaultOverviewProgress = OverviewState.getDefaultVerticalProgress(activity);
float shelfPeekingProgress = shelfHiddenProgress
- - (shelfHiddenProgress - shelfOverviewProgress) * 0.25f;
+ - (shelfHiddenProgress - defaultOverviewProgress) * 0.25f;
float toProgress = mShelfState == ShelfAnimState.HIDE
? shelfHiddenProgress
: mShelfState == ShelfAnimState.PEEK
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/LauncherRecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/LauncherRecentsView.java
index 5b2e27e53..03441c87e 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/LauncherRecentsView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/LauncherRecentsView.java
@@ -33,9 +33,11 @@ import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Build;
import android.util.AttributeSet;
+import android.view.MotionEvent;
import android.view.View;
import com.android.launcher3.DeviceProfile;
+import com.android.launcher3.Hotseat;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager.StateListener;
@@ -250,4 +252,16 @@ public class LauncherRecentsView extends RecentsView<Launcher> implements StateL
setDisallowScrollToClearAll(!hasClearAllButton);
}
}
+
+ @Override
+ protected boolean shouldStealTouchFromSiblingsBelow(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ // Allow touches to go through to the hotseat.
+ Hotseat hotseat = mActivity.getHotseat();
+ boolean touchingHotseat = hotseat.isShown()
+ && mActivity.getDragLayer().isEventOverView(hotseat, ev, this);
+ return !touchingHotseat;
+ }
+ return super.shouldStealTouchFromSiblingsBelow(ev);
+ }
}
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
index 9058e7eda..a8987a3d4 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
@@ -521,6 +521,10 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
// Do not let touch escape to siblings below this view.
+ return isHandlingTouch() || shouldStealTouchFromSiblingsBelow(ev);
+ }
+
+ protected boolean shouldStealTouchFromSiblingsBelow(MotionEvent ev) {
return true;
}