Skip to content

Commit 076effc

Browse files
authored
Merge pull request #26 from cwei789/media-browse-tree-extra-suggested
Add connection to media browse tree with extra SUGGESTED flag
2 parents ab798e5 + 57f9549 commit 076effc

File tree

4 files changed

+100
-1
lines changed

4 files changed

+100
-1
lines changed

mediacontroller/src/main/java/com/example/android/mediacontroller/MediaAppControllerActivity.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.example.android.mediacontroller;
1717

18+
import static androidx.media.MediaBrowserServiceCompat.BrowserRoot.EXTRA_SUGGESTED;
1819
import static java.util.Arrays.asList;
1920

2021
import android.app.Activity;
@@ -119,10 +120,12 @@ public class MediaAppControllerActivity extends AppCompatActivity {
119120
private MediaAppDetails mMediaAppDetails;
120121
private MediaControllerCompat mController;
121122
private MediaBrowserCompat mBrowser;
123+
private MediaBrowserCompat mBrowserExtraSuggested;
122124
private AudioFocusHelper mAudioFocusHelper;
123125
private RatingUiHelper mRatingUiHelper;
124126
private CustomControlsAdapter mCustomControlsAdapter = new CustomControlsAdapter();
125127
private BrowseMediaItemsAdapter mBrowseMediaItemsAdapter = new BrowseMediaItemsAdapter();
128+
private BrowseMediaItemsAdapter mBrowseMediaItemsExtraSuggestedAdapter = new BrowseMediaItemsAdapter();
126129
private SearchMediaItemsAdapter mSearchMediaItemsAdapter = new SearchMediaItemsAdapter();
127130

128131
private ViewPager mViewPager;
@@ -247,6 +250,13 @@ public Object instantiateItem(@NonNull ViewGroup container, int position) {
247250
mBrowseMediaItemsAdapter.init(findViewById(R.id.media_browse_tree_top),
248251
findViewById(R.id.media_browse_tree_up));
249252

253+
final RecyclerView browseTreeListExtraSuggested = findViewById(R.id.media_items_list_extra_suggested);
254+
browseTreeListExtraSuggested.setLayoutManager(new LinearLayoutManager(this));
255+
browseTreeListExtraSuggested.setHasFixedSize(true);
256+
browseTreeListExtraSuggested.setAdapter(mBrowseMediaItemsExtraSuggestedAdapter);
257+
mBrowseMediaItemsExtraSuggestedAdapter.init(findViewById(R.id.media_browse_tree_top_extra_suggested),
258+
findViewById(R.id.media_browse_tree_up_extra_suggested));
259+
250260
final RecyclerView searchItemsList = findViewById(R.id.search_items_list);
251261
searchItemsList.setLayoutManager(new LinearLayoutManager(this));
252262
searchItemsList.setHasFixedSize(true);
@@ -387,13 +397,36 @@ public void onConnectionSuspended() {
387397

388398
@Override
389399
public void onConnectionFailed() {
390-
391400
showToastAndFinish(getString(
392401
R.string.connection_failed_msg, mMediaAppDetails.appName));
393402
}
394403

395404
}, null);
396405
mBrowser.connect();
406+
407+
Bundle bundle = new Bundle();
408+
bundle.putBoolean(EXTRA_SUGGESTED, true);
409+
410+
mBrowserExtraSuggested = new MediaBrowserCompat(this, mMediaAppDetails.componentName,
411+
new MediaBrowserCompat.ConnectionCallback() {
412+
@Override
413+
public void onConnected() {
414+
mBrowseMediaItemsExtraSuggestedAdapter.setRoot(mBrowserExtraSuggested.getRoot());
415+
}
416+
417+
@Override
418+
public void onConnectionSuspended() {
419+
mBrowseMediaItemsExtraSuggestedAdapter.setRoot(null);
420+
}
421+
422+
@Override
423+
public void onConnectionFailed() {
424+
showToastAndFinish(getString(
425+
R.string.connection_failed_msg, mMediaAppDetails.appName));
426+
}
427+
428+
}, bundle);
429+
mBrowserExtraSuggested.connect();
397430
} else if (mMediaAppDetails.sessionToken != null) {
398431
setupMediaController();
399432
} else {

mediacontroller/src/main/res/layout/activity_media_app_controller.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@
6161
android:id="@+id/browse_tree_page"
6262
layout="@layout/media_browse_tree" />
6363

64+
<include
65+
android:id="@+id/browse_tree_page_extra_suggested"
66+
layout="@layout/media_browse_tree_extra_suggested" />
67+
6468
<include
6569
android:id="@+id/media_search_page"
6670
layout="@layout/media_search_controls" />
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
xml version="1.0" encoding="utf-8"?>
2+
17+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
18+
android:layout_width="match_parent"
19+
android:layout_height="match_parent"
20+
android:orientation="vertical"
21+
android:paddingBottom="@dimen/activity_vertical_margin"
22+
android:paddingLeft="@dimen/activity_horizontal_margin"
23+
android:paddingRight="@dimen/activity_horizontal_margin"
24+
android:paddingTop="@dimen/activity_vertical_margin">
25+
26+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
27+
android:layout_width="match_parent"
28+
android:layout_height="wrap_content"
29+
android:orientation="horizontal"
30+
android:paddingBottom="@dimen/activity_vertical_margin"
31+
android:paddingLeft="@dimen/activity_horizontal_margin"
32+
android:paddingRight="@dimen/activity_horizontal_margin"
33+
android:paddingTop="@dimen/activity_vertical_margin">
34+
35+
<Button
36+
android:id="@+id/media_browse_tree_top_extra_suggested"
37+
android:layout_width="wrap_content"
38+
android:layout_height="wrap_content"
39+
android:text="@string/media_browse_tree_top" />
40+
41+
<Button
42+
android:id="@+id/media_browse_tree_up_extra_suggested"
43+
android:layout_width="wrap_content"
44+
android:layout_height="wrap_content"
45+
android:text="@string/media_browse_tree_up" />
46+
47+
LinearLayout>
48+
49+
<TextView
50+
android:layout_width="match_parent"
51+
android:layout_height="wrap_content"
52+
android:text="@string/media_browse_tree_extra_suggested_header"
53+
android:textColor="@color/colorPrimaryDark"
54+
android:textSize="@dimen/list_header_text_size"
55+
android:textStyle="bold" />
56+
57+
<androidx.recyclerview.widget.RecyclerView
58+
android:id="@+id/media_items_list_extra_suggested"
59+
android:layout_width="match_parent"
60+
android:layout_height="match_parent" />
61+
LinearLayout>

mediacontroller/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
<string name="media_browse_tree_top">Topstring>
116116
<string name="media_browse_tree_up">Upstring>
117117
<string name="media_browse_tree_header">App-provided MediaItemsstring>
118+
<string name="media_browse_tree_extra_suggested_header">App-provided MediaItems Extra Suggested Flagstring>
118119
<string name="media_no_browser">No Browserstring>
119120
<string name="media_browse_tree_loading">Loading…string>
120121
<string name="media_browse_tree_empty">Empty.string>

0 commit comments

Comments
 (0)