Update edgeBackGestureHandler for Taskbar on init/destroy()
* TaskbarDelegate wasn't calling mEdgeBackGestureHandler.onNavBarDetatched() when going from large screen to phone screen * Also cache taskbar visibility to prevent multiple instances of the same listener from being added Bug: 197058461 Test: Went from tablet to phone, used back, saw Launcher#onBackPressed() only got called once Change-Id: I63b742b047cbfac1421c5a0e8422e9e341c62627
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user