Package com.google.android.exoplayer2.ui

## Class DefaultTimeBar

- java.lang.Object
- - android.view.View
  - - com.google.android.exoplayer2.ui.DefaultTimeBar

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

      public class DefaultTimeBar
      extends View
      implements TimeBar

  A time bar that shows a current position, buffered position, duration and ad markers.

  A DefaultTimeBar can be customized by setting attributes, as outlined below.

  ### Attributes

  The following attributes can be set on a DefaultTimeBar when used in a layout XML file:
  - `bar_height` - Dimension for the height of the time bar.
    - Default: `DEFAULT_BAR_HEIGHT_DP`
  - `touch_target_height` - Dimension for the height of the area in which touch interactions with the time bar are handled. If no height is specified, this also determines the height of the view.
    - Default: `DEFAULT_TOUCH_TARGET_HEIGHT_DP`
  - `ad_marker_width` - Dimension for the width of any ad markers shown on the bar. Ad markers are superimposed on the time bar to show the times at which ads will play.
    - Default: `DEFAULT_AD_MARKER_WIDTH_DP`
  - `scrubber_enabled_size` - Dimension for the diameter of the circular scrubber handle when scrubbing is enabled but not in progress. Set to zero if no scrubber handle should be shown.
    - Default: `DEFAULT_SCRUBBER_ENABLED_SIZE_DP`
  - `scrubber_disabled_size` - Dimension for the diameter of the circular scrubber handle when scrubbing isn't enabled. Set to zero if no scrubber handle should be shown.
    - Default: `DEFAULT_SCRUBBER_DISABLED_SIZE_DP`
  - `scrubber_dragged_size` - Dimension for the diameter of the circular scrubber handle when scrubbing is in progress. Set to zero if no scrubber handle should be shown.
    - Default: `DEFAULT_SCRUBBER_DRAGGED_SIZE_DP`
  - `scrubber_drawable` - Optional reference to a drawable to draw for the scrubber handle. If set, this overrides the default behavior, which is to draw a circle for the scrubber handle.
  - `played_color` - Color for the portion of the time bar representing media before the current playback position.
    - Corresponding method: `setPlayedColor(int)`
    - Default: `DEFAULT_PLAYED_COLOR`
  - `scrubber_color` - Color for the scrubber handle.
    - Corresponding method: `setScrubberColor(int)`
    - Default: `DEFAULT_SCRUBBER_COLOR`
  - `buffered_color` - Color for the portion of the time bar after the current played position up to the current buffered position.
    - Corresponding method: `setBufferedColor(int)`
    - Default: `DEFAULT_BUFFERED_COLOR`
  - `unplayed_color` - Color for the portion of the time bar after the current buffered position.
    - Corresponding method: `setUnplayedColor(int)`
    - Default: `DEFAULT_UNPLAYED_COLOR`
  - `ad_marker_color` - Color for unplayed ad markers.
    - Corresponding method: `setAdMarkerColor(int)`
    - Default: `DEFAULT_AD_MARKER_COLOR`
  - `played_ad_marker_color` - Color for played ad markers.
    - Corresponding method: `setPlayedAdMarkerColor(int)`
    - Default: `DEFAULT_PLAYED_AD_MARKER_COLOR`

- - ### Nested Class Summary

    - ### 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`

    - ### Nested classes/interfaces inherited from interface com.google.android.exoplayer2.ui.TimeBar

      `TimeBar.OnScrubListener`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `BAR_GRAVITY_BOTTOM` | Vertical gravity for progress bar to be located at the bottom in the view.
    `static int` | `BAR_GRAVITY_CENTER` | Vertical gravity for progress bar to be located at the center in the view.
    `static int` | `DEFAULT_AD_MARKER_COLOR` | Default color for ad markers.
    `static int` | `DEFAULT_AD_MARKER_WIDTH_DP` | Default width for ad markers, in dp.
    `static int` | `DEFAULT_BAR_HEIGHT_DP` | Default height for the time bar, in dp.
    `static int` | `DEFAULT_BUFFERED_COLOR` | Default color for the buffered portion of the time bar.
    `static int` | `DEFAULT_PLAYED_AD_MARKER_COLOR` | Default color for played ad markers.
    `static int` | `DEFAULT_PLAYED_COLOR` | Default color for the played portion of the time bar.
    `static int` | `DEFAULT_SCRUBBER_COLOR` | Default color for the scrubber handle.
    `static int` | `DEFAULT_SCRUBBER_DISABLED_SIZE_DP` | Default diameter for the scrubber when disabled, in dp.
    `static int` | `DEFAULT_SCRUBBER_DRAGGED_SIZE_DP` | Default diameter for the scrubber when dragged, in dp.
    `static int` | `DEFAULT_SCRUBBER_ENABLED_SIZE_DP` | Default diameter for the scrubber when enabled, in dp.
    `static int` | `DEFAULT_TOUCH_TARGET_HEIGHT_DP` | Default height for the touch target, in dp.
    `static int` | `DEFAULT_UNPLAYED_COLOR` | Default color for the unplayed portion of the time bar.

    - ### 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_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_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
    --- | ---
    `DefaultTimeBar​(Context context)` |
    `DefaultTimeBar​(Context context, AttributeSet attrs)` |
    `DefaultTimeBar​(Context context, AttributeSet attrs, int defStyleAttr)` |
    `DefaultTimeBar​(Context context, AttributeSet attrs, int defStyleAttr, AttributeSet timebarAttrs)` |
    `DefaultTimeBar​(Context context, AttributeSet attrs, int defStyleAttr, AttributeSet timebarAttrs, int defStyleRes)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(TimeBar.OnScrubListener listener)` | Adds a listener for scrubbing events.
    `protected void` | `drawableStateChanged()` |
    `long` | `getPreferredUpdateDelay()` | Returns the preferred delay in milliseconds of media time after which the time bar position should be updated.
    `void` | `hideScrubber​(boolean disableScrubberPadding)` | Hides the scrubber handle.
    `void` | `hideScrubber​(long hideAnimationDurationMs)` | Hides the scrubber handle with animation.
    `void` | `jumpDrawablesToCurrentState()` |
    `void` | `onDraw​(Canvas canvas)` |
    `protected void` | `onFocusChanged​(boolean gainFocus, int direction, Rect previouslyFocusedRect)` |
    `void` | `onInitializeAccessibilityEvent​(AccessibilityEvent event)` |
    `void` | `onInitializeAccessibilityNodeInfo​(AccessibilityNodeInfo info)` |
    `boolean` | `onKeyDown​(int keyCode, KeyEvent event)` |
    `protected void` | `onLayout​(boolean changed, int left, int top, int right, int bottom)` |
    `protected void` | `onMeasure​(int widthMeasureSpec, int heightMeasureSpec)` |
    `void` | `onRtlPropertiesChanged​(int layoutDirection)` |
    `boolean` | `onTouchEvent​(MotionEvent event)` |
    `boolean` | `performAccessibilityAction​(int action, Bundle args)` |
    `void` | `removeListener​(TimeBar.OnScrubListener listener)` | Removes a listener for scrubbing events.
    `void` | `setAdGroupTimesMs​(long[] adGroupTimesMs, boolean[] playedAdGroups, int adGroupCount)` | Sets the times of ad groups and whether each ad group has been played.
    `void` | `setAdMarkerColor​(int adMarkerColor)` | Sets the color for unplayed ad markers.
    `void` | `setBufferedColor​(int bufferedColor)` | Sets the color for the portion of the time bar after the current played position up to the current buffered position.
    `void` | `setBufferedPosition​(long bufferedPosition)` | Sets the buffered position.
    `void` | `setDuration​(long duration)` | Sets the duration.
    `void` | `setEnabled​(boolean enabled)` |
    `void` | `setKeyCountIncrement​(int count)` | Sets the position increment for key presses and accessibility actions, as a number of increments that divide the duration of the media.
    `void` | `setKeyTimeIncrement​(long time)` | Sets the position increment for key presses and accessibility actions, in milliseconds.
    `void` | `setPlayedAdMarkerColor​(int playedAdMarkerColor)` | Sets the color for played ad markers.
    `void` | `setPlayedColor​(int playedColor)` | Sets the color for the portion of the time bar representing media before the playback position.
    `void` | `setPosition​(long position)` | Sets the current position.
    `void` | `setScrubberColor​(int scrubberColor)` | Sets the color for the scrubber handle.
    `void` | `setUnplayedColor​(int unplayedColor)` | Sets the color for the portion of the time bar after the current played position.
    `void` | `showScrubber()` | Shows the scrubber handle.
    `void` | `showScrubber​(long showAnimationDurationMs)` | Shows the scrubber handle with animation.

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

      `addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addFocusables, addKeyboardNavigationClusters, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, addTouchables, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearFocus, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchGenericFocusedEvent, dispatchGenericMotionEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPointerCaptureChanged, dispatchPopulateAccessibilityEvent, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, draw, drawableHotspotChanged, findFocus, findViewById, findViewsWithText, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityClassName, 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, getOverlay, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, 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, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocus, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasTransientState, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, 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, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, layout, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onAttachedToWindow, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateDrawableState, onCreateInputConnection, onDetachedFromWindow, onDisplayHint, onDragEvent, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onGenericMotionEvent, onHoverChanged, onHoverEvent, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onResolvePointerIcon, onRestoreInstanceState, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreDefaultFocus, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, 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, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, 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, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setWindowInsetsAnimationCallback, 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`

- - ### Field Detail

    - #### DEFAULT_BAR_HEIGHT_DP

          public static final int DEFAULT_BAR_HEIGHT_DP

      Default height for the time bar, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_TOUCH_TARGET_HEIGHT_DP

          public static final int DEFAULT_TOUCH_TARGET_HEIGHT_DP

      Default height for the touch target, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_AD_MARKER_WIDTH_DP

          public static final int DEFAULT_AD_MARKER_WIDTH_DP

      Default width for ad markers, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_SCRUBBER_ENABLED_SIZE_DP

          public static final int DEFAULT_SCRUBBER_ENABLED_SIZE_DP

      Default diameter for the scrubber when enabled, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_SCRUBBER_DISABLED_SIZE_DP

          public static final int DEFAULT_SCRUBBER_DISABLED_SIZE_DP

      Default diameter for the scrubber when disabled, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_SCRUBBER_DRAGGED_SIZE_DP

          public static final int DEFAULT_SCRUBBER_DRAGGED_SIZE_DP

      Default diameter for the scrubber when dragged, in dp.
      See Also:
        Constant Field Values

    - #### DEFAULT_PLAYED_COLOR

          public static final int DEFAULT_PLAYED_COLOR

      Default color for the played portion of the time bar.
      See Also:
        Constant Field Values

    - #### DEFAULT_UNPLAYED_COLOR

          public static final int DEFAULT_UNPLAYED_COLOR

      Default color for the unplayed portion of the time bar.
      See Also:
        Constant Field Values

    - #### DEFAULT_BUFFERED_COLOR

          public static final int DEFAULT_BUFFERED_COLOR

      Default color for the buffered portion of the time bar.
      See Also:
        Constant Field Values

    - #### DEFAULT_SCRUBBER_COLOR

          public static final int DEFAULT_SCRUBBER_COLOR

      Default color for the scrubber handle.
      See Also:
        Constant Field Values

    - #### DEFAULT_AD_MARKER_COLOR

          public static final int DEFAULT_AD_MARKER_COLOR

      Default color for ad markers.
      See Also:
        Constant Field Values

    - #### DEFAULT_PLAYED_AD_MARKER_COLOR

          public static final int DEFAULT_PLAYED_AD_MARKER_COLOR

      Default color for played ad markers.
      See Also:
        Constant Field Values

    - #### BAR_GRAVITY_CENTER

          public static final int BAR_GRAVITY_CENTER

      Vertical gravity for progress bar to be located at the center in the view.
      See Also:
        Constant Field Values

    - #### BAR_GRAVITY_BOTTOM

          public static final int BAR_GRAVITY_BOTTOM

      Vertical gravity for progress bar to be located at the bottom in the view.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DefaultTimeBar

          public DefaultTimeBar​(Context context)

    - #### DefaultTimeBar

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

    - #### DefaultTimeBar

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

    - #### DefaultTimeBar

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

    - #### DefaultTimeBar

          public DefaultTimeBar​(Context context,
                                @Nullable
                                AttributeSet attrs,
                                int defStyleAttr,
                                @Nullable
                                AttributeSet timebarAttrs,
                                int defStyleRes)

  - ### Method Detail

    - #### showScrubber

          public void showScrubber()

      Shows the scrubber handle.

    - #### showScrubber

          public void showScrubber​(long showAnimationDurationMs)

      Shows the scrubber handle with animation.
      Parameters:
        `showAnimationDurationMs` - The duration for scrubber showing animation.

    - #### hideScrubber

          public void hideScrubber​(boolean disableScrubberPadding)

      Hides the scrubber handle.

    - #### hideScrubber

          public void hideScrubber​(long hideAnimationDurationMs)

      Hides the scrubber handle with animation.
      Parameters:
        `hideAnimationDurationMs` - The duration for scrubber hiding animation.

    - #### setPlayedColor

          public void setPlayedColor​(int playedColor)

      Sets the color for the portion of the time bar representing media before the playback position.
      Parameters:
        `playedColor` - The color for the portion of the time bar representing media before the playback position.

    - #### setScrubberColor

          public void setScrubberColor​(int scrubberColor)

      Sets the color for the scrubber handle.
      Parameters:
        `scrubberColor` - The color for the scrubber handle.

    - #### setBufferedColor

          public void setBufferedColor​(int bufferedColor)

      Sets the color for the portion of the time bar after the current played position up to the current buffered position.
      Parameters:
        `bufferedColor` - The color for the portion of the time bar after the current played position up to the current buffered position.

    - #### setUnplayedColor

          public void setUnplayedColor​(int unplayedColor)

      Sets the color for the portion of the time bar after the current played position.
      Parameters:
        `unplayedColor` - The color for the portion of the time bar after the current played position.

    - #### setAdMarkerColor

          public void setAdMarkerColor​(int adMarkerColor)

      Sets the color for unplayed ad markers.
      Parameters:
        `adMarkerColor` - The color for unplayed ad markers.

    - #### setPlayedAdMarkerColor

          public void setPlayedAdMarkerColor​(int playedAdMarkerColor)

      Sets the color for played ad markers.
      Parameters:
        `playedAdMarkerColor` - The color for played ad markers.

    - #### addListener

          public void addListener​(TimeBar.OnScrubListener listener)

      Description copied from interface: `TimeBar`
      Adds a listener for scrubbing events.
      Specified by:
        `addListener` in interface `TimeBar`
      Parameters:
        `listener` - The listener to add.

    - #### removeListener

          public void removeListener​(TimeBar.OnScrubListener listener)

      Description copied from interface: `TimeBar`
      Removes a listener for scrubbing events.
      Specified by:
        `removeListener` in interface `TimeBar`
      Parameters:
        `listener` - The listener to remove.

    - #### setKeyTimeIncrement

          public void setKeyTimeIncrement​(long time)

      Description copied from interface: `TimeBar`
      Sets the position increment for key presses and accessibility actions, in milliseconds.

      Clears any increment specified in a preceding call to `TimeBar.setKeyCountIncrement(int)`.

      Specified by:
        `setKeyTimeIncrement` in interface `TimeBar`
      Parameters:
        `time` - The time increment, in milliseconds.

    - #### setKeyCountIncrement

          public void setKeyCountIncrement​(int count)

      Description copied from interface: `TimeBar`
      Sets the position increment for key presses and accessibility actions, as a number of increments that divide the duration of the media. For example, passing 20 will cause key presses to increment/decrement the position by 1/20th of the duration (if known).

      Clears any increment specified in a preceding call to `TimeBar.setKeyTimeIncrement(long)`.

      Specified by:
        `setKeyCountIncrement` in interface `TimeBar`
      Parameters:
        `count` - The number of increments that divide the duration of the media.

    - #### setPosition

          public void setPosition​(long position)

      Description copied from interface: `TimeBar`
      Sets the current position.
      Specified by:
        `setPosition` in interface `TimeBar`
      Parameters:
        `position` - The current position to show, in milliseconds.

    - #### setBufferedPosition

          public void setBufferedPosition​(long bufferedPosition)

      Description copied from interface: `TimeBar`
      Sets the buffered position.
      Specified by:
        `setBufferedPosition` in interface `TimeBar`
      Parameters:
        `bufferedPosition` - The current buffered position to show, in milliseconds.

    - #### setDuration

          public void setDuration​(long duration)

      Description copied from interface: `TimeBar`
      Sets the duration.
      Specified by:
        `setDuration` in interface `TimeBar`
      Parameters:
        `duration` - The duration to show, in milliseconds.

    - #### getPreferredUpdateDelay

          public long getPreferredUpdateDelay()

      Description copied from interface: `TimeBar`
      Returns the preferred delay in milliseconds of media time after which the time bar position should be updated.
      Specified by:
        `getPreferredUpdateDelay` in interface `TimeBar`
      Returns:
        Preferred delay, in milliseconds of media time.

    - #### setAdGroupTimesMs

          public void setAdGroupTimesMs​(@Nullable
                                        long[] adGroupTimesMs,
                                        @Nullable
                                        boolean[] playedAdGroups,
                                        int adGroupCount)

      Description copied from interface: `TimeBar`
      Sets the times of ad groups and whether each ad group has been played.
      Specified by:
        `setAdGroupTimesMs` in interface `TimeBar`
      Parameters:
        `adGroupTimesMs` - An array where the first `adGroupCount` elements are the times of ad groups in milliseconds. May be `null` if there are no ad groups.
        `playedAdGroups` - An array where the first `adGroupCount` elements indicate whether the corresponding ad groups have been played. May be `null` if there are no ad groups.
        `adGroupCount` - The number of ad groups.

    - #### setEnabled

          public void setEnabled​(boolean enabled)

      Specified by:
        `setEnabled` in interface `TimeBar`
      Overrides:
        `setEnabled` in class `View`
      See Also:
        `View.isEnabled()`

    - #### onDraw

          public void onDraw​(Canvas canvas)

      Overrides:
        `onDraw` in class `View`

    - #### onTouchEvent

          public boolean onTouchEvent​(MotionEvent event)

      Overrides:
        `onTouchEvent` in class `View`

    - #### onKeyDown

          public boolean onKeyDown​(int keyCode,
                                   KeyEvent event)

      Specified by:
        `onKeyDown` in interface `KeyEvent.Callback`
      Overrides:
        `onKeyDown` in class `View`

    - #### onFocusChanged

          protected void onFocusChanged​(boolean gainFocus,
                                        int direction,
                                        @Nullable
                                        Rect previouslyFocusedRect)

      Overrides:
        `onFocusChanged` in class `View`

    - #### drawableStateChanged

          protected void drawableStateChanged()

      Overrides:
        `drawableStateChanged` in class `View`

    - #### jumpDrawablesToCurrentState

          public void jumpDrawablesToCurrentState()

      Overrides:
        `jumpDrawablesToCurrentState` in class `View`

    - #### onMeasure

          protected void onMeasure​(int widthMeasureSpec,
                                   int heightMeasureSpec)

      Overrides:
        `onMeasure` in class `View`

    - #### onLayout

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

      Overrides:
        `onLayout` in class `View`

    - #### onRtlPropertiesChanged

          public void onRtlPropertiesChanged​(int layoutDirection)

      Overrides:
        `onRtlPropertiesChanged` in class `View`

    - #### onInitializeAccessibilityEvent

          public void onInitializeAccessibilityEvent​(AccessibilityEvent event)

      Overrides:
        `onInitializeAccessibilityEvent` in class `View`

    - #### onInitializeAccessibilityNodeInfo

          public void onInitializeAccessibilityNodeInfo​(AccessibilityNodeInfo info)

      Overrides:
        `onInitializeAccessibilityNodeInfo` in class `View`

    - #### performAccessibilityAction

          public boolean performAccessibilityAction​(int action,
                                                    @Nullable
                                                    Bundle args)

      Overrides:
        `performAccessibilityAction` in class `View`