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
0be4bee2
authored
Apr 16, 2019
by
borrelli
Committed by
Oliver Woodman
Apr 16, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add "setCustomErrorMessage" override that allows including an extras bundle with a custom error.
PiperOrigin-RevId: 243807109
parent
5856e757
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
1 deletions
RELEASENOTES.md
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java
RELEASENOTES.md
View file @
0be4bee2
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
*
MediaSession extension:
*
MediaSession extension:
*
Allow handling of custom commands via
`registerCustomCommandReceiver`
.
*
Allow handling of custom commands via
`registerCustomCommandReceiver`
.
*
Add ability to include an extras
`Bundle`
when reporting a custom error.
### 2.10.0 ###
### 2.10.0 ###
...
...
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java
View file @
0be4bee2
...
@@ -373,6 +373,7 @@ public final class MediaSessionConnector {
...
@@ -373,6 +373,7 @@ public final class MediaSessionConnector {
@Nullable
private
Player
player
;
@Nullable
private
Player
player
;
@Nullable
private
ErrorMessageProvider
<?
super
ExoPlaybackException
>
errorMessageProvider
;
@Nullable
private
ErrorMessageProvider
<?
super
ExoPlaybackException
>
errorMessageProvider
;
@Nullable
private
Pair
<
Integer
,
CharSequence
>
customError
;
@Nullable
private
Pair
<
Integer
,
CharSequence
>
customError
;
@Nullable
private
Bundle
customErrorExtras
;
@Nullable
private
PlaybackPreparer
playbackPreparer
;
@Nullable
private
PlaybackPreparer
playbackPreparer
;
@Nullable
private
QueueNavigator
queueNavigator
;
@Nullable
private
QueueNavigator
queueNavigator
;
@Nullable
private
QueueEditor
queueEditor
;
@Nullable
private
QueueEditor
queueEditor
;
...
@@ -581,7 +582,20 @@ public final class MediaSessionConnector {
...
@@ -581,7 +582,20 @@ public final class MediaSessionConnector {
* @param code The error code to report. Ignored when {@code message} is {@code null}.
* @param code The error code to report. Ignored when {@code message} is {@code null}.
*/
*/
public
void
setCustomErrorMessage
(
@Nullable
CharSequence
message
,
int
code
)
{
public
void
setCustomErrorMessage
(
@Nullable
CharSequence
message
,
int
code
)
{
setCustomErrorMessage
(
message
,
code
,
/* extras= */
null
);
}
/**
* Sets a custom error on the session.
*
* @param message The error string to report or {@code null} to clear the error.
* @param code The error code to report. Ignored when {@code message} is {@code null}.
* @param extras Extras to include in reported {@link PlaybackStateCompat}.
*/
public
void
setCustomErrorMessage
(
@Nullable
CharSequence
message
,
int
code
,
@Nullable
Bundle
extras
)
{
customError
=
(
message
==
null
)
?
null
:
new
Pair
<>(
code
,
message
);
customError
=
(
message
==
null
)
?
null
:
new
Pair
<>(
code
,
message
);
customErrorExtras
=
(
message
==
null
)
?
null
:
extras
;
invalidateMediaSessionPlaybackState
();
invalidateMediaSessionPlaybackState
();
}
}
...
@@ -654,6 +668,7 @@ public final class MediaSessionConnector {
...
@@ -654,6 +668,7 @@ public final class MediaSessionConnector {
customActionMap
=
Collections
.
unmodifiableMap
(
currentActions
);
customActionMap
=
Collections
.
unmodifiableMap
(
currentActions
);
int
playbackState
=
player
.
getPlaybackState
();
int
playbackState
=
player
.
getPlaybackState
();
Bundle
extras
=
new
Bundle
();
ExoPlaybackException
playbackError
=
ExoPlaybackException
playbackError
=
playbackState
==
Player
.
STATE_IDLE
?
player
.
getPlaybackError
()
:
null
;
playbackState
==
Player
.
STATE_IDLE
?
player
.
getPlaybackError
()
:
null
;
boolean
reportError
=
playbackError
!=
null
||
customError
!=
null
;
boolean
reportError
=
playbackError
!=
null
||
customError
!=
null
;
...
@@ -663,6 +678,9 @@ public final class MediaSessionConnector {
...
@@ -663,6 +678,9 @@ public final class MediaSessionConnector {
:
mapPlaybackState
(
player
.
getPlaybackState
(),
player
.
getPlayWhenReady
());
:
mapPlaybackState
(
player
.
getPlaybackState
(),
player
.
getPlayWhenReady
());
if
(
customError
!=
null
)
{
if
(
customError
!=
null
)
{
builder
.
setErrorMessage
(
customError
.
first
,
customError
.
second
);
builder
.
setErrorMessage
(
customError
.
first
,
customError
.
second
);
if
(
customErrorExtras
!=
null
)
{
extras
.
putAll
(
customErrorExtras
);
}
}
else
if
(
playbackError
!=
null
&&
errorMessageProvider
!=
null
)
{
}
else
if
(
playbackError
!=
null
&&
errorMessageProvider
!=
null
)
{
Pair
<
Integer
,
String
>
message
=
errorMessageProvider
.
getErrorMessage
(
playbackError
);
Pair
<
Integer
,
String
>
message
=
errorMessageProvider
.
getErrorMessage
(
playbackError
);
builder
.
setErrorMessage
(
message
.
first
,
message
.
second
);
builder
.
setErrorMessage
(
message
.
first
,
message
.
second
);
...
@@ -671,7 +689,6 @@ public final class MediaSessionConnector {
...
@@ -671,7 +689,6 @@ public final class MediaSessionConnector {
queueNavigator
!=
null
queueNavigator
!=
null
?
queueNavigator
.
getActiveQueueItemId
(
player
)
?
queueNavigator
.
getActiveQueueItemId
(
player
)
:
MediaSessionCompat
.
QueueItem
.
UNKNOWN_ID
;
:
MediaSessionCompat
.
QueueItem
.
UNKNOWN_ID
;
Bundle
extras
=
new
Bundle
();
extras
.
putFloat
(
EXTRAS_PITCH
,
player
.
getPlaybackParameters
().
pitch
);
extras
.
putFloat
(
EXTRAS_PITCH
,
player
.
getPlaybackParameters
().
pitch
);
builder
builder
.
setActions
(
buildPrepareActions
()
|
buildPlaybackActions
(
player
))
.
setActions
(
buildPrepareActions
()
|
buildPlaybackActions
(
player
))
...
...
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