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
Merged-In: I151eafc1f4c2ea3fb5c8ed966965fe7efbd9cc56
This commit is contained in:
Jan Sebechlebsky
2023-07-25 15:03:56 +02:00
committed by Ján Sebechlebský
parent 9ed6c4f9a4
commit 45a6bab552
2 changed files with 3 additions and 9 deletions

View File

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

View File

@@ -788,13 +788,6 @@ public class VirtualDeviceManagerServiceTest {
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
public void onVirtualDisplayRemovedLocked_wakeLockIsReleased() throws RemoteException {
addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);