Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6bb3442 authored by Vinit Nayak's avatar Vinit Nayak
Browse files

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
parent b954ad84
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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 {