Snap for 10632790 from f2dc4205bd753f6ac58c7798ad8a9df9f0e7da4f to mainline-healthfitness-release Change-Id: I3ee7f925fae02d24580bbaa4abd1e9a376f50e8b
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); } }