Support7Demos: Preserve the media position when the route is changed
Bug: 153852254
Test: Position preserved when casting to sample routes and
Chromecast routes.
Change-Id: Iff268686893d653670acf7a296c7d93b8d86434f
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/RemotePlayer.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/RemotePlayer.java
index aa84a22..1722592 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/RemotePlayer.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/RemotePlayer.java
@@ -127,15 +127,13 @@
if (DEBUG) {
Log.d(TAG, "play: item=" + item);
}
- mClient.play(item.getUri(), "video/mp4", null, 0, null, new ItemActionCallback() {
+ mClient.play(item.getUri(), "video/mp4", null, item.getPosition(), null,
+ new ItemActionCallback() {
@Override
public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
String itemId, MediaItemStatus itemStatus) {
logStatus("play: succeeded", sessionId, sessionStatus, itemId, itemStatus);
item.setRemoteItemId(itemId);
- if (item.getPosition() > 0) {
- seekInternal(item);
- }
if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
pause();
} else {
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java
index 3b604db..efc1dd8 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java
@@ -449,7 +449,7 @@
+ ", metadata=" + metadata
+ ", headers=" + headers
+ ", receiver=" + receiver);
- PlaylistItem item = mSessionManager.add(null, uri, mime, receiver);
+ PlaylistItem item = mSessionManager.add(null, uri, mime, pos, receiver);
if (callback != null) {
if (item != null) {
Bundle result = new Bundle();
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SessionManager.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SessionManager.java
index 979e2ea..feb6c5a 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SessionManager.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/SessionManager.java
@@ -101,10 +101,11 @@
}
public PlaylistItem add(String title, Uri uri, String mime) {
- return add(title, uri, mime, null);
+ return add(title, uri, mime, 0, null);
}
- public PlaylistItem add(String title, Uri uri, String mime, PendingIntent receiver) {
+ public PlaylistItem add(String title, Uri uri, String mime, long startPosition,
+ PendingIntent receiver) {
if (DEBUG) {
log("add: title=" + title + ", uri=" + uri + ", receiver=" + receiver);
}
@@ -115,6 +116,7 @@
// append new item with initial status PLAYBACK_STATE_PENDING
PlaylistItem item = new PlaylistItem(Integer.toString(mSessionId),
Integer.toString(mItemId), title, uri, mime, receiver);
+ item.setPosition(startPosition);
mPlaylist.add(item);
mItemId++;