diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 3bb8b0750e..10e3a28088 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -252,13 +252,10 @@ public abstract class BaseQuickstepLauncher extends Launcher super.onActivityFlagsChanged(changeBits); } - /** - * Sets the back button visibility based on the current state/window focus. - */ - private void onLauncherStateOrFocusChanged() { + public boolean shouldBackButtonBeHidden(LauncherState toState) { Mode mode = SysUINavigationMode.getMode(this); boolean shouldBackButtonBeHidden = mode.hasGestures - && getStateManager().getState().hasFlag(FLAG_HIDE_BACK_BUTTON) + && toState.hasFlag(FLAG_HIDE_BACK_BUTTON) && hasWindowFocus() && (getActivityFlags() & ACTIVITY_STATE_TRANSITION_ACTIVE) == 0; if (shouldBackButtonBeHidden) { @@ -266,6 +263,14 @@ public abstract class BaseQuickstepLauncher extends Launcher shouldBackButtonBeHidden = AbstractFloatingView.getTopOpenViewWithType(this, TYPE_ALL & ~TYPE_HIDE_BACK_BUTTON) == null; } + return shouldBackButtonBeHidden; + } + + /** + * Sets the back button visibility based on the current state/window focus. + */ + private void onLauncherStateOrFocusChanged() { + boolean shouldBackButtonBeHidden = shouldBackButtonBeHidden(getStateManager().getState()); UiThreadHelper.setBackButtonAlphaAsync(this, SET_BACK_BUTTON_ALPHA, shouldBackButtonBeHidden ? 0f : 1f, true /* animate */); if (getDragLayer() != null) { diff --git a/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java b/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java index 91451919cb..075a4833fa 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java +++ b/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java @@ -61,7 +61,7 @@ public class BackButtonAlphaHandler implements LauncherStateManager.StateHandler mBackAlpha.value = SystemUiProxy.INSTANCE.get(mLauncher).getLastBackButtonAlpha(); animation.setFloat(mBackAlpha, VALUE, - toState.hasFlag(FLAG_HIDE_BACK_BUTTON) ? 0 : 1, LINEAR); + mLauncher.shouldBackButtonBeHidden(toState) ? 0 : 1, LINEAR); } private void updateBackAlpha() {