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

Commit 9cf34e2e authored by Craig Mautner's avatar Craig Mautner
Browse files

Revert "Apply FLAG_SHOW_WHEN_LOCKED within tasks."

This reverts commit f7ad8557.

After careful consideration this would prove to be a security leak to leave it in. Tasks could deliberately launch dialog activities that don't want to be seen in an unsecure setting. These would then be visible over the task background.

Change-Id: Ia7e984bc9616573af6c7772f6ea0f2dd588bb85d
parent f7ad8557
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -124,8 +124,6 @@ public interface WindowManagerPolicy {
     * to prepareAddWindow() until removeWindow().
     */
    public interface WindowState {
        public final static int UNKNOWN_TASK_ID = -1;

        /**
         * Return the uid of the app that owns this window.
         */
@@ -283,11 +281,6 @@ public interface WindowManagerPolicy {
         */
        public IApplicationToken getAppToken();

        /**
         * Return the taskId of the task that owns this window.
         */
        public int getTaskId();

        /**
         * Return true if, at any point, the application token associated with 
         * this window has actually displayed any windows.  This is most useful 
+5 −10
Original line number Diff line number Diff line
@@ -106,7 +106,6 @@ import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;

import static android.view.WindowManager.LayoutParams.*;
import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
@@ -375,7 +374,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    static final Rect mTmpNavigationFrame = new Rect();

    WindowState mTopFullscreenOpaqueWindowState;
    HashSet<Integer> mTasksToBeHidden = new HashSet<Integer>();
    boolean mHideWindowBehindKeyguard;
    boolean mTopIsFullscreen;
    boolean mForceStatusBar;
    boolean mForceStatusBarFromKeyguard;
@@ -3367,7 +3366,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    @Override
    public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) {
        mTopFullscreenOpaqueWindowState = null;
        mTasksToBeHidden.clear();
        mHideWindowBehindKeyguard = false;
        mForceStatusBar = false;
        mForceStatusBarFromKeyguard = false;
        mForcingShowNavBar = false;
@@ -3418,18 +3417,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {

            final boolean showWhenLocked = (fl & FLAG_SHOW_WHEN_LOCKED) != 0;
            if (appWindow) {
                final int taskId = win.getTaskId();
                if (taskId != WindowState.UNKNOWN_TASK_ID && showWhenLocked) {
                    mTasksToBeHidden.remove(taskId);
                } else {
                    mTasksToBeHidden.add(taskId);
                }
                if (attrs.x == 0 && attrs.y == 0
                        && attrs.width == WindowManager.LayoutParams.MATCH_PARENT
                        && attrs.height == WindowManager.LayoutParams.MATCH_PARENT) {
                    if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win);
                    mTopFullscreenOpaqueWindowState = win;
                    if (mTasksToBeHidden.isEmpty()) {
                    if (!mHideWindowBehindKeyguard) {
                        if (showWhenLocked) {
                            if (DEBUG_LAYOUT) Slog.v(TAG,
                                    "Setting mHideLockScreen to true by win " + win);
@@ -3449,6 +3442,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    if ((fl & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) {
                        mAllowLockscreenWhenOn = true;
                    }
                } else if (!showWhenLocked) {
                    mHideWindowBehindKeyguard = true;
                }
            }
        }
+0 −5
Original line number Diff line number Diff line
@@ -709,11 +709,6 @@ final class WindowState implements WindowManagerPolicy.WindowState {
        return mAppToken != null ? mAppToken.appToken : null;
    }

    @Override
    public int getTaskId() {
        return mAppToken != null ? mAppToken.groupId : UNKNOWN_TASK_ID;
    }

    boolean setInsetsChanged() {
        mOverscanInsetsChanged |= !mLastOverscanInsets.equals(mOverscanInsets);
        mContentInsetsChanged |= !mLastContentInsets.equals(mContentInsets);