aboutsummaryrefslogtreecommitdiff
path: root/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
diff options
context:
space:
mode:
authorSimon Dai <sdai@google.com>2019-06-19 14:15:26 -0700
committerSimon Dai <sdai@google.com>2019-06-26 17:19:09 -0700
commitfa58d8e5997385a77b3291d0c36f57911bdc1b11 (patch)
treeae5bfa61045d6a0b2b004972a9732a4f4387975b /TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
parent13ff3bc1fa60e4094d30062663e95a7975d2b972 (diff)
downloadtests-fa58d8e5997385a77b3291d0c36f57911bdc1b11.tar.gz
Add search to test media app
Bug: 134767149 Test: Manual Change-Id: Ia129a0f71f4f17222d7c44ced87cd182a77d3dd3
Diffstat (limited to 'TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java')
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java30
1 files changed, 25 insertions, 5 deletions
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
index 5e80348..8292064 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
@@ -25,6 +25,7 @@ import android.support.v4.media.session.PlaybackStateCompat;
import android.util.Log;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.media.MediaBrowserServiceCompat;
import com.android.car.media.testmediaapp.loader.TmaLoader;
@@ -48,6 +49,7 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
private static final String MEDIA_SESSION_TAG = "TEST_MEDIA_SESSION";
private static final String ROOT_ID = "_ROOT_ID_";
+ private static final String SEARCH_SUPPORTED = "android.media.browse.SEARCH_SUPPORTED";
private TmaPrefs mPrefs;
private Handler mHandler;
@@ -55,6 +57,8 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
private TmaLibrary mLibrary;
private TmaPlayer mPlayer;
+ private BrowserRoot mRoot;
+ private String mLastLoadedNodeId;
@Override
public void onCreate() {
@@ -80,6 +84,10 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
mPrefs.mRootReplyDelay.registerChangeListener(
(oldValue, newValue) -> invalidateRoot());
+
+ Bundle extras = new Bundle();
+ extras.putBoolean(SEARCH_SUPPORTED, true);
+ mRoot = new BrowserRoot(ROOT_ID, extras);
}
@Override
@@ -114,14 +122,24 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
@Override
public BrowserRoot onGetRoot(
@NonNull String clientPackageName, int clientUid, Bundle rootHints) {
- return new BrowserRoot(ROOT_ID, null);
+ return mRoot;
}
@Override
public void onLoadChildren(@NonNull String parentId, @NonNull Result<List<MediaItem>> result) {
+ mLastLoadedNodeId = parentId;
+ getMediaItemsWithDelay(parentId, result, null);
+ }
+
+ @Override
+ public void onSearch(final String query, final Bundle extras, Result<List<MediaItem>> result) {
+ getMediaItemsWithDelay(mLastLoadedNodeId, result, query);
+ }
+
+ private void getMediaItemsWithDelay(@NonNull String parentId,
+ @NonNull Result<List<MediaItem>> result, @Nullable String filter) {
// TODO: allow per item override of the delay ?
TmaNodeReplyDelay delay = mPrefs.mRootReplyDelay.getValue();
-
Runnable task = () -> {
TmaMediaItem node;
if (TmaAccountType.NONE.equals(mPrefs.mAccountType.getValue())) {
@@ -137,12 +155,15 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
} else {
List<MediaItem> items = new ArrayList<>(node.mChildren.size());
for (TmaMediaItem child : node.mChildren) {
- items.add(child.toMediaItem());
+ MediaItem item = child.toMediaItem();
+ CharSequence title = item.getDescription().getTitle();
+ if (filter == null || (title != null && title.toString().contains(filter))) {
+ items.add(item);
+ }
}
result.sendResult(items);
}
};
-
if (delay == TmaNodeReplyDelay.NONE) {
task.run();
} else {
@@ -150,5 +171,4 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
mHandler.postDelayed(task, delay.mReplyDelayMs);
}
}
-
}