Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
b9f05927
authored
Dec 03, 2021
by
olly
Committed by
Ian Baker
Dec 07, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Remove interfaces that don't seem to serve a purpose
PiperOrigin-RevId: 413966081
parent
f4989f5d
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
136 additions
and
342 deletions
libraries/session/src/main/java/androidx/media3/session/ConnectedControllersManager.java
libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java
libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceImplBase.java → libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceImpl.java
libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java
libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImplBase.java → libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java
libraries/session/src/main/java/androidx/media3/session/MediaSession.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionImplBase.java → libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceImplBase.java → libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceImpl.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceLegacyStub.java
libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java
libraries/session/src/main/java/androidx/media3/session/ConnectedControllersManager.java
View file @
b9f05927
...
@@ -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
.
MediaSession
Impl
sessionImpl
;
private
final
MediaSessionImpl
sessionImpl
;
public
ConnectedControllersManager
(
MediaSession
.
MediaSession
Impl
session
)
{
public
ConnectedControllersManager
(
MediaSessionImpl
session
)
{
// Initialize default values.
// Initialize default values.
lock
=
new
Object
();
lock
=
new
Object
();
...
...
libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java
View file @
b9f05927
...
@@ -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
MediaLibrarySessionImpl
Base
(
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
MediaLibraryServiceImpl
Base
();
return
new
MediaLibraryServiceImpl
();
}
}
@Override
@Override
...
...
libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceImpl
Base
.java
→
libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceImpl.java
View file @
b9f05927
...
@@ -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
MediaLibraryServiceImpl
Base
extends
MediaSessionServiceImplBase
{
/* package */
class
MediaLibraryServiceImpl
extends
MediaSessionServiceImpl
{
@Override
@Override
@Nullable
@Nullable
...
...
libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java
View file @
b9f05927
...
@@ -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
;
...
...
libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl
Base
.java
→
libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java
View file @
b9f05927
...
@@ -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
MediaLibrarySessionImpl
Base
(
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
);
}
}
}
}
}
libraries/session/src/main/java/androidx/media3/session/MediaSession.java
View file @
b9f05927
...
@@ -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
MediaSessionImpl
Base
(
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
...
...
libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl
Base
.java
→
libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java
View file @
b9f05927
...
@@ -75,7 +75,7 @@ import java.util.ArrayList;
...
@@ -75,7 +75,7 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
org.checkerframework.checker.initialization.qual.Initialized
;
import
org.checkerframework.checker.initialization.qual.Initialized
;
/* package */
class
MediaSessionImpl
Base
implements
MediaSession
.
MediaSessionImpl
{
/* package */
class
MediaSessionImpl
{
// Create a static lock for synchronize methods below.
// Create a static lock for synchronize methods below.
// We'd better not use MediaSessionImplBase.class for synchronized(), which indirectly exposes
// We'd better not use MediaSessionImplBase.class for synchronized(), which indirectly exposes
...
@@ -138,7 +138,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -138,7 +138,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Nullable
private
MediaSession
.
ForegroundServiceEventCallback
foregroundServiceEventCallback
;
@Nullable
private
MediaSession
.
ForegroundServiceEventCallback
foregroundServiceEventCallback
;
public
MediaSessionImpl
Base
(
public
MediaSessionImpl
(
MediaSession
instance
,
MediaSession
instance
,
Context
context
,
Context
context
,
String
id
,
String
id
,
...
@@ -152,7 +152,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -152,7 +152,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@SuppressWarnings
(
"nullness:assignment"
)
@SuppressWarnings
(
"nullness:assignment"
)
@Initialized
@Initialized
MediaSessionImpl
Base
thisRef
=
this
;
MediaSessionImpl
thisRef
=
this
;
sessionStub
=
new
MediaSessionStub
(
thisRef
);
sessionStub
=
new
MediaSessionStub
(
thisRef
);
this
.
sessionActivity
=
sessionActivity
;
this
.
sessionActivity
=
sessionActivity
;
...
@@ -177,7 +177,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -177,7 +177,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
// See {@link PendingIntent} and {@link Intent#filterEquals} for details.
// See {@link PendingIntent} and {@link Intent#filterEquals} for details.
sessionUri
=
sessionUri
=
new
Uri
.
Builder
()
new
Uri
.
Builder
()
.
scheme
(
MediaSessionImpl
Base
.
class
.
getName
())
.
scheme
(
MediaSessionImpl
.
class
.
getName
())
.
appendPath
(
id
)
.
appendPath
(
id
)
.
appendPath
(
String
.
valueOf
(
SystemClock
.
elapsedRealtime
()))
.
appendPath
(
String
.
valueOf
(
SystemClock
.
elapsedRealtime
()))
.
build
();
.
build
();
...
@@ -227,10 +227,9 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -227,10 +227,9 @@ import org.checkerframework.checker.initialization.qual.Initialized;
intent
.
setComponent
(
mbrComponent
);
intent
.
setComponent
(
mbrComponent
);
if
(
Util
.
SDK_INT
>=
26
)
{
if
(
Util
.
SDK_INT
>=
26
)
{
mediaButtonIntent
=
mediaButtonIntent
=
PendingIntent
.
getForegroundService
(
this
.
context
,
0
,
intent
,
pendingIntentFlagMutable
);
PendingIntent
.
getForegroundService
(
context
,
0
,
intent
,
pendingIntentFlagMutable
);
}
else
{
}
else
{
mediaButtonIntent
=
mediaButtonIntent
=
PendingIntent
.
getService
(
context
,
0
,
intent
,
pendingIntentFlagMutable
);
PendingIntent
.
getService
(
this
.
context
,
0
,
intent
,
pendingIntentFlagMutable
);
}
}
broadcastReceiver
=
null
;
broadcastReceiver
=
null
;
}
}
...
@@ -251,7 +250,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -251,7 +250,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
thisRef:
:
notifyPeriodicSessionPositionInfoChangesOnHandler
,
sessionPositionUpdateDelayMs
);
thisRef:
:
notifyPeriodicSessionPositionInfoChangesOnHandler
,
sessionPositionUpdateDelayMs
);
}
}
@Override
public
void
setPlayer
(
Player
player
)
{
public
void
setPlayer
(
Player
player
)
{
if
(
player
==
playerWrapper
.
getWrappedPlayer
())
{
if
(
player
==
playerWrapper
.
getWrappedPlayer
())
{
return
;
return
;
...
@@ -283,7 +281,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -283,7 +281,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
onPlayerInfoChangedHandler
.
sendPlayerInfoChangedMessage
(
/* excludeTimeline= */
false
);
onPlayerInfoChangedHandler
.
sendPlayerInfoChangedMessage
(
/* excludeTimeline= */
false
);
}
}
@Override
public
void
release
()
{
public
void
release
()
{
synchronized
(
lock
)
{
synchronized
(
lock
)
{
if
(
closed
)
{
if
(
closed
)
{
...
@@ -317,27 +314,22 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -317,27 +314,22 @@ import org.checkerframework.checker.initialization.qual.Initialized;
dispatchRemoteControllerTaskWithoutReturn
(
ControllerCb:
:
onDisconnected
);
dispatchRemoteControllerTaskWithoutReturn
(
ControllerCb:
:
onDisconnected
);
}
}
@Override
public
PlayerWrapper
getPlayerWrapper
()
{
public
PlayerWrapper
getPlayerWrapper
()
{
return
playerWrapper
;
return
playerWrapper
;
}
}
@Override
public
String
getId
()
{
public
String
getId
()
{
return
sessionId
;
return
sessionId
;
}
}
@Override
public
Uri
getUri
()
{
public
Uri
getUri
()
{
return
sessionUri
;
return
sessionUri
;
}
}
@Override
public
SessionToken
getToken
()
{
public
SessionToken
getToken
()
{
return
sessionToken
;
return
sessionToken
;
}
}
@Override
public
List
<
ControllerInfo
>
getConnectedControllers
()
{
public
List
<
ControllerInfo
>
getConnectedControllers
()
{
List
<
ControllerInfo
>
controllers
=
new
ArrayList
<>();
List
<
ControllerInfo
>
controllers
=
new
ArrayList
<>();
controllers
.
addAll
(
sessionStub
.
getConnectedControllersManager
().
getConnectedControllers
());
controllers
.
addAll
(
sessionStub
.
getConnectedControllersManager
().
getConnectedControllers
());
...
@@ -346,13 +338,11 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -346,13 +338,11 @@ import org.checkerframework.checker.initialization.qual.Initialized;
return
controllers
;
return
controllers
;
}
}
@Override
public
boolean
isConnected
(
ControllerInfo
controller
)
{
public
boolean
isConnected
(
ControllerInfo
controller
)
{
return
sessionStub
.
getConnectedControllersManager
().
isConnected
(
controller
)
return
sessionStub
.
getConnectedControllersManager
().
isConnected
(
controller
)
||
sessionLegacyStub
.
getConnectedControllersManager
().
isConnected
(
controller
);
||
sessionLegacyStub
.
getConnectedControllersManager
().
isConnected
(
controller
);
}
}
@Override
public
ListenableFuture
<
SessionResult
>
setCustomLayout
(
public
ListenableFuture
<
SessionResult
>
setCustomLayout
(
ControllerInfo
controller
,
List
<
CommandButton
>
layout
)
{
ControllerInfo
controller
,
List
<
CommandButton
>
layout
)
{
return
dispatchRemoteControllerTask
(
return
dispatchRemoteControllerTask
(
...
@@ -365,7 +355,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -365,7 +355,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
});
});
}
}
@Override
public
void
setAvailableCommands
(
public
void
setAvailableCommands
(
ControllerInfo
controller
,
SessionCommands
sessionCommands
,
Player
.
Commands
playerCommands
)
{
ControllerInfo
controller
,
SessionCommands
sessionCommands
,
Player
.
Commands
playerCommands
)
{
if
(
sessionStub
.
getConnectedControllersManager
().
isConnected
(
controller
))
{
if
(
sessionStub
.
getConnectedControllersManager
().
isConnected
(
controller
))
{
...
@@ -388,7 +377,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -388,7 +377,6 @@ import org.checkerframework.checker.initialization.qual.Initialized;
}
}
}
}
@Override
public
void
broadcastCustomCommand
(
SessionCommand
command
,
Bundle
args
)
{
public
void
broadcastCustomCommand
(
SessionCommand
command
,
Bundle
args
)
{
dispatchRemoteControllerTaskWithoutReturn
(
dispatchRemoteControllerTaskWithoutReturn
(
(
controller
,
seq
)
->
controller
.
sendCustomCommand
(
seq
,
command
,
args
));
(
controller
,
seq
)
->
controller
.
sendCustomCommand
(
seq
,
command
,
args
));
...
@@ -444,86 +432,67 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -444,86 +432,67 @@ import org.checkerframework.checker.initialization.qual.Initialized;
}
}
}
}
@Override
public
ListenableFuture
<
SessionResult
>
sendCustomCommand
(
public
ListenableFuture
<
SessionResult
>
sendCustomCommand
(
ControllerInfo
controller
,
SessionCommand
command
,
Bundle
args
)
{
ControllerInfo
controller
,
SessionCommand
command
,
Bundle
args
)
{
return
dispatchRemoteControllerTask
(
return
dispatchRemoteControllerTask
(
controller
,
(
cb
,
seq
)
->
cb
.
sendCustomCommand
(
seq
,
command
,
args
));
controller
,
(
cb
,
seq
)
->
cb
.
sendCustomCommand
(
seq
,
command
,
args
));
}
}
@Override
public
void
connectFromService
(
public
MediaSession
getInstance
()
{
IMediaController
caller
,
int
controllerVersion
,
String
packageName
,
int
pid
,
int
uid
,
Bundle
connectionHints
)
{
sessionStub
.
connect
(
caller
,
controllerVersion
,
packageName
,
pid
,
uid
,
checkStateNotNull
(
connectionHints
));
}
public
MediaSessionCompat
getSessionCompat
()
{
return
sessionLegacyStub
.
getSessionCompat
();
}
public
void
setLegacyControllerConnectionTimeoutMs
(
long
timeoutMs
)
{
sessionLegacyStub
.
setLegacyControllerDisconnectTimeoutMs
(
timeoutMs
);
}
protected
MediaSession
getInstance
()
{
return
instance
;
return
instance
;
}
}
@Override
protected
Context
getContext
()
{
public
Context
getContext
()
{
return
context
;
return
context
;
}
}
@Override
protected
Handler
getApplicationHandler
()
{
public
Handler
getApplicationHandler
()
{
return
applicationHandler
;
return
applicationHandler
;
}
}
@Override
protected
SessionCallback
getCallback
()
{
public
SessionCallback
getCallback
()
{
return
callback
;
return
callback
;
}
}
@Override
protected
MediaItemFiller
getMediaItemFiller
()
{
public
MediaItemFiller
getMediaItemFiller
()
{
return
mediaItemFiller
;
return
mediaItemFiller
;
}
}
@Override
protected
boolean
isReleased
()
{
public
MediaSessionCompat
getSessionCompat
()
{
return
sessionLegacyStub
.
getSessionCompat
();
}
@Override
public
void
setLegacyControllerConnectionTimeoutMs
(
long
timeoutMs
)
{
sessionLegacyStub
.
setLegacyControllerDisconnectTimeoutMs
(
timeoutMs
);
}
@Override
public
boolean
isReleased
()
{
synchronized
(
lock
)
{
synchronized
(
lock
)
{
return
closed
;
return
closed
;
}
}
}
}
@Override
@Nullable
@Nullable
p
ublic
PendingIntent
getSessionActivity
()
{
p
rotected
PendingIntent
getSessionActivity
()
{
return
sessionActivity
;
return
sessionActivity
;
}
}
public
MediaSessionServiceLegacyStub
createLegacyBrowserService
(
MediaSessionCompat
.
Token
compatToken
)
{
MediaSessionServiceLegacyStub
stub
=
new
MediaSessionServiceLegacyStub
(
this
);
stub
.
initialize
(
compatToken
);
return
stub
;
}
@Override
public
void
connectFromService
(
IMediaController
caller
,
int
controllerVersion
,
String
packageName
,
int
pid
,
int
uid
,
Bundle
connectionHints
)
{
sessionStub
.
connect
(
caller
,
controllerVersion
,
packageName
,
pid
,
uid
,
checkStateNotNull
(
connectionHints
));
}
/**
/**
* Gets the service binder from the MediaBrowserServiceCompat. Should be only called by the thread
* Gets the service binder from the MediaBrowserServiceCompat. Should be only called by the thread
* with a Looper.
* with a Looper.
*/
*/
@Override
protected
IBinder
getLegacyBrowserServiceBinder
()
{
public
IBinder
getLegacyBrowserServiceBinder
()
{
MediaSessionServiceLegacyStub
legacyStub
;
MediaSessionServiceLegacyStub
legacyStub
;
synchronized
(
lock
)
{
synchronized
(
lock
)
{
if
(
browserServiceLegacyStub
==
null
)
{
if
(
browserServiceLegacyStub
==
null
)
{
...
@@ -536,8 +505,14 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -536,8 +505,14 @@ import org.checkerframework.checker.initialization.qual.Initialized;
return
legacyStub
.
onBind
(
intent
);
return
legacyStub
.
onBind
(
intent
);
}
}
@Override
protected
MediaSessionServiceLegacyStub
createLegacyBrowserService
(
public
void
setSessionPositionUpdateDelayMsOnHandler
(
long
updateDelayMs
)
{
MediaSessionCompat
.
Token
compatToken
)
{
MediaSessionServiceLegacyStub
stub
=
new
MediaSessionServiceLegacyStub
(
this
);
stub
.
initialize
(
compatToken
);
return
stub
;
}
protected
void
setSessionPositionUpdateDelayMsOnHandler
(
long
updateDelayMs
)
{
verifyApplicationThread
();
verifyApplicationThread
();
sessionPositionUpdateDelayMs
=
updateDelayMs
;
sessionPositionUpdateDelayMs
=
updateDelayMs
;
...
@@ -546,14 +521,12 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -546,14 +521,12 @@ import org.checkerframework.checker.initialization.qual.Initialized;
this
::
notifyPeriodicSessionPositionInfoChangesOnHandler
,
updateDelayMs
);
this
::
notifyPeriodicSessionPositionInfoChangesOnHandler
,
updateDelayMs
);
}
}
@Override
protected
void
setForegroundServiceEventCallback
(
public
void
setForegroundServiceEventCallback
(
MediaSession
.
ForegroundServiceEventCallback
foregroundServiceEventCallback
)
{
MediaSession
.
ForegroundServiceEventCallback
foregroundServiceEventCallback
)
{
this
.
foregroundServiceEventCallback
=
foregroundServiceEventCallback
;
this
.
foregroundServiceEventCallback
=
foregroundServiceEventCallback
;
}
}
@Override
protected
void
clearForegroundServiceEventCallback
()
{
public
void
clearForegroundServiceEventCallback
()
{
foregroundServiceEventCallback
=
null
;
foregroundServiceEventCallback
=
null
;
}
}
...
@@ -700,17 +673,17 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -700,17 +673,17 @@ import org.checkerframework.checker.initialization.qual.Initialized;
private
static
class
PlayerListener
implements
Player
.
Listener
{
private
static
class
PlayerListener
implements
Player
.
Listener
{
private
final
WeakReference
<
MediaSessionImpl
Base
>
session
;
private
final
WeakReference
<
MediaSessionImpl
>
session
;
private
final
WeakReference
<
PlayerWrapper
>
player
;
private
final
WeakReference
<
PlayerWrapper
>
player
;
public
PlayerListener
(
MediaSessionImpl
Base
session
,
PlayerWrapper
player
)
{
public
PlayerListener
(
MediaSessionImpl
session
,
PlayerWrapper
player
)
{
this
.
session
=
new
WeakReference
<>(
session
);
this
.
session
=
new
WeakReference
<>(
session
);
this
.
player
=
new
WeakReference
<>(
player
);
this
.
player
=
new
WeakReference
<>(
player
);
}
}
@Override
@Override
public
void
onPlayerError
(
PlaybackException
error
)
{
public
void
onPlayerError
(
PlaybackException
error
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -728,7 +701,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -728,7 +701,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onMediaItemTransition
(
public
void
onMediaItemTransition
(
@Nullable
MediaItem
mediaItem
,
@Player
.
MediaItemTransitionReason
int
reason
)
{
@Nullable
MediaItem
mediaItem
,
@Player
.
MediaItemTransitionReason
int
reason
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -748,7 +721,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -748,7 +721,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPlayWhenReadyChanged
(
public
void
onPlayWhenReadyChanged
(
boolean
playWhenReady
,
@Player
.
PlayWhenReadyChangeReason
int
reason
)
{
boolean
playWhenReady
,
@Player
.
PlayWhenReadyChangeReason
int
reason
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -767,7 +740,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -767,7 +740,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPlaybackSuppressionReasonChanged
(
@Player
.
PlaybackSuppressionReason
int
reason
)
{
public
void
onPlaybackSuppressionReasonChanged
(
@Player
.
PlaybackSuppressionReason
int
reason
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -788,7 +761,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -788,7 +761,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -808,7 +781,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -808,7 +781,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onIsPlayingChanged
(
boolean
isPlaying
)
{
public
void
onIsPlayingChanged
(
boolean
isPlaying
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -825,7 +798,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -825,7 +798,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onIsLoadingChanged
(
boolean
isLoading
)
{
public
void
onIsLoadingChanged
(
boolean
isLoading
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -843,7 +816,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -843,7 +816,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPositionDiscontinuity
(
public
void
onPositionDiscontinuity
(
PositionInfo
oldPosition
,
PositionInfo
newPosition
,
@DiscontinuityReason
int
reason
)
{
PositionInfo
oldPosition
,
PositionInfo
newPosition
,
@DiscontinuityReason
int
reason
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -863,7 +836,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -863,7 +836,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPlaybackParametersChanged
(
PlaybackParameters
playbackParameters
)
{
public
void
onPlaybackParametersChanged
(
PlaybackParameters
playbackParameters
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -880,7 +853,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -880,7 +853,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onSeekBackIncrementChanged
(
long
seekBackIncrementMs
)
{
public
void
onSeekBackIncrementChanged
(
long
seekBackIncrementMs
)
{
MediaSessionImpl
Base
session
=
getSession
();
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -897,7 +870,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -897,7 +870,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onSeekForwardIncrementChanged
(
long
seekForwardIncrementMs
)
{
public
void
onSeekForwardIncrementChanged
(
long
seekForwardIncrementMs
)
{
MediaSessionImpl
Base
session
=
getSession
();
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -914,7 +887,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -914,7 +887,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onTimelineChanged
(
Timeline
timeline
,
@Player
.
TimelineChangeReason
int
reason
)
{
public
void
onTimelineChanged
(
Timeline
timeline
,
@Player
.
TimelineChangeReason
int
reason
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -931,7 +904,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -931,7 +904,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onPlaylistMetadataChanged
(
MediaMetadata
playlistMetadata
)
{
public
void
onPlaylistMetadataChanged
(
MediaMetadata
playlistMetadata
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -944,7 +917,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -944,7 +917,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onRepeatModeChanged
(
@RepeatMode
int
repeatMode
)
{
public
void
onRepeatModeChanged
(
@RepeatMode
int
repeatMode
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -961,7 +934,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -961,7 +934,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onShuffleModeEnabledChanged
(
boolean
shuffleModeEnabled
)
{
public
void
onShuffleModeEnabledChanged
(
boolean
shuffleModeEnabled
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -978,7 +951,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -978,7 +951,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onAudioAttributesChanged
(
AudioAttributes
attributes
)
{
public
void
onAudioAttributesChanged
(
AudioAttributes
attributes
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -995,7 +968,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -995,7 +968,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onVideoSizeChanged
(
VideoSize
size
)
{
public
void
onVideoSizeChanged
(
VideoSize
size
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1008,7 +981,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1008,7 +981,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onVolumeChanged
(
@FloatRange
(
from
=
0
,
to
=
1
)
float
volume
)
{
public
void
onVolumeChanged
(
@FloatRange
(
from
=
0
,
to
=
1
)
float
volume
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1021,7 +994,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1021,7 +994,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onCues
(
List
<
Cue
>
cues
)
{
public
void
onCues
(
List
<
Cue
>
cues
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1036,7 +1009,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1036,7 +1009,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onDeviceInfoChanged
(
DeviceInfo
deviceInfo
)
{
public
void
onDeviceInfoChanged
(
DeviceInfo
deviceInfo
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1053,7 +1026,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1053,7 +1026,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onDeviceVolumeChanged
(
int
volume
,
boolean
muted
)
{
public
void
onDeviceVolumeChanged
(
int
volume
,
boolean
muted
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1070,7 +1043,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1070,7 +1043,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onAvailableCommandsChanged
(
Player
.
Commands
availableCommands
)
{
public
void
onAvailableCommandsChanged
(
Player
.
Commands
availableCommands
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1091,7 +1064,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1091,7 +1064,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onTrackSelectionParametersChanged
(
TrackSelectionParameters
parameters
)
{
public
void
onTrackSelectionParametersChanged
(
TrackSelectionParameters
parameters
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1108,7 +1081,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1108,7 +1081,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onMediaMetadataChanged
(
MediaMetadata
mediaMetadata
)
{
public
void
onMediaMetadataChanged
(
MediaMetadata
mediaMetadata
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1125,7 +1098,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1125,7 +1098,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onRenderedFirstFrame
()
{
public
void
onRenderedFirstFrame
()
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1135,7 +1108,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1135,7 +1108,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
@Override
@Override
public
void
onMaxSeekToPreviousPositionChanged
(
long
maxSeekToPreviousPositionMs
)
{
public
void
onMaxSeekToPreviousPositionChanged
(
long
maxSeekToPreviousPositionMs
)
{
@Nullable
MediaSessionImpl
Base
session
=
getSession
();
@Nullable
MediaSessionImpl
session
=
getSession
();
if
(
session
==
null
)
{
if
(
session
==
null
)
{
return
;
return
;
}
}
...
@@ -1150,7 +1123,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1150,7 +1123,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
}
}
@Nullable
@Nullable
private
MediaSessionImpl
Base
getSession
()
{
private
MediaSessionImpl
getSession
()
{
return
this
.
session
.
get
();
return
this
.
session
.
get
();
}
}
}
}
...
@@ -1164,7 +1137,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
...
@@ -1164,7 +1137,7 @@ import org.checkerframework.checker.initialization.qual.Initialized;
return
;
return
;
}
}
Uri
sessionUri
=
intent
.
getData
();
Uri
sessionUri
=
intent
.
getData
();
if
(!
Util
.
areEqual
(
sessionUri
,
MediaSessionImpl
Base
.
this
.
sessionUri
))
{
if
(!
Util
.
areEqual
(
sessionUri
,
MediaSessionImpl
.
this
.
sessionUri
))
{
return
;
return
;
}
}
KeyEvent
keyEvent
=
(
KeyEvent
)
intent
.
getParcelableExtra
(
Intent
.
EXTRA_KEY_EVENT
);
KeyEvent
keyEvent
=
(
KeyEvent
)
intent
.
getParcelableExtra
(
Intent
.
EXTRA_KEY_EVENT
);
...
...
libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java
View file @
b9f05927
...
@@ -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
.
MediaSession
Impl
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
.
MediaSession
Impl
session
,
MediaSessionImpl
session
,
ComponentName
mbrComponent
,
ComponentName
mbrComponent
,
PendingIntent
mediaButtonIntent
,
PendingIntent
mediaButtonIntent
,
Handler
handler
)
{
Handler
handler
)
{
...
...
libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java
View file @
b9f05927
...
@@ -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
();
}
}
}
libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceImpl
Base
.java
→
libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceImpl.java
View file @
b9f05927
...
@@ -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
MediaSessionServiceImpl
Base
implements
MediaSessionServiceImpl
{
/* package */
class
MediaSessionServiceImpl
{
private
static
final
String
TAG
=
"MSSImpl
Base
"
;
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
MediaSessionServiceImpl
Base
()
{
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
<
MediaSessionServiceImpl
Base
>
serviceImpl
;
private
final
WeakReference
<
MediaSessionServiceImpl
>
serviceImpl
;
private
final
Handler
handler
;
private
final
Handler
handler
;
private
final
MediaSessionManager
mediaSessionManager
;
private
final
MediaSessionManager
mediaSessionManager
;
public
MediaSessionServiceStub
(
MediaSessionServiceImpl
Base
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
MediaSessionServiceImpl
Base
serviceImpl
=
MediaSessionServiceImpl
serviceImpl
=
MediaSessionServiceStub
.
this
.
serviceImpl
.
get
();
MediaSessionServiceStub
.
this
.
serviceImpl
.
get
();
if
(
serviceImpl
==
null
)
{
if
(
serviceImpl
==
null
)
{
return
;
return
;
...
...
libraries/session/src/main/java/androidx/media3/session/MediaSessionServiceLegacyStub.java
View file @
b9f05927
...
@@ -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
.
MediaSession
Impl
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
.
MediaSession
Impl
sessionImpl
)
{
public
MediaSessionServiceLegacyStub
(
MediaSessionImpl
sessionImpl
)
{
super
();
super
();
manager
=
MediaSessionManager
.
getSessionManager
(
sessionImpl
.
getContext
());
manager
=
MediaSessionManager
.
getSessionManager
(
sessionImpl
.
getContext
());
this
.
sessionImpl
=
sessionImpl
;
this
.
sessionImpl
=
sessionImpl
;
...
...
libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java
View file @
b9f05927
...
@@ -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
.
MediaSession
Impl
>
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
.
MediaSession
Impl
sessionImpl
)
{
public
MediaSessionStub
(
MediaSessionImpl
sessionImpl
)
{
// Initialize default values.
// Initialize default values.
lock
=
new
Object
();
lock
=
new
Object
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment