|
15 | 15 | */
|
16 | 16 | package com.example.android.mediacontroller;
|
17 | 17 |
|
| 18 | +import static androidx.media.MediaBrowserServiceCompat.BrowserRoot.EXTRA_SUGGESTED; |
18 | 19 | import static java.util.Arrays.asList;
|
19 | 20 |
|
20 | 21 | import android.app.Activity;
|
@@ -119,10 +120,12 @@ public class MediaAppControllerActivity extends AppCompatActivity {
|
119 | 120 | private MediaAppDetails mMediaAppDetails;
|
120 | 121 | private MediaControllerCompat mController;
|
121 | 122 | private MediaBrowserCompat mBrowser;
|
| 123 | + private MediaBrowserCompat mBrowserExtraSuggested; |
122 | 124 | private AudioFocusHelper mAudioFocusHelper;
|
123 | 125 | private RatingUiHelper mRatingUiHelper;
|
124 | 126 | private CustomControlsAdapter mCustomControlsAdapter = new CustomControlsAdapter();
|
125 | 127 | private BrowseMediaItemsAdapter mBrowseMediaItemsAdapter = new BrowseMediaItemsAdapter();
|
| 128 | + private BrowseMediaItemsAdapter mBrowseMediaItemsExtraSuggestedAdapter = new BrowseMediaItemsAdapter(); |
126 | 129 | private SearchMediaItemsAdapter mSearchMediaItemsAdapter = new SearchMediaItemsAdapter();
|
127 | 130 |
|
128 | 131 | private ViewPager mViewPager;
|
@@ -247,6 +250,13 @@ public Object instantiateItem(@NonNull ViewGroup container, int position) {
|
247 | 250 | mBrowseMediaItemsAdapter.init(findViewById(R.id.media_browse_tree_top),
|
248 | 251 | findViewById(R.id.media_browse_tree_up));
|
249 | 252 |
|
| 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 | + |
250 | 260 | final RecyclerView searchItemsList = findViewById(R.id.search_items_list);
|
251 | 261 | searchItemsList.setLayoutManager(new LinearLayoutManager(this));
|
252 | 262 | searchItemsList.setHasFixedSize(true);
|
@@ -387,13 +397,36 @@ public void onConnectionSuspended() {
|
387 | 397 |
|
388 | 398 | @Override
|
389 | 399 | public void onConnectionFailed() {
|
390 |
| - |
391 | 400 | showToastAndFinish(getString(
|
392 | 401 | R.string.connection_failed_msg, mMediaAppDetails.appName));
|
393 | 402 | }
|
394 | 403 |
|
395 | 404 | }, null);
|
396 | 405 | 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(); |
397 | 430 | } else if (mMediaAppDetails.sessionToken != null) {
|
398 | 431 | setupMediaController();
|
399 | 432 | } else {
|
|
0 commit comments