From 5a6696991ff34606aab2a327eb782cae45076682 Mon Sep 17 00:00:00 2001 From: Jaewan Kim Date: Sat, 27 Jun 2020 04:37:46 +0900 Subject: Fix flaky media key event related CTS tests Media key events had been incorrectly dispatched to the MediaSession2, which is closed from the app side, but MediaSessionService didn't get the notification for it. It may happen if MediaController2 from the MediaSession2 was connecting and also MediaSession2 was closing. This fix ensures that closing session is always propagated to the controller in onConnect(). Test: Run following tests 10 times (previously flaky ~50%) $ atest CtsMediaTestCases:android.media.cts.MediaSessionTest Bug: 159865360 Change-Id: If16f8c665214614961f28f9406225af19fdad1a8 --- apex/media/framework/java/android/media/MediaSession2.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apex/media/framework/java/android/media/MediaSession2.java b/apex/media/framework/java/android/media/MediaSession2.java index 081e76ab0215..6560afedab0f 100644 --- a/apex/media/framework/java/android/media/MediaSession2.java +++ b/apex/media/framework/java/android/media/MediaSession2.java @@ -404,7 +404,7 @@ public class MediaSession2 implements AutoCloseable { mCallback.onPostConnect(MediaSession2.this, controllerInfo); connected = true; } finally { - if (!connected) { + if (!connected || isClosed()) { if (DEBUG) { Log.d(TAG, "Rejecting connection or notifying that session is closed" + ", controllerInfo=" + controllerInfo); -- cgit v1.2.3-59-g8ed1b