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

Commit c5804afa authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Fix a few issues with occluded Keyguard

- When we get a collapse before the layout happened in SystemUI,
don't expand the panel after the layout.
- Don't reset waitingToShow when coming out of sleep. This will cause
win.isVisibleOrBehindKeyguardLw to return false and then occluded
state will change rapidly from true -> false -> true, leading to
flickering in SysUI.

Bug: 23898941
Change-Id: I2b941188de777086bb2b477f5bfc00cc0cd6abe0
parent 72c216f2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -883,6 +883,10 @@ public abstract class PanelView extends FrameLayout {
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        if (!mInstantExpanding) {
                            getViewTreeObserver().removeOnGlobalLayoutListener(this);
                            return;
                        }
                        if (mStatusBar.getStatusBarWindow().getHeight()
                                != mStatusBar.getStatusBarHeight()) {
                            getViewTreeObserver().removeOnGlobalLayoutListener(this);
@@ -907,6 +911,10 @@ public abstract class PanelView extends FrameLayout {
        if (mExpanding) {
            notifyExpandingFinished();
        }
        if (mInstantExpanding) {
            mInstantExpanding = false;
            notifyBarPanelExpansionChanged();
        }
    }

    private void abortAnimations() {
+5 −1
Original line number Diff line number Diff line
@@ -4409,7 +4409,11 @@ public class WindowManagerService extends IWindowManager.Stub
                if (wtoken.hidden || wtoken.mAppStopped) {
                    wtoken.allDrawn = false;
                    wtoken.deferClearAllDrawn = false;

                    // If the app was already visible, don't reset the waitingToShow state.
                    if (wtoken.hidden) {
                        wtoken.waitingToShow = true;
                    }

                    if (wtoken.clientHidden) {
                        // In the case where we are making an app visible