@Override
 public void onMediaItemSelected(MediaBrowser.MediaItem item) {
   if (item.isPlayable()) {
     getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
     QueueFragment queueFragment = QueueFragment.newInstance();
     getFragmentManager()
         .beginTransaction()
         .replace(R.id.container, queueFragment)
         .addToBackStack(null)
         .commit();
   } else if (item.isBrowsable()) {
     getFragmentManager()
         .beginTransaction()
         .replace(R.id.container, BrowseFragment.newInstance(item.getMediaId()))
         .addToBackStack(null)
         .commit();
   }
 }
 @Override
 public void onMediaItemSelected(MediaBrowser.MediaItem item) {
   LogHelper.d(TAG, "onMediaItemSelected, mediaId=" + item.getMediaId());
   if (item.isPlayable()) {
     getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
   } else if (item.isBrowsable()) {
     navigateToBrowser(item.getMediaId());
   } else {
     LogHelper.w(
         TAG,
         "Ignoring MediaItem that is neither browsable nor playable: ",
         "mediaId=",
         item.getMediaId());
   }
 }
 @Override
 public void onItemLoaded(MediaBrowser.MediaItem item) {
   Parcel parcel = Parcel.obtain();
   item.writeToParcel(parcel, 0);
   mItemCallback.onItemLoaded(parcel);
 }