Make onVirtualDisplayRemoved callback idempotent.

... by not throwing an exception if it's invoked multiple times /
for already released display id.

Bug: 292284597
Test: atest VirtualDisplayTest
Change-Id: I151eafc1f4c2ea3fb5c8ed966965fe7efbd9cc56
This commit is contained in:
Jan Sebechlebsky
2023-07-25 15:03:56 +02:00
parent 3dbac6587e
commit 502f572905
2 changed files with 3 additions and 9 deletions

View File

@@ -927,8 +927,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
} }
if (virtualDisplayWrapper == null) { if (virtualDisplayWrapper == null) {
throw new IllegalStateException( Slog.w(TAG, "Virtual device " + mDeviceId + " doesn't have a virtual display with ID "
"Virtual device doesn't have a virtual display with ID " + displayId); + displayId);
return;
} }
final long ident = Binder.clearCallingIdentity(); final long ident = Binder.clearCallingIdentity();

View File

@@ -789,13 +789,6 @@ public class VirtualDeviceManagerServiceTest {
nullable(String.class), eq(DISPLAY_ID_1), eq(null)); nullable(String.class), eq(DISPLAY_ID_1), eq(null));
} }
@Test
public void onVirtualDisplayRemovedLocked_unknownDisplayId_throwsException() {
final int unknownDisplayId = 999;
assertThrows(IllegalStateException.class,
() -> mDeviceImpl.onVirtualDisplayRemoved(unknownDisplayId));
}
@Test @Test
public void onVirtualDisplayRemovedLocked_wakeLockIsReleased() throws RemoteException { public void onVirtualDisplayRemovedLocked_wakeLockIsReleased() throws RemoteException {
addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1); addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);