Report folding features to letterboxed apps.

Folding features were filtered out from letterboxed apps because we
assumed that letterboxed apps did not want to optimize. We have found
apps do want to support folding features but may also request fixed
orientation for their experience. We are removing the filter so that
letterboxed apps will get folding feature information.

Bug: 262900133
Test: Manual - open the samples and check if folding features report.
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3e428597423552cd806a9658c763ed3f7ffcbc2c)
Merged-In: I427f0bc23f00d245c5093c75f13c9e533209362e
Change-Id: I427f0bc23f00d245c5093c75f13c9e533209362e
This commit is contained in:
Diego Vela
2023-05-05 17:53:52 +00:00
committed by Cherrypicker Worker
parent 81ebe91609
commit 58855b37c9

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.