Merge "Report folding features to letterboxed apps." into tm-qpr-dev

This commit is contained in:
Graciela Putri
2023-06-08 08:01:13 +00:00
committed by Android (Google) Code Review

View File

@@ -381,24 +381,15 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
final Rect taskBounds = taskConfig.windowConfiguration.getBounds(); final Rect taskBounds = taskConfig.windowConfiguration.getBounds();
final WindowManager windowManager = Objects.requireNonNull( final WindowManager windowManager = Objects.requireNonNull(
context.getSystemService(WindowManager.class)); context.getSystemService(WindowManager.class));
final Rect currentBounds = windowManager.getCurrentWindowMetrics().getBounds();
final Rect maxBounds = windowManager.getMaximumWindowMetrics().getBounds(); final Rect maxBounds = windowManager.getMaximumWindowMetrics().getBounds();
boolean isTaskExpanded = maxBounds.equals(taskBounds); boolean isTaskExpanded = maxBounds.equals(taskBounds);
boolean isActivityExpanded = maxBounds.equals(currentBounds);
/* /*
* We need to proxy being in full screen because when a user enters PiP and exits PiP * We need to proxy being in full screen because when a user enters PiP and exits PiP
* the task windowingMode will report multi-window/pinned until the transition is * the task windowingMode will report multi-window/pinned until the transition is
* finished in WM Shell. * finished in WM Shell.
* maxBounds == taskWindowBounds is a proxy check to verify the window is full screen * maxBounds == taskWindowBounds is a proxy check to verify the window is full screen
* For tasks that are letterboxed, we use currentBounds == maxBounds to filter these
* out.
*/ */
// TODO(b/262900133) remove currentBounds check when letterboxed apps report bounds. return isTaskExpanded;
// currently we don't want to report to letterboxed apps since they do not update the
// window bounds when the Activity is moved. An inaccurate fold will be reported so
// we skip.
return isTaskExpanded && (isActivityExpanded
|| mTaskFragmentOrganizer.isActivityEmbedded(activityToken));
} else { } else {
// TODO(b/242674941): use task windowing mode for window context that associates with // TODO(b/242674941): use task windowing mode for window context that associates with
// activity. // activity.