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

Commit d66dd99a authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Allow mainline modules to set private window flags

We need to prevent apps from trying to decorate the permission grant
requests. Hence the the permission controller app (which will become a
mainline module) will need to set the
PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS private window flag.

Test: Built
Bug: 110953302
Change-Id: I7dfed6aac8ec487ac0665ad33c2892cad416224a
parent 6c109c76
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -6588,6 +6588,10 @@ package android.util {

package android.view {

  public abstract class Window {
    method public void addPrivateFlags(int);
  }

  public abstract interface WindowManager implements android.view.ViewManager {
    method public abstract android.graphics.Region getCurrentImeTouchRegion();
  }
@@ -6595,6 +6599,7 @@ package android.view {
  public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable {
    method public final long getUserActivityTimeout();
    method public final void setUserActivityTimeout(long);
    field public static final int PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS = 524288; // 0x80000
  }

}
+13 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.LayoutRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StyleRes;
import android.annotation.SystemApi;
import android.annotation.UnsupportedAppUsage;
import android.app.WindowConfiguration;
import android.content.Context;
@@ -1079,8 +1080,18 @@ public abstract class Window {
        setFlags(flags, flags);
    }

    /** @hide */
    @UnsupportedAppUsage
    /**
     * Add private flag bits.
     *
     * <p>Refer to the individual flags for the permissions needed.
     *
     * <p>Note: Only for updateable system components (aka. mainline modules)
     *
     * @param flags The flag bits to add.
     *
     * @hide
     */
    @SystemApi
    public void addPrivateFlags(int flags) {
        setPrivateFlags(flags, flags);
    }
+1 −0
Original line number Diff line number Diff line
@@ -1668,6 +1668,7 @@ public interface WindowManager extends ViewManager {
         * this window is visible.
         * @hide
         */
        @SystemApi
        @RequiresPermission(permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
        public static final int PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS = 0x00080000;