Snap for 10609607 from f2dc4205bd753f6ac58c7798ad8a9df9f0e7da4f to mainline-cellbroadcast-release
Change-Id: I9fa67f9daa00c7c7cf5f57d23d2b4e35f765753b
diff --git a/apex/service/java/com/android/server/media/MediaCommunicationService.java b/apex/service/java/com/android/server/media/MediaCommunicationService.java
index b88e586..3ebb40b 100644
--- a/apex/service/java/com/android/server/media/MediaCommunicationService.java
+++ b/apex/service/java/com/android/server/media/MediaCommunicationService.java
@@ -272,20 +272,15 @@
}
}
- void onSessionDied(Session2Record session) {
+ private void removeSessionRecord(Session2Record session) {
if (DEBUG) {
- Log.d(TAG, "Destroying " + session);
- }
- if (session.isClosed()) {
- Log.w(TAG, "Destroying already destroyed session. Ignoring.");
- return;
+ Log.d(TAG, "Removing " + session);
}
FullUserRecord user = session.getFullUser();
if (user != null) {
user.removeSession(session);
}
- session.close();
}
void onSessionPlaybackStateChanged(Session2Record session, boolean promotePriority) {
@@ -681,10 +676,13 @@
}
synchronized (mSession2RecordLock) {
mIsConnected = false;
+ // As per onDisconnected documentation, we do not need to call close() after
+ // onDisconnected is called.
+ mIsClosed = true;
}
MediaCommunicationService service = mServiceRef.get();
if (service != null) {
- service.onSessionDied(Session2Record.this);
+ service.removeSessionRecord(Session2Record.this);
}
}