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
This commit is contained in:
Jiaming Liu
2023-04-13 17:48:55 +00:00
parent 8df6d94c69
commit 4932fee94e

View File

@@ -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());
}
}
}