A fragment that provides remote control functionality. This fragment provides an image for
      the album art, a ProgressBar
      for playback progression, and three configurable control buttons. If developers want to use
      this fragment, they should add it to their layout XML file, and the CastContext
      will automatically manage its state, and handle any user interactions.
 <fragment
     android:id="@+id/cast_mini_controller"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:visibility="gone"
     class="com.google.android.gms.cast.framework.media.widget.MiniControllerFragment">
 Configurable control buttons
The fragment can show up to three control buttons, from start to end. By default the fragment shows a play/pause toggle button. Developers can use the attributecastControlButtons to override what buttons to show. The list of
      supported control buttons are defined as ID resources:
      @id/cast_button_type_empty: Not placing a button in this slot.
      @id/cast_button_type_custom: A custom button.
      @id/cast_button_type_play_pause_toggle: A button that toggles playback.
      @id/cast_button_type_skip_previous: A button that skips to the previous item in
      the queue.
      @id/cast_button_type_skip_next: A button that skips to the next item in the
      queue.
      @id/cast_button_type_rewind_30_seconds: A button that rewinds the playback by 30
      seconds.
      @id/cast_button_type_forward_30_seconds: A button that skips forward the
      playback by 30 seconds.
      @id/cast_button_type_mute_toggle: A button that mutes and unmutes the remote
      receiver.
      @id/cast_button_type_closed_caption: A button that opens a dialog to select text
      and audio tracks.
Here is an example of showing a rewind button, a play/pause toggle button and a forward button, from start to end:
 <array name="cast_mini_controller_control_buttons">
     <item>@id/cast_button_type_rewind_30_seconds</item>
     <item>@id/cast_button_type_play_pause_toggle</item>
     <item>@id/cast_button_type_forward_30_seconds</item>
 </array>
 ...
 <fragment
     android:id="@+id/cast_mini_controller"
     ...
     app:castControlButtons="@array/cast_mini_controller_control_buttons"
     class="com.google.android.gms.cast.framework.media.widget.MiniControllerFragment">
 @id/cast_button_type_empty.
      Add custom control buttons
This fragment supports adding custom control buttons which are not provided by the SDK, such as a "thumb up" button.1. Specify a slot to contain a custom button using
      @id/cast_button_type_custom in the castControlButtons attribute.
      You can then use 
      getButtonImageViewAt(int) to obtain the ImageView for
      that custom button.
2. Implement a subclass of 
      UIController. The 
      UIController contains methods that are called by the SDK when the state of the
      cast session or media session changes. Your subclass of 
      UIController should take a ImageView as one
      of the parameters, and update its state as needed.
3. Override 
      onCreateView(LayoutInflater, ViewGroup, Bundle), call 
      getButtonImageViewAt(int) to get the view object of the button, and then call
      
      UIMediaController.bindViewToUIController(View, UIController) to associate the view
      with your custom 
      UIController.
4. See MediaIntentReceiver
      for how to handle the action from your custom button.
Here is an example of associating a button at slot 2 to a 
      UIController called MyCustomUIController:
 // arrays.xml
 <array name="cast_mini_controller_control_buttons">
     <item>@id/cast_button_type_empty</item>
     <item>@id/cast_button_type_rewind_30_seconds</item>
     <item>@id/cast_button_type_custom</item>
     <item>@id/cast_button_type_empty</item>
 </array>
 // MyCustomUIController.java
 class MyCustomUIController extends UIController {
     private final View mView;
     public MyCustomUIController(View view) {
         mView = view;
     }
     @Override
     public onMediaStatusUpdated() {
         // Update the state of mView based on the latest the media status.
         ...
         mView.setVisible(false);
         ...
     }
 }
 // MyMiniControllerFragment.java
 class MyMiniControllerFragment extends MiniControllerFragment {
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
         ImageView customButtonView = getButtonImageViewAt(2);
         MyCustomUIController myCustomUiController = new MyCustomUIController(customButtonView);
         getUIMediaController().bindViewToUIController(customButtonView, myCustomUiController);
         ...
     }
 }
 Show or hide album art
The album art can be hidden by setting attribute castShowImageThumbnail to
      false:
... app:castShowImageThumbnail="false" ...
The fragment will be visible when a media session starts, and will be invisible when a media session ends.
XML Attribute Summary
Inherited Field Summary
Public Constructor Summary
Public Method Summary
| final ImageView | 
                   
                    
                    getButtonImageViewAt(int slotIndex)
                     
                
                      Returns the  
                  ImageView
                      of the button at slotIndex in this container.
                     | 
              
| final int | 
                   
                    
                    getButtonSlotCount()
                     
                
                      Returns the number of slots to hold control buttons in this container.
                     
                   | 
              
| final int | 
                   
                    
                    getButtonTypeAt(int slotIndex)
                     
                
                      Returns the type of the button at  
                  slotIndex in this container.
                     | 
              
| UIMediaController | 
                   
                    
                    getUIMediaController()
                     
                
                      Returns the  
                  
                      UIMediaController used to bind views in this container.
                     | 
              
| View | |
| void | |
| void | 
Inherited Method Summary
XML Attributes
CastMiniController_castBackground
Related Methods
CastMiniController_castButtonColor
Related Methods
CastMiniController_castClosedCaptionsButtonDrawable
Related Methods
CastMiniController_castControlButtons
Related Methods
CastMiniController_castForward30ButtonDrawable
Related Methods
CastMiniController_castLargePauseButtonDrawable
Related Methods
CastMiniController_castLargePlayButtonDrawable
Related Methods
CastMiniController_castLargeStopButtonDrawable
Related Methods
CastMiniController_castMuteToggleButtonDrawable
Related Methods
CastMiniController_castPauseButtonDrawable
Related Methods
CastMiniController_castPlayButtonDrawable
Related Methods
CastMiniController_castProgressBarColor
Related Methods
CastMiniController_castRewind30ButtonDrawable
Related Methods
CastMiniController_castShowImageThumbnail
Related Methods
CastMiniController_castSkipNextButtonDrawable
Related Methods
CastMiniController_castSkipPreviousButtonDrawable
Related Methods
CastMiniController_castStopButtonDrawable
Related Methods
CastMiniController_castSubtitleTextAppearance
Related Methods
CastMiniController_castTitleTextAppearance
Related Methods
Public Constructors
public MiniControllerFragment ()
Public Methods
public final ImageView getButtonImageViewAt (int slotIndex)
Returns the ImageView
                  of the button at slotIndex in this container. The ImageView
                  is defined in the layout of the Activity
                  which implements this interface.
Parameters
| slotIndex | the index of the slot in this container. | 
|---|
Throws
| IndexOutOfBoundsException | 
|---|
public final int getButtonSlotCount ()
Returns the number of slots to hold control buttons in this container.
public final int getButtonTypeAt (int slotIndex)
Returns the type of the button at slotIndex in this
                  container.
Button types are defined as one of the ID resources:
@id/cast_button_type_empty: Not placing a button in this slot.@id/cast_button_type_custom: A custom button.@id/cast_button_type_play_pause_toggle: A button that toggles playback.@id/cast_button_type_skip_previous: A button that skips to the previous item in the queue.@id/cast_button_type_skip_next: A button that skips to the next item in the queue.@id/cast_button_type_rewind_30_seconds: A button that rewinds the playback by 30 seconds.@id/cast_button_type_forward_30_seconds: A button that skips forward the playback by 30 seconds.@id/cast_button_type_mute_toggle: A button that mutes and unmutes the remote receiver.@id/cast_button_type_closed_caption: A button that opens a dialog to select text and audio tracks.
Parameters
| slotIndex | the index of the slot in this container. | 
|---|
Throws
| IndexOutOfBoundsException | 
|---|
public UIMediaController getUIMediaController ()
Returns the 
                  UIMediaController used to bind views in this container.