From 034ce6fd945c9c2bfc6f4380619b965a5b1c8f8e Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 14 May 2020 10:49:30 -0700 Subject: [PATCH] Update shelf offset earlier when in gesture nav - Provide a hint to Launcher to indicate it will be resumed when swiping home, which allows us to notify sysui before any potential pip invocation, reducing the likelyhood of two conflicting animations when entering pip Bug: 156637223 Change-Id: Iae773e1aac88bbea6f74e1d1332417b448126471 --- .../launcher3/uioverrides/QuickstepLauncher.java | 16 ++++++++-------- .../quickstep/LauncherActivityInterface.java | 5 +++++ .../android/quickstep/LauncherSwipeHandler.java | 1 + .../android/launcher3/BaseQuickstepLauncher.java | 4 ++++ .../android/quickstep/BaseActivityInterface.java | 2 ++ src/com/android/launcher3/BaseActivity.java | 8 +++++++- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 6cfc846432..ad6a10bba3 100644 --- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -100,7 +100,7 @@ public class QuickstepLauncher extends BaseQuickstepLauncher { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); - onStateOrResumeChanged(); + onStateOrResumeChanging(false /* inTransition */); } @Override @@ -115,11 +115,9 @@ public class QuickstepLauncher extends BaseQuickstepLauncher { @Override protected void onActivityFlagsChanged(int changeBits) { super.onActivityFlagsChanged(changeBits); - if ((changeBits & (ACTIVITY_STATE_DEFERRED_RESUMED | ACTIVITY_STATE_STARTED - | ACTIVITY_STATE_USER_ACTIVE | ACTIVITY_STATE_TRANSITION_ACTIVE)) != 0 - && (getActivityFlags() & ACTIVITY_STATE_TRANSITION_ACTIVE) == 0) { - onStateOrResumeChanged(); + | ACTIVITY_STATE_USER_ACTIVE | ACTIVITY_STATE_TRANSITION_ACTIVE)) != 0) { + onStateOrResumeChanging((getActivityFlags() & ACTIVITY_STATE_TRANSITION_ACTIVE) == 0); } if (mHotseatPredictionController != null && ((changeBits & ACTIVITY_STATE_STARTED) != 0 @@ -164,14 +162,16 @@ public class QuickstepLauncher extends BaseQuickstepLauncher { /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. */ - private void onStateOrResumeChanged() { + private void onStateOrResumeChanging(boolean inTransition) { LauncherState state = getStateManager().getState(); DeviceProfile profile = getDeviceProfile(); - boolean visible = (state == NORMAL || state == OVERVIEW) && isUserActive() + boolean willUserBeActive = (getActivityFlags() & ACTIVITY_STATE_USER_WILL_BE_ACTIVE) != 0; + boolean visible = (state == NORMAL || state == OVERVIEW) + && (willUserBeActive || isUserActive()) && !profile.isVerticalBarLayout(); UiThreadHelper.runAsyncCommand(this, SET_SHELF_HEIGHT, visible ? 1 : 0, profile.hotseatBarSizePx); - if (state == NORMAL) { + if (state == NORMAL && !inTransition) { ((RecentsView) getOverviewPanel()).setSwipeDownShouldLaunchApp(false); } } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java index d466296a30..4ebfbd6a4c 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java @@ -290,6 +290,11 @@ public final class LauncherActivityInterface extends return true; } + @Override + public void setHintUserWillBeActive() { + getCreatedActivity().setHintUserWillBeActive(); + } + @Override public boolean deferStartingActivity(RecentsAnimationDeviceState deviceState, MotionEvent ev) { return deviceState.isInDeferredGestureRegion(ev); diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherSwipeHandler.java index 1830ccb04b..54b4769550 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherSwipeHandler.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherSwipeHandler.java @@ -939,6 +939,7 @@ public class LauncherSwipeHandler extends BaseSwipeUpHandler