Skip to content

Commit aec3167

Browse files
committed
Move legacy session calls to a new thread
Issue: #2577 Test: add Thread.sleep(5000) to setMetadata(), app stays responsive
1 parent 8faee05 commit aec3167

File tree

3 files changed

+167
-110
lines changed

3 files changed

+167
-110
lines changed

libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ public MediaSessionImpl(
231231
new MediaSessionLegacyStub(
232232
/* session= */ thisRef,
233233
sessionUri,
234-
applicationHandler,
235234
tokenExtras,
236235
playIfSuppressed,
237236
customLayout,
@@ -240,7 +239,7 @@ public MediaSessionImpl(
240239
connectionResult.availablePlayerCommands,
241240
sessionExtras);
242241

243-
Token platformToken = sessionLegacyStub.getSessionCompat().getSessionToken().getToken();
242+
Token platformToken = sessionLegacyStub.getSessionToken().getToken();
244243
sessionToken =
245244
new SessionToken(
246245
Process.myUid(),
@@ -980,7 +979,7 @@ public void connectFromService(IMediaController caller, ControllerInfo controlle
980979

981980
@SuppressWarnings("UnnecessarilyFullyQualified") // Avoiding confusion by just using "Token"
982981
public android.media.session.MediaSession.Token getPlatformToken() {
983-
return sessionLegacyStub.getSessionCompat().getSessionToken().getToken();
982+
return sessionLegacyStub.getSessionToken().getToken();
984983
}
985984

986985
public void setLegacyControllerConnectionTimeoutMs(long timeoutMs) {
@@ -1049,8 +1048,7 @@ protected IBinder getLegacyBrowserServiceBinder() {
10491048
MediaSessionServiceLegacyStub legacyStub;
10501049
synchronized (lock) {
10511050
if (browserServiceLegacyStub == null) {
1052-
browserServiceLegacyStub =
1053-
createLegacyBrowserService(sessionLegacyStub.getSessionCompat().getSessionToken());
1051+
browserServiceLegacyStub = createLegacyBrowserService(sessionLegacyStub.getSessionToken());
10541052
}
10551053
legacyStub = browserServiceLegacyStub;
10561054
}
@@ -1460,7 +1458,7 @@ private void handleAvailablePlayerCommandsChanged(Player.Commands availableComma
14601458
sessionLegacyStub.onSkipToNext();
14611459
return true;
14621460
} else if (callerInfo.getControllerVersion() != ControllerInfo.LEGACY_CONTROLLER_VERSION) {
1463-
sessionLegacyStub.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent);
1461+
sessionLegacyStub.getControllerCompat().dispatchMediaButtonEvent(keyEvent);
14641462
return true;
14651463
}
14661464
// This is an unhandled framework event. Return false to let the framework resolve by calling

0 commit comments

Comments
 (0)