public Video buildFromMediaDesc(MediaDescription desc) {
   return new Video(
       Long.parseLong(desc.getMediaId()),
       "", // Category - not provided by MediaDescription.
       String.valueOf(desc.getTitle()),
       String.valueOf(desc.getDescription()),
       "", // Media URI - not provided by MediaDescription.
       "", // Background Image URI - not provided by MediaDescription.
       String.valueOf(desc.getIconUri()),
       String.valueOf(desc.getSubtitle()));
 }
  static View setupView(
      Activity activity,
      View convertView,
      ViewGroup parent,
      MediaDescription description,
      int state) {

    if (sColorStateNotPlaying == null || sColorStatePlaying == null) {
      initializeColorStateLists(activity);
    }

    MediaItemViewHolder holder;

    Integer cachedState = STATE_INVALID;

    if (convertView == null) {
      convertView = LayoutInflater.from(activity).inflate(R.layout.media_list_item, parent, false);
      holder = new MediaItemViewHolder();
      holder.mImageView = (ImageView) convertView.findViewById(R.id.play_eq);
      holder.mTitleView = (TextView) convertView.findViewById(R.id.title);
      holder.mDescriptionView = (TextView) convertView.findViewById(R.id.description);
      convertView.setTag(holder);
    } else {
      holder = (MediaItemViewHolder) convertView.getTag();
      cachedState = (Integer) convertView.getTag(R.id.tag_mediaitem_state_cache);
    }

    holder.mTitleView.setText(description.getTitle());
    holder.mDescriptionView.setText(description.getSubtitle());

    // If the state of convertView is different, we need to adapt the view to the
    // new state.
    if (cachedState == null || cachedState != state) {
      switch (state) {
        case STATE_PLAYABLE:
          holder.mImageView.setImageDrawable(
              activity.getDrawable(R.drawable.ic_play_arrow_black_36dp));
          holder.mImageView.setImageTintList(sColorStateNotPlaying);
          holder.mImageView.setVisibility(View.VISIBLE);
          break;
        case STATE_PLAYING:
          AnimationDrawable animation =
              (AnimationDrawable) activity.getDrawable(R.drawable.ic_equalizer_white_36dp);
          holder.mImageView.setImageDrawable(animation);
          holder.mImageView.setImageTintList(sColorStatePlaying);
          holder.mImageView.setVisibility(View.VISIBLE);
          if (animation != null) animation.start();
          break;
        case STATE_PAUSED:
          holder.mImageView.setImageDrawable(
              activity.getDrawable(R.drawable.ic_equalizer1_white_36dp));
          holder.mImageView.setImageTintList(sColorStateNotPlaying);
          holder.mImageView.setVisibility(View.VISIBLE);
          break;
        default:
          holder.mImageView.setVisibility(View.GONE);
      }
      convertView.setTag(R.id.tag_mediaitem_state_cache, state);
    }

    return convertView;
  }