Check whether a session is still managed before removing

When the controller of the `MediaNotificationManager` is disconnected,
the session is removed from the service without checking whether the
session hasn't already been removed. This caused flakiness in `MediaSessionServiceTest.addSession()`.

Because there is a public API `MediaSessionService.removeSession()`,
the controller can't make an assumption whether the session is still
contained in the service when being disconnected.

#minor-release

PiperOrigin-RevId: 572568350
This commit is contained in:
bachinger 2023-10-11 07:25:07 -07:00 committed by Copybara-Service
parent cef85be40f
commit 7fdc5b22ba

View File

@ -392,7 +392,9 @@ import java.util.concurrent.TimeoutException;
@Override
public void onDisconnected(MediaController controller) {
if (mediaSessionService.isSessionAdded(session)) {
mediaSessionService.removeSession(session);
}
// We may need to hide the notification.
mediaSessionService.onUpdateNotificationInternal(
session, /* startInForegroundWhenPaused= */ false);