Commit b9f05927 by olly Committed by Ian Baker

Remove interfaces that don't seem to serve a purpose

PiperOrigin-RevId: 413966081
parent f4989f5d
...@@ -48,9 +48,9 @@ import org.checkerframework.checker.nullness.qual.NonNull; ...@@ -48,9 +48,9 @@ import org.checkerframework.checker.nullness.qual.NonNull;
private final ArrayMap<ControllerInfo, ConnectedControllerRecord<T>> controllerRecords = private final ArrayMap<ControllerInfo, ConnectedControllerRecord<T>> controllerRecords =
new ArrayMap<>(); new ArrayMap<>();
private final MediaSession.MediaSessionImpl sessionImpl; private final MediaSessionImpl sessionImpl;
public ConnectedControllersManager(MediaSession.MediaSessionImpl session) { public ConnectedControllersManager(MediaSessionImpl session) {
// Initialize default values. // Initialize default values.
lock = new Object(); lock = new Object();
......
...@@ -464,7 +464,7 @@ public abstract class MediaLibraryService extends MediaSessionService { ...@@ -464,7 +464,7 @@ public abstract class MediaLibraryService extends MediaSessionService {
SessionCallback callback, SessionCallback callback,
MediaItemFiller mediaItemFiller, MediaItemFiller mediaItemFiller,
Bundle tokenExtras) { Bundle tokenExtras) {
return new MediaLibrarySessionImplBase( return new MediaLibrarySessionImpl(
this, context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras); this, context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras);
} }
...@@ -533,55 +533,6 @@ public abstract class MediaLibraryService extends MediaSessionService { ...@@ -533,55 +533,6 @@ public abstract class MediaLibraryService extends MediaSessionService {
.notifySearchResultChanged( .notifySearchResultChanged(
checkNotNull(browser), checkNotEmpty(query), itemCount, params); checkNotNull(browser), checkNotEmpty(query), itemCount, params);
} }
interface MediaLibrarySessionImpl extends MediaSessionImpl {
// LibrarySession methods
void notifyChildrenChanged(String parentId, int itemCount, @Nullable LibraryParams params);
void notifyChildrenChanged(
ControllerInfo browser, String parentId, int itemCount, @Nullable LibraryParams params);
void notifySearchResultChanged(
ControllerInfo browser, String query, int itemCount, @Nullable LibraryParams params);
// LibrarySession callback implementations called on the application thread
ListenableFuture<LibraryResult<MediaItem>> onGetLibraryRootOnHandler(
ControllerInfo browser, @Nullable LibraryParams params);
ListenableFuture<LibraryResult<MediaItem>> onGetItemOnHandler(
ControllerInfo browser, String mediaId);
ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetChildrenOnHandler(
ControllerInfo browser,
String parentId,
int page,
int pageSize,
@Nullable LibraryParams params);
ListenableFuture<LibraryResult<Void>> onSubscribeOnHandler(
ControllerInfo browser, String parentId, @Nullable LibraryParams params);
ListenableFuture<LibraryResult<Void>> onUnsubscribeOnHandler(
ControllerInfo browser, String parentId);
ListenableFuture<LibraryResult<Void>> onSearchOnHandler(
ControllerInfo browser, String query, @Nullable LibraryParams params);
ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetSearchResultOnHandler(
ControllerInfo browser,
String query,
int page,
int pageSize,
@Nullable LibraryParams params);
// Internally used methods - only changing return type
@Override
MediaLibrarySession getInstance();
@Override
MediaLibrarySessionCallback getCallback();
}
} }
/** /**
...@@ -735,7 +686,7 @@ public abstract class MediaLibraryService extends MediaSessionService { ...@@ -735,7 +686,7 @@ public abstract class MediaLibraryService extends MediaSessionService {
@Override @Override
/* package */ MediaSessionServiceImpl createImpl() { /* package */ MediaSessionServiceImpl createImpl() {
return new MediaLibraryServiceImplBase(); return new MediaLibraryServiceImpl();
} }
@Override @Override
......
...@@ -20,7 +20,7 @@ import android.os.IBinder; ...@@ -20,7 +20,7 @@ import android.os.IBinder;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
/** Implementation of {@link MediaLibraryService}. */ /** Implementation of {@link MediaLibraryService}. */
/* package */ class MediaLibraryServiceImplBase extends MediaSessionServiceImplBase { /* package */ class MediaLibraryServiceImpl extends MediaSessionServiceImpl {
@Override @Override
@Nullable @Nullable
......
...@@ -39,7 +39,6 @@ import androidx.media3.common.util.ConditionVariable; ...@@ -39,7 +39,6 @@ import androidx.media3.common.util.ConditionVariable;
import androidx.media3.common.util.Log; import androidx.media3.common.util.Log;
import androidx.media3.common.util.Util; import androidx.media3.common.util.Util;
import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.MediaLibraryService.LibraryParams;
import androidx.media3.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionImpl;
import androidx.media3.session.MediaSession.ControllerCb; import androidx.media3.session.MediaSession.ControllerCb;
import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.session.MediaSession.ControllerInfo;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
......
...@@ -45,13 +45,12 @@ import java.util.concurrent.CancellationException; ...@@ -45,13 +45,12 @@ import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future; import java.util.concurrent.Future;
/* package */ class MediaLibrarySessionImplBase extends MediaSessionImplBase /* package */ class MediaLibrarySessionImpl extends MediaSessionImpl {
implements MediaLibrarySession.MediaLibrarySessionImpl {
@GuardedBy("lock") @GuardedBy("lock")
private final ArrayMap<ControllerCb, Set<String>> subscriptions = new ArrayMap<>(); private final ArrayMap<ControllerCb, Set<String>> subscriptions = new ArrayMap<>();
public MediaLibrarySessionImplBase( public MediaLibrarySessionImpl(
MediaSession instance, MediaSession instance,
Context context, Context context,
String id, String id,
...@@ -64,30 +63,6 @@ import java.util.concurrent.Future; ...@@ -64,30 +63,6 @@ import java.util.concurrent.Future;
} }
@Override @Override
public MediaSessionServiceLegacyStub createLegacyBrowserService(
MediaSessionCompat.Token compatToken) {
MediaLibraryServiceLegacyStub stub = new MediaLibraryServiceLegacyStub(this);
stub.initialize(compatToken);
return stub;
}
@Override
public MediaLibrarySession getInstance() {
return (MediaLibrarySession) super.getInstance();
}
@Override
public MediaLibrarySession.MediaLibrarySessionCallback getCallback() {
return (MediaLibrarySession.MediaLibrarySessionCallback) super.getCallback();
}
@Override
@Nullable
protected MediaLibraryServiceLegacyStub getLegacyBrowserService() {
return (MediaLibraryServiceLegacyStub) super.getLegacyBrowserService();
}
@Override
public List<ControllerInfo> getConnectedControllers() { public List<ControllerInfo> getConnectedControllers() {
List<ControllerInfo> list = super.getConnectedControllers(); List<ControllerInfo> list = super.getConnectedControllers();
@Nullable MediaLibraryServiceLegacyStub legacyStub = getLegacyBrowserService(); @Nullable MediaLibraryServiceLegacyStub legacyStub = getLegacyBrowserService();
...@@ -107,66 +82,34 @@ import java.util.concurrent.Future; ...@@ -107,66 +82,34 @@ import java.util.concurrent.Future;
&& legacyStub.getConnectedControllersManager().isConnected(controller); && legacyStub.getConnectedControllersManager().isConnected(controller);
} }
@Override
public void notifyChildrenChanged( public void notifyChildrenChanged(
String parentId, int itemCount, @Nullable LibraryParams params) { String parentId, int itemCount, @Nullable LibraryParams params) {
dispatchRemoteControllerTaskWithoutReturn( dispatchRemoteControllerTaskWithoutReturn(
new RemoteControllerTask() { (callback, seq) -> {
@Override
public void run(ControllerCb callback, int seq) throws RemoteException {
if (isSubscribed(callback, parentId)) { if (isSubscribed(callback, parentId)) {
callback.onChildrenChanged(seq, parentId, itemCount, params); callback.onChildrenChanged(seq, parentId, itemCount, params);
} }
}
}); });
} }
@Override
public void notifyChildrenChanged( public void notifyChildrenChanged(
ControllerInfo browser, String parentId, int itemCount, @Nullable LibraryParams params) { ControllerInfo browser, String parentId, int itemCount, @Nullable LibraryParams params) {
dispatchRemoteControllerTaskWithoutReturn( dispatchRemoteControllerTaskWithoutReturn(
browser, browser,
new RemoteControllerTask() { (callback, seq) -> {
@Override
public void run(ControllerCb callback, int seq) throws RemoteException {
if (!isSubscribed(callback, parentId)) { if (!isSubscribed(callback, parentId)) {
return; return;
} }
callback.onChildrenChanged(seq, parentId, itemCount, params); callback.onChildrenChanged(seq, parentId, itemCount, params);
}
}); });
} }
@Override
public void notifySearchResultChanged( public void notifySearchResultChanged(
ControllerInfo browser, String query, int itemCount, @Nullable LibraryParams params) { ControllerInfo browser, String query, int itemCount, @Nullable LibraryParams params) {
dispatchRemoteControllerTaskWithoutReturn( dispatchRemoteControllerTaskWithoutReturn(
browser, browser, (callback, seq) -> callback.onSearchResultChanged(seq, query, itemCount, params));
new RemoteControllerTask() {
@Override
public void run(ControllerCb callback, int seq) throws RemoteException {
callback.onSearchResultChanged(seq, query, itemCount, params);
}
});
}
private static void verifyResultItems(
LibraryResult<ImmutableList<MediaItem>> result, int pageSize) {
if (result.resultCode == RESULT_SUCCESS) {
List<MediaItem> items = checkNotNull(result.value);
if (items.size() > pageSize) {
throw new AssertionError(
"The number of items must be less than or equal to the pageSize"
+ ", size="
+ items.size()
+ ", pageSize="
+ pageSize);
}
}
} }
/** Called by {@link MediaSessionStub#getLibraryRoot(IMediaController, int, Bundle)}. */
@Override
public ListenableFuture<LibraryResult<MediaItem>> onGetLibraryRootOnHandler( public ListenableFuture<LibraryResult<MediaItem>> onGetLibraryRootOnHandler(
ControllerInfo browser, @Nullable LibraryParams params) { ControllerInfo browser, @Nullable LibraryParams params) {
// onGetLibraryRoot is defined to return a non-null result but it's implemented by applications, // onGetLibraryRoot is defined to return a non-null result but it's implemented by applications,
...@@ -176,12 +119,6 @@ import java.util.concurrent.Future; ...@@ -176,12 +119,6 @@ import java.util.concurrent.Future;
"onGetLibraryRoot must return non-null future"); "onGetLibraryRoot must return non-null future");
} }
/**
* Called by {@link MediaSessionStub#getItem(IMediaController, int, String)}.
*
* @return
*/
@Override
public ListenableFuture<LibraryResult<MediaItem>> onGetItemOnHandler( public ListenableFuture<LibraryResult<MediaItem>> onGetItemOnHandler(
ControllerInfo browser, String mediaId) { ControllerInfo browser, String mediaId) {
// onGetItem is defined to return a non-null result but it's implemented by applications, // onGetItem is defined to return a non-null result but it's implemented by applications,
...@@ -191,7 +128,6 @@ import java.util.concurrent.Future; ...@@ -191,7 +128,6 @@ import java.util.concurrent.Future;
"onGetItem must return non-null future"); "onGetItem must return non-null future");
} }
@Override
public ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetChildrenOnHandler( public ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetChildrenOnHandler(
ControllerInfo browser, ControllerInfo browser,
String parentId, String parentId,
...@@ -215,7 +151,6 @@ import java.util.concurrent.Future; ...@@ -215,7 +151,6 @@ import java.util.concurrent.Future;
return future; return future;
} }
@Override
public ListenableFuture<LibraryResult<Void>> onSubscribeOnHandler( public ListenableFuture<LibraryResult<Void>> onSubscribeOnHandler(
ControllerInfo browser, String parentId, @Nullable LibraryParams params) { ControllerInfo browser, String parentId, @Nullable LibraryParams params) {
ControllerCb controller = checkStateNotNull(browser.getControllerCb()); ControllerCb controller = checkStateNotNull(browser.getControllerCb());
...@@ -253,7 +188,6 @@ import java.util.concurrent.Future; ...@@ -253,7 +188,6 @@ import java.util.concurrent.Future;
return future; return future;
} }
@Override
public ListenableFuture<LibraryResult<Void>> onUnsubscribeOnHandler( public ListenableFuture<LibraryResult<Void>> onUnsubscribeOnHandler(
ControllerInfo browser, String parentId) { ControllerInfo browser, String parentId) {
// onUnsubscribe is defined to return a non-null result but it's implemented by applications, // onUnsubscribe is defined to return a non-null result but it's implemented by applications,
...@@ -274,7 +208,6 @@ import java.util.concurrent.Future; ...@@ -274,7 +208,6 @@ import java.util.concurrent.Future;
return future; return future;
} }
@Override
public ListenableFuture<LibraryResult<Void>> onSearchOnHandler( public ListenableFuture<LibraryResult<Void>> onSearchOnHandler(
ControllerInfo browser, String query, @Nullable LibraryParams params) { ControllerInfo browser, String query, @Nullable LibraryParams params) {
// onSearch is defined to return a non-null result but it's implemented by applications, // onSearch is defined to return a non-null result but it's implemented by applications,
...@@ -284,7 +217,6 @@ import java.util.concurrent.Future; ...@@ -284,7 +217,6 @@ import java.util.concurrent.Future;
"onSearch must return non-null future"); "onSearch must return non-null future");
} }
@Override
public ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetSearchResultOnHandler( public ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> onGetSearchResultOnHandler(
ControllerInfo browser, ControllerInfo browser,
String query, String query,
...@@ -310,6 +242,30 @@ import java.util.concurrent.Future; ...@@ -310,6 +242,30 @@ import java.util.concurrent.Future;
} }
@Override @Override
protected MediaLibrarySession getInstance() {
return (MediaLibrarySession) super.getInstance();
}
@Override
protected MediaLibrarySession.MediaLibrarySessionCallback getCallback() {
return (MediaLibrarySession.MediaLibrarySessionCallback) super.getCallback();
}
@Override
@Nullable
protected MediaLibraryServiceLegacyStub getLegacyBrowserService() {
return (MediaLibraryServiceLegacyStub) super.getLegacyBrowserService();
}
@Override
protected MediaSessionServiceLegacyStub createLegacyBrowserService(
MediaSessionCompat.Token compatToken) {
MediaLibraryServiceLegacyStub stub = new MediaLibraryServiceLegacyStub(this);
stub.initialize(compatToken);
return stub;
}
@Override
protected void dispatchRemoteControllerTaskWithoutReturn(RemoteControllerTask task) { protected void dispatchRemoteControllerTaskWithoutReturn(RemoteControllerTask task) {
super.dispatchRemoteControllerTaskWithoutReturn(task); super.dispatchRemoteControllerTaskWithoutReturn(task);
@Nullable MediaLibraryServiceLegacyStub legacyStub = getLegacyBrowserService(); @Nullable MediaLibraryServiceLegacyStub legacyStub = getLegacyBrowserService();
...@@ -341,4 +297,19 @@ import java.util.concurrent.Future; ...@@ -341,4 +297,19 @@ import java.util.concurrent.Future;
return null; return null;
} }
} }
private static void verifyResultItems(
LibraryResult<ImmutableList<MediaItem>> result, int pageSize) {
if (result.resultCode == RESULT_SUCCESS) {
List<MediaItem> items = checkNotNull(result.value);
if (items.size() > pageSize) {
throw new AssertionError(
"The number of items must be less than or equal to the pageSize"
+ ", size="
+ items.size()
+ ", pageSize="
+ pageSize);
}
}
}
} }
...@@ -26,7 +26,6 @@ import android.content.Context; ...@@ -26,7 +26,6 @@ import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.RemoteException; import android.os.RemoteException;
...@@ -496,7 +495,7 @@ public class MediaSession { ...@@ -496,7 +495,7 @@ public class MediaSession {
SessionCallback callback, SessionCallback callback,
MediaItemFiller mediaItemFiller, MediaItemFiller mediaItemFiller,
Bundle tokenExtras) { Bundle tokenExtras) {
return new MediaSessionImplBase( return new MediaSessionImpl(
this, context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras); this, context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras);
} }
...@@ -1210,73 +1209,6 @@ public class MediaSession { ...@@ -1210,73 +1209,6 @@ public class MediaSession {
default void onRenderedFirstFrame(int seq) throws RemoteException {} default void onRenderedFirstFrame(int seq) throws RemoteException {}
} }
/* package */ interface MediaSessionImpl {
void setPlayer(Player player);
PlayerWrapper getPlayerWrapper();
String getId();
Uri getUri();
SessionToken getToken();
List<ControllerInfo> getConnectedControllers();
boolean isConnected(ControllerInfo controller);
void release();
ListenableFuture<SessionResult> setCustomLayout(
ControllerInfo controller, List<CommandButton> layout);
void setAvailableCommands(
ControllerInfo controller, SessionCommands sessionCommands, Player.Commands playerCommands);
void broadcastCustomCommand(SessionCommand command, Bundle args);
ListenableFuture<SessionResult> sendCustomCommand(
ControllerInfo controller, SessionCommand command, Bundle args);
// Internally used methods
MediaSession getInstance();
MediaSessionCompat getSessionCompat();
void setLegacyControllerConnectionTimeoutMs(long timeoutMs);
Context getContext();
Handler getApplicationHandler();
SessionCallback getCallback();
MediaItemFiller getMediaItemFiller();
boolean isReleased();
@Nullable
PendingIntent getSessionActivity();
IBinder getLegacyBrowserServiceBinder();
void setSessionPositionUpdateDelayMsOnHandler(long updateDelayMs);
void connectFromService(
IMediaController caller,
int controllerVersion,
String packageName,
int pid,
int uid,
Bundle connectionHints);
void setForegroundServiceEventCallback(
ForegroundServiceEventCallback foregroundServiceEventCallback);
void clearForegroundServiceEventCallback();
}
/** /**
* A base class for {@link MediaSession.Builder} and {@link * A base class for {@link MediaSession.Builder} and {@link
* MediaLibraryService.MediaLibrarySession.Builder}. Any changes to this class should be also * MediaLibraryService.MediaLibrarySession.Builder}. Any changes to this class should be also
......
...@@ -100,7 +100,7 @@ import org.checkerframework.checker.initialization.qual.Initialized; ...@@ -100,7 +100,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
private final ConnectedControllersManager<RemoteUserInfo> connectedControllersManager; private final ConnectedControllersManager<RemoteUserInfo> connectedControllersManager;
private final MediaSession.MediaSessionImpl sessionImpl; private final MediaSessionImpl sessionImpl;
private final MediaSessionManager sessionManager; private final MediaSessionManager sessionManager;
private final ControllerCb controllerLegacyCbForBroadcast; private final ControllerCb controllerLegacyCbForBroadcast;
private final ConnectionTimeoutHandler connectionTimeoutHandler; private final ConnectionTimeoutHandler connectionTimeoutHandler;
...@@ -111,7 +111,7 @@ import org.checkerframework.checker.initialization.qual.Initialized; ...@@ -111,7 +111,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
private volatile long connectionTimeoutMs; private volatile long connectionTimeoutMs;
public MediaSessionLegacyStub( public MediaSessionLegacyStub(
MediaSession.MediaSessionImpl session, MediaSessionImpl session,
ComponentName mbrComponent, ComponentName mbrComponent,
PendingIntent mediaButtonIntent, PendingIntent mediaButtonIntent,
Handler handler) { Handler handler) {
......
...@@ -122,7 +122,7 @@ public abstract class MediaSessionService extends Service { ...@@ -122,7 +122,7 @@ public abstract class MediaSessionService extends Service {
} }
/* package */ MediaSessionServiceImpl createImpl() { /* package */ MediaSessionServiceImpl createImpl() {
return new MediaSessionServiceImplBase(); return new androidx.media3.session.MediaSessionServiceImpl();
} }
/** /**
...@@ -298,25 +298,4 @@ public abstract class MediaSessionService extends Service { ...@@ -298,25 +298,4 @@ public abstract class MediaSessionService extends Service {
this.notification = checkNotNull(notification); this.notification = checkNotNull(notification);
} }
} }
interface MediaSessionServiceImpl {
void onCreate(MediaSessionService service);
int onStartCommand(@Nullable Intent intent, int flags, int startId);
@Nullable
IBinder onBind(@Nullable Intent intent);
void onDestroy();
void addSession(MediaSession session);
void removeSession(MediaSession session);
@Nullable
MediaNotification onUpdateNotification(MediaSession session);
List<MediaSession> getSessions();
}
} }
...@@ -38,16 +38,15 @@ import androidx.media.MediaSessionManager.RemoteUserInfo; ...@@ -38,16 +38,15 @@ import androidx.media.MediaSessionManager.RemoteUserInfo;
import androidx.media3.common.util.Log; import androidx.media3.common.util.Log;
import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.session.MediaSession.ControllerInfo;
import androidx.media3.session.MediaSessionService.MediaNotification; import androidx.media3.session.MediaSessionService.MediaNotification;
import androidx.media3.session.MediaSessionService.MediaSessionServiceImpl;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** Implementation of {@link MediaSessionService}. */ /** Implementation of {@link MediaSessionService}. */
/* package */ class MediaSessionServiceImplBase implements MediaSessionServiceImpl { /* package */ class MediaSessionServiceImpl {
private static final String TAG = "MSSImplBase"; private static final String TAG = "MSSImpl";
private final Object lock; private final Object lock;
...@@ -66,12 +65,11 @@ import java.util.Map; ...@@ -66,12 +65,11 @@ import java.util.Map;
@Nullable @Nullable
private MediaNotificationHandler notificationHandler; private MediaNotificationHandler notificationHandler;
public MediaSessionServiceImplBase() { public MediaSessionServiceImpl() {
lock = new Object(); lock = new Object();
sessions = new ArrayMap<>(); sessions = new ArrayMap<>();
} }
@Override
public void onCreate(MediaSessionService service) { public void onCreate(MediaSessionService service) {
synchronized (lock) { synchronized (lock) {
instance = service; instance = service;
...@@ -80,7 +78,6 @@ import java.util.Map; ...@@ -80,7 +78,6 @@ import java.util.Map;
} }
} }
@Override
@Nullable @Nullable
public IBinder onBind(@Nullable Intent intent) { public IBinder onBind(@Nullable Intent intent) {
if (intent == null) { if (intent == null) {
...@@ -116,7 +113,6 @@ import java.util.Map; ...@@ -116,7 +113,6 @@ import java.util.Map;
} }
} }
@Override
public void onDestroy() { public void onDestroy() {
synchronized (lock) { synchronized (lock) {
instance = null; instance = null;
...@@ -127,7 +123,6 @@ import java.util.Map; ...@@ -127,7 +123,6 @@ import java.util.Map;
} }
} }
@Override
public void addSession(MediaSession session) { public void addSession(MediaSession session) {
@Nullable MediaSession old; @Nullable MediaSession old;
synchronized (lock) { synchronized (lock) {
...@@ -157,7 +152,6 @@ import java.util.Map; ...@@ -157,7 +152,6 @@ import java.util.Map;
} }
} }
@Override
public void removeSession(MediaSession session) { public void removeSession(MediaSession session) {
synchronized (lock) { synchronized (lock) {
sessions.remove(session.getId()); sessions.remove(session.getId());
...@@ -166,7 +160,6 @@ import java.util.Map; ...@@ -166,7 +160,6 @@ import java.util.Map;
session.getImpl().getApplicationHandler(), session::clearForegroundServiceEventCallback); session.getImpl().getApplicationHandler(), session::clearForegroundServiceEventCallback);
} }
@Override
public int onStartCommand(@Nullable Intent intent, int flags, int startId) { public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
if (intent == null) { if (intent == null) {
return START_STICKY; return START_STICKY;
...@@ -190,7 +183,6 @@ import java.util.Map; ...@@ -190,7 +183,6 @@ import java.util.Map;
return START_STICKY; return START_STICKY;
} }
@Override
public MediaNotification onUpdateNotification(MediaSession session) { public MediaNotification onUpdateNotification(MediaSession session) {
MediaNotificationHandler handler; MediaNotificationHandler handler;
synchronized (lock) { synchronized (lock) {
...@@ -199,7 +191,6 @@ import java.util.Map; ...@@ -199,7 +191,6 @@ import java.util.Map;
return handler.onUpdateNotification(session); return handler.onUpdateNotification(session);
} }
@Override
public List<MediaSession> getSessions() { public List<MediaSession> getSessions() {
synchronized (lock) { synchronized (lock) {
return new ArrayList<>(sessions.values()); return new ArrayList<>(sessions.values());
...@@ -221,13 +212,13 @@ import java.util.Map; ...@@ -221,13 +212,13 @@ import java.util.Map;
private static final class MediaSessionServiceStub extends IMediaSessionService.Stub { private static final class MediaSessionServiceStub extends IMediaSessionService.Stub {
private final WeakReference<MediaSessionServiceImplBase> serviceImpl; private final WeakReference<MediaSessionServiceImpl> serviceImpl;
private final Handler handler; private final Handler handler;
private final MediaSessionManager mediaSessionManager; private final MediaSessionManager mediaSessionManager;
public MediaSessionServiceStub(MediaSessionServiceImplBase serviceImpl) { public MediaSessionServiceStub(MediaSessionServiceImpl serviceImpl) {
this.serviceImpl = new WeakReference<>(serviceImpl); this.serviceImpl = new WeakReference<>(serviceImpl);
Context context = checkStateNotNull(serviceImpl.getInstance()); Context context = checkStateNotNull(serviceImpl.getInstance());
handler = new Handler(context.getMainLooper()); handler = new Handler(context.getMainLooper());
...@@ -262,7 +253,7 @@ import java.util.Map; ...@@ -262,7 +253,7 @@ import java.util.Map;
boolean shouldNotifyDisconnected = true; boolean shouldNotifyDisconnected = true;
try { try {
@Nullable @Nullable
MediaSessionServiceImplBase serviceImpl = MediaSessionServiceImpl serviceImpl =
MediaSessionServiceStub.this.serviceImpl.get(); MediaSessionServiceStub.this.serviceImpl.get();
if (serviceImpl == null) { if (serviceImpl == null) {
return; return;
......
...@@ -40,11 +40,11 @@ import java.util.concurrent.atomic.AtomicReference; ...@@ -40,11 +40,11 @@ import java.util.concurrent.atomic.AtomicReference;
private static final String TAG = "MSSLegacyStub"; private static final String TAG = "MSSLegacyStub";
private final MediaSessionManager manager; private final MediaSessionManager manager;
private final MediaSession.MediaSessionImpl sessionImpl; private final MediaSessionImpl sessionImpl;
private final ConnectedControllersManager<RemoteUserInfo> connectedControllersManager; private final ConnectedControllersManager<RemoteUserInfo> connectedControllersManager;
/** Creates a new instance. Caller must call {@link #initialize} to the instance. */ /** Creates a new instance. Caller must call {@link #initialize} to the instance. */
public MediaSessionServiceLegacyStub(MediaSession.MediaSessionImpl sessionImpl) { public MediaSessionServiceLegacyStub(MediaSessionImpl sessionImpl) {
super(); super();
manager = MediaSessionManager.getSessionManager(sessionImpl.getContext()); manager = MediaSessionManager.getSessionManager(sessionImpl.getContext());
this.sessionImpl = sessionImpl; this.sessionImpl = sessionImpl;
......
...@@ -74,10 +74,8 @@ import androidx.media3.common.util.Log; ...@@ -74,10 +74,8 @@ import androidx.media3.common.util.Log;
import androidx.media3.common.util.Util; import androidx.media3.common.util.Util;
import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.MediaLibraryService.LibraryParams;
import androidx.media3.session.MediaLibraryService.MediaLibrarySession; import androidx.media3.session.MediaLibraryService.MediaLibrarySession;
import androidx.media3.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionImpl;
import androidx.media3.session.MediaSession.ControllerCb; import androidx.media3.session.MediaSession.ControllerCb;
import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.session.MediaSession.ControllerInfo;
import androidx.media3.session.MediaSession.MediaSessionImpl;
import androidx.media3.session.SessionCommand.CommandCode; import androidx.media3.session.SessionCommand.CommandCode;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
...@@ -99,11 +97,11 @@ import java.util.concurrent.ExecutionException; ...@@ -99,11 +97,11 @@ import java.util.concurrent.ExecutionException;
private static final String TAG = "MediaSessionStub"; private static final String TAG = "MediaSessionStub";
private final Object lock; private final Object lock;
private final WeakReference<MediaSession.MediaSessionImpl> sessionImpl; private final WeakReference<MediaSessionImpl> sessionImpl;
private final MediaSessionManager sessionManager; private final MediaSessionManager sessionManager;
private final ConnectedControllersManager<IBinder> connectedControllersManager; private final ConnectedControllersManager<IBinder> connectedControllersManager;
public MediaSessionStub(MediaSession.MediaSessionImpl sessionImpl) { public MediaSessionStub(MediaSessionImpl sessionImpl) {
// Initialize default values. // Initialize default values.
lock = new Object(); lock = new Object();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment