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

Commit a2e3d734 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Fix canAffectSystemUiFlags"

parents 17c4a0d1 72207756
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1543,10 +1543,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
    @Override
    public boolean canAffectSystemUiFlags() {
        final boolean translucent = mAttrs.alpha == 0.0f;
        if (translucent) {
            return false;
        }
        if (mAppToken == null) {
            final boolean shown = mWinAnimator.getShown();
            final boolean exiting = mAnimatingExit || mDestroying;
            return shown && !exiting && !translucent;
            return shown && !exiting;
        } else {
            return !mAppToken.isHidden();
        }
+13 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.wm;

import android.util.MergedConfiguration;
import android.view.WindowManager;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -45,8 +44,7 @@ import static org.junit.Assert.assertTrue;
/**
 * Tests for the {@link WindowState} class.
 *
 * Build/Install/Run:
 *  bit FrameworksServicesTests:com.android.server.wm.WindowStateTests
 * atest FrameworksServicesTests:com.android.server.wm.WindowStateTests
 */
@SmallTest
@Presubmit
@@ -213,6 +211,18 @@ public class WindowStateTests extends WindowTestsBase {
        testPrepareWindowToDisplayDuringRelayout(true /*wasVisible*/);
    }

    @Test
    public void testCanAffectSystemUiFlags() throws Exception {
        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
        app.mToken.setHidden(false);
        assertTrue(app.canAffectSystemUiFlags());
        app.mToken.setHidden(true);
        assertFalse(app.canAffectSystemUiFlags());
        app.mToken.setHidden(false);
        app.mAttrs.alpha = 0.0f;
        assertFalse(app.canAffectSystemUiFlags());
    }

    private void testPrepareWindowToDisplayDuringRelayout(boolean wasVisible) {
        final WindowState root = createWindow(null, TYPE_APPLICATION, "root");
        root.mAttrs.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON;