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
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 cc46a4b..bf07773 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 @@
             return WindowAreaComponent.STATUS_UNAVAILABLE;
         }
 
-        if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE
-                || isRearDisplayActive()) {
+        if (isRearDisplayActive()) {
             return WindowAreaComponent.STATUS_ACTIVE;
         }
 
@@ -537,7 +536,6 @@
                 if (request.equals(mRearDisplayStateRequest)) {
                     mRearDisplaySessionStatus = WindowAreaComponent.SESSION_STATE_ACTIVE;
                     mRearDisplaySessionCallback.accept(mRearDisplaySessionStatus);
-                    updateRearDisplayStatusListeners(getCurrentRearDisplayModeStatus());
                 }
             }
         }
@@ -550,7 +548,6 @@
                 }
                 mRearDisplaySessionStatus = WindowAreaComponent.SESSION_STATE_INACTIVE;
                 mRearDisplaySessionCallback.accept(mRearDisplaySessionStatus);
-                updateRearDisplayStatusListeners(getCurrentRearDisplayModeStatus());
             }
         }
     }