Package com.google.android.exoplayer2.ui

## Class StyledPlayerControlView

- java.lang.Object
- - android.view.View
  - - android.view.ViewGroup
    - - android.widget.FrameLayout
      - - com.google.android.exoplayer2.ui.StyledPlayerControlView

- All Implemented Interfaces:
    `Drawable.Callback`, `AccessibilityEventSource`, `KeyEvent.Callback`, `ViewManager`, `ViewParent`

      public class StyledPlayerControlView
      extends FrameLayout

  A view for controlling `Player` instances.

  A `StyledPlayerControlView` can be customized by setting attributes (or calling corresponding methods), or overriding drawables.

  ## Attributes

  The following attributes can be set on a `StyledPlayerControlView` when used in a layout XML file:
  - `show_timeout` - The time between the last user interaction and the controls being automatically hidden, in milliseconds. Use zero if the controls should not automatically timeout.
    - Corresponding method: `setShowTimeoutMs(int)`
    - Default: `DEFAULT_SHOW_TIMEOUT_MS`
  - `show_rewind_button` - Whether the rewind button is shown.
    - Corresponding method: `setShowRewindButton(boolean)`
    - Default: true
  - `show_fastforward_button` - Whether the fast forward button is shown.
    - Corresponding method: `setShowFastForwardButton(boolean)`
    - Default: true
  - `show_previous_button` - Whether the previous button is shown.
    - Corresponding method: `setShowPreviousButton(boolean)`
    - Default: true
  - `show_next_button` - Whether the next button is shown.
    - Corresponding method: `setShowNextButton(boolean)`
    - Default: true
  - `repeat_toggle_modes` - A flagged enumeration value specifying which repeat mode toggle options are enabled. Valid values are: `none`, `one`, `all`, or `one|all`.
    - Corresponding method: `setRepeatToggleModes(int)`
    - Default: `DEFAULT_REPEAT_TOGGLE_MODES`
  - `show_shuffle_button` - Whether the shuffle button is shown.
    - Corresponding method: `setShowShuffleButton(boolean)`
    - Default: false
  - `show_subtitle_button` - Whether the subtitle button is shown.
    - Corresponding method: `setShowSubtitleButton(boolean)`
    - Default: false
  - `animation_enabled` - Whether an animation is used to show and hide the playback controls.
    - Corresponding method: `setAnimationEnabled(boolean)`
    - Default: true
  - `time_bar_min_update_interval` - Specifies the minimum interval between time bar position updates.
    - Corresponding method: `setTimeBarMinUpdateInterval(int)`
    - Default: `DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS`
  - All attributes that can be set on `DefaultTimeBar` can also be set on a `StyledPlayerControlView`, and will be propagated to the inflated `DefaultTimeBar`.

  ## Overriding drawables

  The drawables used by `StyledPlayerControlView` can be overridden by drawables with the same names defined in your application. The drawables that can be overridden are:
  - `exo_styled_controls_play` - The play icon.
  - `exo_styled_controls_pause` - The pause icon.
  - `exo_styled_controls_rewind` - The background of rewind icon.
  - `exo_styled_controls_fastforward` - The background of fast forward icon.
  - `exo_styled_controls_previous` - The previous icon.
  - `exo_styled_controls_next` - The next icon.
  - `exo_styled_controls_repeat_off` - The repeat icon for `Player.REPEAT_MODE_OFF`.
  - `exo_styled_controls_repeat_one` - The repeat icon for `Player.REPEAT_MODE_ONE`.
  - `exo_styled_controls_repeat_all` - The repeat icon for `Player.REPEAT_MODE_ALL`.
  - `exo_styled_controls_shuffle_off` - The shuffle icon when shuffling is disabled.
  - `exo_styled_controls_shuffle_on` - The shuffle icon when shuffling is enabled.
  - `exo_styled_controls_vr` - The VR icon.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `StyledPlayerControlView.OnFullScreenModeChangedListener` | Deprecated. Register a `StyledPlayerView.FullscreenButtonClickListener` via `StyledPlayerView.setFullscreenButtonClickListener(StyledPlayerView.FullscreenButtonClickListener)` instead.
    `static interface` | `StyledPlayerControlView.ProgressUpdateListener` | Listener to be notified when progress has been updated.
    `static interface` | `StyledPlayerControlView.VisibilityListener` | Deprecated. Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead.

    - ### Nested classes/interfaces inherited from class android.widget.FrameLayout

      `FrameLayout.LayoutParams`

    - ### Nested classes/interfaces inherited from class android.view.ViewGroup

      `ViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener`

    - ### Nested classes/interfaces inherited from class android.view.View

      `View.AccessibilityDelegate, View.BaseSavedState, View.DragShadowBuilder, View.MeasureSpec, View.OnApplyWindowInsetsListener, View.OnAttachStateChangeListener, View.OnCapturedPointerListener, View.OnClickListener, View.OnContextClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnScrollChangeListener, View.OnSystemUiVisibilityChangeListener, View.OnTouchListener, View.OnUnhandledKeyEventListener`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static @com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int` | `DEFAULT_REPEAT_TOGGLE_MODES` | The default repeat toggle modes.
    `static int` | `DEFAULT_SHOW_TIMEOUT_MS` | The default show timeout, in milliseconds.
    `static int` | `DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS` | The default minimum interval between time bar position updates.
    `static int` | `MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR` | The maximum number of windows that can be shown in a multi-window time bar.

    - ### Fields inherited from class android.view.ViewGroup

      `CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE`

    - ### Fields inherited from class android.view.View

      `ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StyledPlayerControlView​(Context context)` |
    `StyledPlayerControlView​(Context context, AttributeSet attrs)` |
    `StyledPlayerControlView​(Context context, AttributeSet attrs, int defStyleAttr)` |
    `StyledPlayerControlView​(Context context, AttributeSet attrs, int defStyleAttr, AttributeSet playbackAttrs)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addVisibilityListener​(StyledPlayerControlView.VisibilityListener listener)` | Deprecated. Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead.
    `boolean` | `dispatchKeyEvent​(KeyEvent event)` |
    `boolean` | `dispatchMediaKeyEvent​(KeyEvent event)` | Called to process media key events.
    `Player` | `getPlayer()` | Returns the `Player` currently being controlled by this view, or null if no player is set.
    `@com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int` | `getRepeatToggleModes()` | Returns which repeat toggle modes are enabled.
    `boolean` | `getShowShuffleButton()` | Returns whether the shuffle button is shown.
    `boolean` | `getShowSubtitleButton()` | Returns whether the subtitle button is shown.
    `int` | `getShowTimeoutMs()` | Returns the playback controls timeout.
    `boolean` | `getShowVrButton()` | Returns whether the VR button is shown.
    `void` | `hide()` | Hides the controller.
    `void` | `hideImmediately()` | Hides the controller without any animation.
    `boolean` | `isAnimationEnabled()` | Returns whether an animation is used to show and hide the playback controls.
    `boolean` | `isFullyVisible()` | Returns whether the controller is fully visible, which means all UI controls are visible.
    `boolean` | `isVisible()` | Returns whether the controller is currently visible.
    `void` | `onAttachedToWindow()` |
    `void` | `onDetachedFromWindow()` |
    `protected void` | `onLayout​(boolean changed, int left, int top, int right, int bottom)` |
    `void` | `removeVisibilityListener​(StyledPlayerControlView.VisibilityListener listener)` | Deprecated. Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead.
    `void` | `setAnimationEnabled​(boolean animationEnabled)` | Sets whether an animation is used to show and hide the playback controls.
    `void` | `setExtraAdGroupMarkers​(long[] extraAdGroupTimesMs, boolean[] extraPlayedAdGroups)` | Sets the millisecond positions of extra ad markers relative to the start of the window (or timeline, if in multi-window mode) and whether each extra ad has been played or not.
    `void` | `setOnFullScreenModeChangedListener​(StyledPlayerControlView.OnFullScreenModeChangedListener listener)` | Deprecated. Register a `StyledPlayerView.FullscreenButtonClickListener` via `StyledPlayerView.setFullscreenButtonClickListener(StyledPlayerView.FullscreenButtonClickListener)` instead.
    `void` | `setPlayer​(Player player)` | Sets the `Player` to control.
    `void` | `setProgressUpdateListener​(StyledPlayerControlView.ProgressUpdateListener listener)` | Sets the `StyledPlayerControlView.ProgressUpdateListener`.
    `void` | `setRepeatToggleModes​(@com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int repeatToggleModes)` | Sets which repeat toggle modes are enabled.
    `void` | `setShowFastForwardButton​(boolean showFastForwardButton)` | Sets whether the fast forward button is shown.
    `void` | `setShowMultiWindowTimeBar​(boolean showMultiWindowTimeBar)` | Sets whether the time bar should show all windows, as opposed to just the current one.
    `void` | `setShowNextButton​(boolean showNextButton)` | Sets whether the next button is shown.
    `void` | `setShowPreviousButton​(boolean showPreviousButton)` | Sets whether the previous button is shown.
    `void` | `setShowRewindButton​(boolean showRewindButton)` | Sets whether the rewind button is shown.
    `void` | `setShowShuffleButton​(boolean showShuffleButton)` | Sets whether the shuffle button is shown.
    `void` | `setShowSubtitleButton​(boolean showSubtitleButton)` | Sets whether the subtitle button is shown.
    `void` | `setShowTimeoutMs​(int showTimeoutMs)` | Sets the playback controls timeout.
    `void` | `setShowVrButton​(boolean showVrButton)` | Sets whether the VR button is shown.
    `void` | `setTimeBarMinUpdateInterval​(int minUpdateIntervalMs)` | Sets the minimum interval between time bar position updates.
    `void` | `setVrButtonListener​(View.OnClickListener onClickListener)` | Sets listener for the VR button.
    `void` | `show()` | Shows the playback controls.

    - ### Methods inherited from class android.widget.FrameLayout

      `checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedState`

    - ### Methods inherited from class android.view.ViewGroup

      `addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findOnBackInvokedDispatcherForChild, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout`

    - ### Methods inherited from class android.view.View

      `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findOnBackInvokedDispatcher, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getPreferKeepClearRects, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isAutoHandwritingEnabled, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPreferKeepClear, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setAutoHandwritingEnabled, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPreferKeepClear, setPreferKeepClearRects, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface android.view.ViewParent

      `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout`

- - ### Field Detail

    - #### DEFAULT_SHOW_TIMEOUT_MS

          public static final int DEFAULT_SHOW_TIMEOUT_MS

      The default show timeout, in milliseconds.
      See Also:
        Constant Field Values

    - #### DEFAULT_REPEAT_TOGGLE_MODES

          @RepeatToggleModes
          public static final @com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int DEFAULT_REPEAT_TOGGLE_MODES

      The default repeat toggle modes.
      See Also:
        Constant Field Values

    - #### DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS

          public static final int DEFAULT_TIME_BAR_MIN_UPDATE_INTERVAL_MS

      The default minimum interval between time bar position updates.
      See Also:
        Constant Field Values

    - #### MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR

          public static final int MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR

      The maximum number of windows that can be shown in a multi-window time bar.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StyledPlayerControlView

          public StyledPlayerControlView​(Context context)

    - #### StyledPlayerControlView

          public StyledPlayerControlView​(Context context,
                                         @Nullable
                                         AttributeSet attrs)

    - #### StyledPlayerControlView

          public StyledPlayerControlView​(Context context,
                                         @Nullable
                                         AttributeSet attrs,
                                         int defStyleAttr)

    - #### StyledPlayerControlView

          public StyledPlayerControlView​(Context context,
                                         @Nullable
                                         AttributeSet attrs,
                                         int defStyleAttr,
                                         @Nullable
                                         AttributeSet playbackAttrs)

  - ### Method Detail

    - #### getPlayer

          @Nullable
          public Player getPlayer()

      Returns the `Player` currently being controlled by this view, or null if no player is set.

    - #### setPlayer

          public void setPlayer​(@Nullable
                                Player player)

      Sets the `Player` to control.
      Parameters:
        `player` - The `Player` to control, or `null` to detach the current player. Only players which are accessed on the main thread are supported (`player.getApplicationLooper() == Looper.getMainLooper()`).

    - #### setShowMultiWindowTimeBar

          public void setShowMultiWindowTimeBar​(boolean showMultiWindowTimeBar)

      Sets whether the time bar should show all windows, as opposed to just the current one. If the timeline has a period with unknown duration or more than `MAX_WINDOWS_FOR_MULTI_WINDOW_TIME_BAR` windows the time bar will fall back to showing a single window.
      Parameters:
        `showMultiWindowTimeBar` - Whether the time bar should show all windows.

    - #### setExtraAdGroupMarkers

          public void setExtraAdGroupMarkers​(@Nullable
                                             long[] extraAdGroupTimesMs,
                                             @Nullable
                                             boolean[] extraPlayedAdGroups)

      Sets the millisecond positions of extra ad markers relative to the start of the window (or timeline, if in multi-window mode) and whether each extra ad has been played or not. The markers are shown in addition to any ad markers for ads in the player's timeline.
      Parameters:
        `extraAdGroupTimesMs` - The millisecond timestamps of the extra ad markers to show, or `null` to show no extra ad markers.
        `extraPlayedAdGroups` - Whether each ad has been played. Must be the same length as `extraAdGroupTimesMs`, or `null` if `extraAdGroupTimesMs` is `null`.

    - #### addVisibilityListener

          @Deprecated
          public void addVisibilityListener​(StyledPlayerControlView.VisibilityListener listener)

      Deprecated.
      Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead. Using `StyledPlayerControlView` as a standalone class without `StyledPlayerView` is deprecated.

    - #### removeVisibilityListener

          @Deprecated
          public void removeVisibilityListener​(StyledPlayerControlView.VisibilityListener listener)

      Deprecated.
      Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead. Using `StyledPlayerControlView` as a standalone class without `StyledPlayerView` is deprecated.

    - #### setProgressUpdateListener

          public void setProgressUpdateListener​(@Nullable
                                                StyledPlayerControlView.ProgressUpdateListener listener)

      Sets the `StyledPlayerControlView.ProgressUpdateListener`.
      Parameters:
        `listener` - The listener to be notified about when progress is updated.

    - #### setShowRewindButton

          public void setShowRewindButton​(boolean showRewindButton)

      Sets whether the rewind button is shown.
      Parameters:
        `showRewindButton` - Whether the rewind button is shown.

    - #### setShowFastForwardButton

          public void setShowFastForwardButton​(boolean showFastForwardButton)

      Sets whether the fast forward button is shown.
      Parameters:
        `showFastForwardButton` - Whether the fast forward button is shown.

    - #### setShowPreviousButton

          public void setShowPreviousButton​(boolean showPreviousButton)

      Sets whether the previous button is shown.
      Parameters:
        `showPreviousButton` - Whether the previous button is shown.

    - #### setShowNextButton

          public void setShowNextButton​(boolean showNextButton)

      Sets whether the next button is shown.
      Parameters:
        `showNextButton` - Whether the next button is shown.

    - #### getShowTimeoutMs

          public int getShowTimeoutMs()

      Returns the playback controls timeout. The playback controls are automatically hidden after this duration of time has elapsed without user input.
      Returns:
        The duration in milliseconds. A non-positive value indicates that the controls will remain visible indefinitely.

    - #### setShowTimeoutMs

          public void setShowTimeoutMs​(int showTimeoutMs)

      Sets the playback controls timeout. The playback controls are automatically hidden after this duration of time has elapsed without user input.
      Parameters:
        `showTimeoutMs` - The duration in milliseconds. A non-positive value will cause the controls to remain visible indefinitely.

    - #### getRepeatToggleModes

          @RepeatToggleModes
          public @com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int getRepeatToggleModes()

      Returns which repeat toggle modes are enabled.
      Returns:
        The currently enabled `RepeatModeUtil.RepeatToggleModes`.

    - #### setRepeatToggleModes

          public void setRepeatToggleModes​(@RepeatToggleModes
                                           @com.google.android.exoplayer2.util.RepeatModeUtil.RepeatToggleModes int repeatToggleModes)

      Sets which repeat toggle modes are enabled.
      Parameters:
        `repeatToggleModes` - A set of `RepeatModeUtil.RepeatToggleModes`.

    - #### getShowShuffleButton

          public boolean getShowShuffleButton()

      Returns whether the shuffle button is shown.

    - #### setShowShuffleButton

          public void setShowShuffleButton​(boolean showShuffleButton)

      Sets whether the shuffle button is shown.
      Parameters:
        `showShuffleButton` - Whether the shuffle button is shown.

    - #### getShowSubtitleButton

          public boolean getShowSubtitleButton()

      Returns whether the subtitle button is shown.

    - #### setShowSubtitleButton

          public void setShowSubtitleButton​(boolean showSubtitleButton)

      Sets whether the subtitle button is shown.
      Parameters:
        `showSubtitleButton` - Whether the subtitle button is shown.

    - #### getShowVrButton

          public boolean getShowVrButton()

      Returns whether the VR button is shown.

    - #### setShowVrButton

          public void setShowVrButton​(boolean showVrButton)

      Sets whether the VR button is shown.
      Parameters:
        `showVrButton` - Whether the VR button is shown.

    - #### setVrButtonListener

          public void setVrButtonListener​(@Nullable
                                          View.OnClickListener onClickListener)

      Sets listener for the VR button.
      Parameters:
        `onClickListener` - Listener for the VR button, or null to clear the listener.

    - #### setAnimationEnabled

          public void setAnimationEnabled​(boolean animationEnabled)

      Sets whether an animation is used to show and hide the playback controls.
      Parameters:
        `animationEnabled` - Whether an animation is applied to show and hide playback controls.

    - #### isAnimationEnabled

          public boolean isAnimationEnabled()

      Returns whether an animation is used to show and hide the playback controls.

    - #### setTimeBarMinUpdateInterval

          public void setTimeBarMinUpdateInterval​(int minUpdateIntervalMs)

      Sets the minimum interval between time bar position updates.

      Note that smaller intervals, e.g. 33ms, will result in a smooth movement but will use more CPU resources while the time bar is visible, whereas larger intervals, e.g. 200ms, will result in a step-wise update with less CPU usage.

      Parameters:
        `minUpdateIntervalMs` - The minimum interval between time bar position updates, in milliseconds.

    - #### setOnFullScreenModeChangedListener

          @Deprecated
          public void setOnFullScreenModeChangedListener​(@Nullable
                                                         StyledPlayerControlView.OnFullScreenModeChangedListener listener)

      Deprecated.
      Register a `StyledPlayerView.FullscreenButtonClickListener` via `StyledPlayerView.setFullscreenButtonClickListener(StyledPlayerView.FullscreenButtonClickListener)` instead. Using `StyledPlayerControlView` as a standalone class without `StyledPlayerView` is deprecated.

    - #### show

          public void show()

      Shows the playback controls. If `getShowTimeoutMs()` is positive then the controls will be automatically hidden after this duration of time has elapsed without user input.

    - #### hide

          public void hide()

      Hides the controller.

    - #### hideImmediately

          public void hideImmediately()

      Hides the controller without any animation.

    - #### isFullyVisible

          public boolean isFullyVisible()

      Returns whether the controller is fully visible, which means all UI controls are visible.

    - #### isVisible

          public boolean isVisible()

      Returns whether the controller is currently visible.

    - #### onAttachedToWindow

          public void onAttachedToWindow()

      Overrides:
        `onAttachedToWindow` in class `ViewGroup`

    - #### onDetachedFromWindow

          public void onDetachedFromWindow()

      Overrides:
        `onDetachedFromWindow` in class `ViewGroup`

    - #### dispatchKeyEvent

          public boolean dispatchKeyEvent​(KeyEvent event)

      Overrides:
        `dispatchKeyEvent` in class `ViewGroup`

    - #### dispatchMediaKeyEvent

          public boolean dispatchMediaKeyEvent​(KeyEvent event)

      Called to process media key events. Any `KeyEvent` can be passed but only media key events will be handled.
      Parameters:
        `event` - A key event.
      Returns:
        Whether the key event was handled.

    - #### onLayout

          protected void onLayout​(boolean changed,
                                  int left,
                                  int top,
                                  int right,
                                  int bottom)

      Overrides:
        `onLayout` in class `FrameLayout`