diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java index ecc3245e286ab..3d655a8f83730 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java @@ -71,6 +71,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private int mDisabledFlags; private @WindowVisibleState int mTaskBarWindowState = WINDOW_STATE_SHOWING; private @Behavior int mBehavior; + private boolean mTaskbarVisible = false; @Inject public TaskbarDelegate(Context context) { @@ -96,6 +97,8 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mOverviewProxyService.removeCallback(this); mNavigationModeController.removeListener(this); mNavigationBarA11yHelper.removeA11yEventListener(mNavA11yEventListener); + mEdgeBackGestureHandler.onNavBarDetached(); + mTaskbarVisible = false; } public void init(int displayId) { @@ -104,6 +107,8 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mOverviewProxyService.addCallback(this); mNavigationModeController.addListener(this); mNavigationBarA11yHelper.registerA11yEventListener(mNavA11yEventListener); + mEdgeBackGestureHandler.onNavBarAttached(); + mTaskbarVisible = true; // Set initial state for any listeners updateSysuiFlags(); } @@ -180,6 +185,10 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onTaskbarStatusUpdated(boolean visible, boolean stashed) { + if (mTaskbarVisible == visible) { + return; + } + mTaskbarVisible = visible; if (visible) { mEdgeBackGestureHandler.onNavBarAttached(); } else {