DO NOT MERGE - Exclude TYPE_PRIVATE_PRESENTATION app visiblity am: c97296e9d9

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

Change-Id: I51090ef67905c994de084ecc9291e95b1f2cff85
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Linus Tufvesson
2022-08-10 08:48:08 +00:00
committed by Automerger Merge Worker

View File

@@ -25,6 +25,7 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SUSTAINED_PER
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
@@ -317,13 +318,17 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
}
/**
* Returns true if the callingUid has any non-toast window currently visible to the user.
* Also ignores TYPE_APPLICATION_STARTING, since those windows don't belong to apps.
* 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},
* 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) {
return forAllWindows(w ->
w.getOwningUid() == callingUid && w.mAttrs.type != TYPE_TOAST
&& w.mAttrs.type != TYPE_APPLICATION_STARTING && w.isVisibleNow(),
&& w.mAttrs.type != TYPE_APPLICATION_STARTING
&& w.mAttrs.type != TYPE_PRIVATE_PRESENTATION && w.isVisibleNow(),
true /* traverseTopToBottom */);
}