DO NOT MERGE - Exclude TYPE_PRIVATE_PRESENTATION app visiblity am: 778191bdf2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19537950

Change-Id: I0ac1c7e30fb0851d751d4b1d1afeb72808fdae4f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Linus Tufvesson
2022-08-10 09:12:30 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 9 deletions

View File

@@ -569,8 +569,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
/** /**
* Returns {@code true} if the callingUid has any non-toast window currently visible to the * 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}, * user. Also ignores {@link android.view.WindowManager.LayoutParams#TYPE_APPLICATION_STARTING},
* since those windows don't belong to apps. * and{@link android.view.WindowManager.LayoutParams#TYPE_PRIVATE_PRESENTATION}, as they
* @see WindowState#isNonToastOrStarting() * should not count towards the apps visibility
* @see WindowState#isNonToastOrStartingOrPrivatePresentation()
*/ */
boolean isAnyNonToastWindowVisibleForUid(int callingUid) { boolean isAnyNonToastWindowVisibleForUid(int callingUid) {
final PooledPredicate p = PooledLambda.obtainPredicate( final PooledPredicate p = PooledLambda.obtainPredicate(

View File

@@ -5833,20 +5833,24 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
} }
/** /**
* Returns {@code true} if this window is not {@link WindowManager.LayoutParams#TYPE_TOAST} * Returns {@code true} if this window is not {@link WindowManager.LayoutParams#TYPE_TOAST},
* or {@link WindowManager.LayoutParams#TYPE_APPLICATION_STARTING}, * {@link WindowManager.LayoutParams#TYPE_APPLICATION_STARTING} or
* since this window doesn't belong to apps. * {@link WindowManager.LayoutParams#TYPE_PRIVATE_PRESENTATION},
* since those windows should not count towards the apps visibility.
*/ */
boolean isNonToastOrStarting() { boolean isNonToastOrStartingOrPrivatePresentation() {
return mAttrs.type != TYPE_TOAST && mAttrs.type != TYPE_APPLICATION_STARTING; return mAttrs.type != TYPE_TOAST && mAttrs.type != TYPE_APPLICATION_STARTING
&& mAttrs.type != TYPE_PRIVATE_PRESENTATION;
} }
boolean isNonToastWindowVisibleForUid(int callingUid) { boolean isNonToastWindowVisibleForUid(int callingUid) {
return getOwningUid() == callingUid && isNonToastOrStarting() && isVisibleNow(); return getOwningUid() == callingUid && isNonToastOrStartingOrPrivatePresentation()
&& isVisibleNow();
} }
boolean isNonToastWindowVisibleForPid(int pid) { boolean isNonToastWindowVisibleForPid(int pid) {
return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow(); return mSession.mPid == pid && isNonToastOrStartingOrPrivatePresentation()
&& isVisibleNow();
} }
void setViewVisibility(int viewVisibility) { void setViewVisibility(int viewVisibility) {