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