Merge "Ignore virtual presentation windows" into udc-dev am: a8285b52a8

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

Change-Id: Ie77e2ec73b99dcc8e5052ff62b9c752c9fa7cdf6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Achim Thesmann
2023-06-23 19:05:14 +00:00
committed by Automerger Merge Worker

View File

@@ -3389,12 +3389,20 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
// apps won't always be considered as foreground state. // apps won't always be considered as foreground state.
// Exclude private presentations as they can only be shown on private virtual displays and // Exclude private presentations as they can only be shown on private virtual displays and
// shouldn't be the cause of an app be considered foreground. // shouldn't be the cause of an app be considered foreground.
if (mAttrs.type >= FIRST_SYSTEM_WINDOW && mAttrs.type != TYPE_TOAST // Exclude presentations on virtual displays as they are not actually visible.
&& mAttrs.type != TYPE_PRIVATE_PRESENTATION) { if (mAttrs.type >= FIRST_SYSTEM_WINDOW
&& mAttrs.type != TYPE_TOAST
&& mAttrs.type != TYPE_PRIVATE_PRESENTATION
&& !(mAttrs.type == TYPE_PRESENTATION && isOnVirtualDisplay())
) {
mWmService.mAtmService.mActiveUids.onNonAppSurfaceVisibilityChanged(mOwnerUid, shown); mWmService.mAtmService.mActiveUids.onNonAppSurfaceVisibilityChanged(mOwnerUid, shown);
} }
} }
private boolean isOnVirtualDisplay() {
return getDisplayContent().mDisplay.getType() == Display.TYPE_VIRTUAL;
}
private void logExclusionRestrictions(int side) { private void logExclusionRestrictions(int side) {
if (!logsGestureExclusionRestrictions(this) if (!logsGestureExclusionRestrictions(this)
|| SystemClock.uptimeMillis() < mLastExclusionLogUptimeMillis[side] || SystemClock.uptimeMillis() < mLastExclusionLogUptimeMillis[side]