Home | History | Annotate | Download | only in widgets
      1 package com.android.car.media.widgets;
      2 
      3 import android.annotation.Nullable;
      4 import android.content.Context;
      5 import android.util.AttributeSet;
      6 import android.view.LayoutInflater;
      7 import android.widget.RelativeLayout;
      8 import android.widget.SeekBar;
      9 import android.widget.TextView;
     10 
     11 import com.android.car.media.MetadataController;
     12 import com.android.car.media.R;
     13 import com.android.car.media.common.PlaybackModel;
     14 
     15 /**
     16  * A view that can be used to display the metadata and playback progress of a media item.
     17  * This view can be styled using the "MetadataView" styleable attributes.
     18  */
     19 public class MetadataView extends RelativeLayout {
     20     private final MetadataController mMetadataController;
     21 
     22     public MetadataView(Context context) {
     23         this(context, null);
     24     }
     25 
     26     public MetadataView(Context context, AttributeSet attrs) {
     27         this(context, attrs, 0);
     28     }
     29 
     30     public MetadataView(Context context, AttributeSet attrs, int defStyleAttr) {
     31         this(context, attrs, defStyleAttr, 0);
     32     }
     33 
     34     public MetadataView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
     35         super(context, attrs, defStyleAttr, defStyleRes);
     36         LayoutInflater.from(context).inflate(R.layout.metadata_compact, this, true);
     37         TextView title = findViewById(R.id.title);
     38         TextView subtitle = findViewById(R.id.subtitle);
     39         SeekBar seekBar = findViewById(R.id.seek_bar);
     40         mMetadataController = new MetadataController(title, subtitle, null, seekBar, null);
     41     }
     42 
     43     /**
     44      * Registers the {@link PlaybackModel} this widget will use to follow playback state.
     45      * Consumers of this class must unregister the {@link PlaybackModel} by calling this method with
     46      * null.
     47      *
     48      * @param model {@link PlaybackModel} to subscribe, or null to unsubscribe.
     49      */
     50     public void setModel(@Nullable PlaybackModel model) {
     51         mMetadataController.setModel(model);
     52     }
     53 
     54 }
     55