aboutsummaryrefslogtreecommitdiff
path: root/TestMediaApp/src/com
diff options
context:
space:
mode:
authorArnaud Berry <arnaudberry@google.com>2019-09-18 13:49:30 -0700
committerArnaud Berry <arnaudberry@google.com>2019-09-18 13:49:30 -0700
commit5c03d5cdb6f55fc566adce0584ace596e9494f39 (patch)
treeb868f20d19c00268eed78a58bdf84fd6ac3457ec /TestMediaApp/src/com
parent2ec931a38a6f953de6c637e7b83fdb6f206afd27 (diff)
downloadtests-5c03d5cdb6f55fc566adce0584ace596e9494f39.tar.gz
Simulate blutooth case of having a playable queue without browse items
Test: manual Change-Id: Ib47544cb340c0a17fc2bfea3f527a6fd51d93f16
Diffstat (limited to 'TestMediaApp/src/com')
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java15
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaLibrary.java1
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaPlayer.java22
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java1
4 files changed, 39 insertions, 0 deletions
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
index a51e623..9cf1e7c 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
@@ -15,6 +15,9 @@
*/
package com.android.car.media.testmediaapp;
+import static com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaBrowseNodeType.LEAF_CHILDREN;
+import static com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaBrowseNodeType.QUEUE_ONLY;
+
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
@@ -31,6 +34,7 @@ import com.android.car.media.testmediaapp.loader.TmaLoader;
import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaAccountType;
import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaReplyDelay;
import com.android.car.media.testmediaapp.prefs.TmaPrefs;
+import com.android.internal.util.Preconditions;
import java.util.ArrayList;
import java.util.List;
@@ -128,6 +132,17 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
public void onLoadChildren(@NonNull String parentId, @NonNull Result<List<MediaItem>> result) {
mLastLoadedNodeId = parentId;
getMediaItemsWithDelay(parentId, result, null);
+
+ if (QUEUE_ONLY.equals(mPrefs.mRootNodeType.getValue()) && ROOT_ID.equals(parentId)) {
+ TmaMediaItem queue = mLibrary.getRoot(LEAF_CHILDREN);
+ Preconditions.checkNotNull(queue);
+ mSession.setQueue(queue.buildQueue());
+
+ TmaMediaItem firstItem = queue.getPlayableByIndex(0);
+ if (firstItem != null) {
+ mPlayer.onPrepareFromMediaId(firstItem.getMediaId(), null);
+ }
+ }
}
@Override
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaLibrary.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaLibrary.java
index eb77019..27b8a7a 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaLibrary.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaLibrary.java
@@ -48,6 +48,7 @@ class TmaLibrary {
mLoader = loader;
mRootAssetPaths.put(TmaBrowseNodeType.NULL, null);
mRootAssetPaths.put(TmaBrowseNodeType.EMPTY, "media_items/empty.json");
+ mRootAssetPaths.put(TmaBrowseNodeType.QUEUE_ONLY, "media_items/empty.json");
mRootAssetPaths.put(TmaBrowseNodeType.NODE_CHILDREN, "media_items/only_nodes.json");
mRootAssetPaths.put(TmaBrowseNodeType.LEAF_CHILDREN, "media_items/simple_leaves.json");
mRootAssetPaths.put(TmaBrowseNodeType.MIXED_CHILDREN, "media_items/mixed.json");
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaPlayer.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaPlayer.java
index dc368ea..cd6eee0 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaPlayer.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaPlayer.java
@@ -145,6 +145,28 @@ public class TmaPlayer extends MediaSessionCompat.Callback {
}
@Override
+ public void onPrepareFromMediaId(String mediaId, Bundle extras) {
+ super.onPrepareFromMediaId(mediaId, extras);
+
+ TmaMediaItem item = mLibrary.getMediaItemById(mediaId);
+ if (item != null && item.getParent() != null) {
+ if (mIsPlaying) {
+ stopPlayback();
+ }
+ mActiveItem = item;
+ mActiveItem.updateSessionMetadata(mSession);
+ mSession.setQueue(item.getParent().buildQueue());
+
+ PlaybackStateCompat.Builder state = new PlaybackStateCompat.Builder()
+ .setState(PlaybackStateCompat.STATE_PAUSED, mCurrentPositionMs, mPlaybackSpeed)
+ .setActions(addActions(ACTION_PLAY));
+ setActiveItemState(state);
+ mSession.setPlaybackState(state.build());
+ }
+ }
+
+
+ @Override
public void onSkipToQueueItem(long id) {
super.onSkipToQueueItem(id);
if (mActiveItem != null && mActiveItem.getParent() != null) {
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
index ad870b6..3da4209 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
@@ -83,6 +83,7 @@ public class TmaEnumPrefs {
public enum TmaBrowseNodeType implements EnumPrefValue {
NULL("Null (error)", "null"),
EMPTY("Empty", "empty"),
+ QUEUE_ONLY("Queue only", "queue-only"),
NODE_CHILDREN("Only browse-able content", "nodes"),
LEAF_CHILDREN("Only playable content (basic working and error cases)", "leaves"),
MIXED_CHILDREN("Mixed content (apps are not supposed to do that)", "mixed");