From e56c2bfb2474bec93d06f329616deb2f0ef57494 Mon Sep 17 00:00:00 2001 From: Jiaming Liu Date: Thu, 6 Apr 2023 23:51:48 +0000 Subject: [PATCH] Return STATUS_ACTIVE when the rear mode is already enabled Bug: 264962409 Test: atest ExtensionRearDisplayTest Change-Id: I3d5a2c71300981385bc9911ecda4d4444aa2eab2 --- .../extensions/area/WindowAreaComponentImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java index 575b0cea78f75..cc46a4bc4ea39 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java @@ -129,12 +129,9 @@ public class WindowAreaComponentImpl implements WindowAreaComponent, * {@link WindowAreaComponent#STATUS_AVAILABLE} or * {@link WindowAreaComponent#STATUS_UNAVAILABLE} if the feature is supported or not in that * state respectively. When the rear display feature is triggered, the status is updated to be - * {@link WindowAreaComponent#STATUS_UNAVAILABLE}. + * {@link WindowAreaComponent#STATUS_ACTIVE}. * TODO(b/240727590): Prefix with AREA_ * - * TODO(b/239833099): Add a STATUS_ACTIVE option to let apps know if a feature is currently - * enabled. - * * @param consumer {@link Consumer} interested in receiving updates to the status of * rear display mode. */ @@ -407,18 +404,21 @@ public class WindowAreaComponentImpl implements WindowAreaComponent, } } - @GuardedBy("mLock") private int getCurrentRearDisplayModeStatus() { if (mRearDisplayState == INVALID_DEVICE_STATE) { return WindowAreaComponent.STATUS_UNSUPPORTED; } - if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE - || !ArrayUtils.contains(mCurrentSupportedDeviceStates, mRearDisplayState) - || isRearDisplayActive()) { + if (!ArrayUtils.contains(mCurrentSupportedDeviceStates, mRearDisplayState)) { return WindowAreaComponent.STATUS_UNAVAILABLE; } + + if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE + || isRearDisplayActive()) { + return WindowAreaComponent.STATUS_ACTIVE; + } + return WindowAreaComponent.STATUS_AVAILABLE; }