summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/RootWindowContainer.java5
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java18
2 files changed, 14 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index c6d75fc6fe9f..d768d339cbc6 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -564,8 +564,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
/**
* Returns {@code true} if the callingUid has any non-toast window currently visible to the
* user. Also ignores {@link android.view.WindowManager.LayoutParams#TYPE_APPLICATION_STARTING},
- * since those windows don't belong to apps.
- * @see WindowState#isNonToastOrStarting()
+ * and{@link android.view.WindowManager.LayoutParams#TYPE_PRIVATE_PRESENTATION}, as they
+ * should not count towards the apps visibility
+ * @see WindowState#isNonToastOrStartingOrPrivatePresentation()
*/
boolean isAnyNonToastWindowVisibleForUid(int callingUid) {
final PooledPredicate p = PooledLambda.obtainPredicate(
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index ce9b2cecef35..6e1b17c4c51f 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -5825,20 +5825,24 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
/**
- * Returns {@code true} if this window is not {@link WindowManager.LayoutParams#TYPE_TOAST}
- * or {@link WindowManager.LayoutParams#TYPE_APPLICATION_STARTING},
- * since this window doesn't belong to apps.
+ * Returns {@code true} if this window is not {@link WindowManager.LayoutParams#TYPE_TOAST},
+ * {@link WindowManager.LayoutParams#TYPE_APPLICATION_STARTING} or
+ * {@link WindowManager.LayoutParams#TYPE_PRIVATE_PRESENTATION},
+ * since those windows should not count towards the apps visibility.
*/
- boolean isNonToastOrStarting() {
- return mAttrs.type != TYPE_TOAST && mAttrs.type != TYPE_APPLICATION_STARTING;
+ boolean isNonToastOrStartingOrPrivatePresentation() {
+ return mAttrs.type != TYPE_TOAST && mAttrs.type != TYPE_APPLICATION_STARTING
+ && mAttrs.type != TYPE_PRIVATE_PRESENTATION;
}
boolean isNonToastWindowVisibleForUid(int callingUid) {
- return getOwningUid() == callingUid && isNonToastOrStarting() && isVisibleNow();
+ return getOwningUid() == callingUid && isNonToastOrStartingOrPrivatePresentation()
+ && isVisibleNow();
}
boolean isNonToastWindowVisibleForPid(int pid) {
- return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow();
+ return mSession.mPid == pid && isNonToastOrStartingOrPrivatePresentation()
+ && isVisibleNow();
}
void setViewVisibility(int viewVisibility) {