From 4932fee94ed762a446028e40258d59c786a1a890 Mon Sep 17 00:00:00 2001 From: Jiaming Liu Date: Thu, 13 Apr 2023 17:48:55 +0000 Subject: [PATCH] Determine rear display status only based on device states onRequestCanceled callback came before device state callback, which caused updateRearDisplayStatusListeners in line 553 to call back with STATUS_ACTIVE after the cancelation callback. onRequestActivated and onRequestCanceled don't need to update rear display status listeners, because there are always device state callbacks that will trigger updateRearDisplayStatusListeners. Bug: 264962409 Test: atest ExtensionRearDisplayTest Change-Id: Ibaf8ecfa3da8544a4a07ee803989fa136200c350 --- .../window/extensions/area/WindowAreaComponentImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 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 cc46a4bc4ea39..bf07773f90382 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java @@ -414,8 +414,7 @@ public class WindowAreaComponentImpl implements WindowAreaComponent, return WindowAreaComponent.STATUS_UNAVAILABLE; } - if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE - || isRearDisplayActive()) { + if (isRearDisplayActive()) { return WindowAreaComponent.STATUS_ACTIVE; } @@ -537,7 +536,6 @@ public class WindowAreaComponentImpl implements WindowAreaComponent, if (request.equals(mRearDisplayStateRequest)) { mRearDisplaySessionStatus = WindowAreaComponent.SESSION_STATE_ACTIVE; mRearDisplaySessionCallback.accept(mRearDisplaySessionStatus); - updateRearDisplayStatusListeners(getCurrentRearDisplayModeStatus()); } } } @@ -550,7 +548,6 @@ public class WindowAreaComponentImpl implements WindowAreaComponent, } mRearDisplaySessionStatus = WindowAreaComponent.SESSION_STATE_INACTIVE; mRearDisplaySessionCallback.accept(mRearDisplaySessionStatus); - updateRearDisplayStatusListeners(getCurrentRearDisplayModeStatus()); } } }