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

Commit 37d608d7 authored by John Spurlock's avatar John Spurlock
Browse files

Fix layout glitch specific to quick-settings -> settings.

When collapsing panels in code, relinquish focus immediately,
  triggering an immediate reeval of current focus in WM,
    triggering an immediate reeval of sysui flags,
      triggering an immediate system bar transition
      with the correct destination content frame.

Otherwise we eventually get around to it, after several layers
of sysui animation delays, but delaying the sysui visibility
re-eval until this point is far too late.

Bug:10696375
Change-Id: I947289667225b6a12bb8c81950df0e2e2d9f1f99
parent 3386b07e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1378,6 +1378,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
        setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true);
    }

    private void releaseFocus() {
        WindowManager.LayoutParams lp =
                (WindowManager.LayoutParams) mStatusBarWindow.getLayoutParams();
        lp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
        lp.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
        mWindowManager.updateViewLayout(mStatusBarWindow, lp);
    }

    public void animateCollapsePanels() {
        animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
    }
@@ -1389,6 +1397,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
                    + " flags=" + flags);
        }

        // release focus immediately to kick off focus change transition
        releaseFocus();

        if ((flags & CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL) == 0) {
            mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL);
            mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL);