Package com.castlabs.sdk.debug.view

# Class PlayerMetricChart

java.lang.Object
android.view.View
android.view.ViewGroup
com.github.mikephil.charting.charts.Chart<com.github.mikephil.charting.data.LineData>
com.github.mikephil.charting.charts.BarLineChartBase<com.github.mikephil.charting.data.LineData>
com.github.mikephil.charting.charts.LineChart
com.castlabs.sdk.debug.view.PlayerMetricChart

All Implemented Interfaces:
  `Drawable.Callback`, `AccessibilityEventSource`, `KeyEvent.Callback`, `ViewManager`, `ViewParent`, `Metric.Plotter`, `PlayerChart`, `com.github.mikephil.charting.interfaces.dataprovider.BarLineScatterCandleBubbleDataProvider`, `com.github.mikephil.charting.interfaces.dataprovider.ChartInterface`, `com.github.mikephil.charting.interfaces.dataprovider.LineDataProvider`

public class PlayerMetricChart extends com.github.mikephil.charting.charts.LineChart implements PlayerChart, Metric.Plotter
Chart that shows line graph displaying one or more `Metric`s.

By default no metrics are shown, so you should call `enableMetrics(int)` with the desired `PlayerMetricChart.MetricType`s. You can also add metrics to plot with the `addMetric(Metric)` method.

*NOTE* that you must set the metrics before calling `setPlayerController(PlayerController)`

Since:
  4.2.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static @interface`
  `PlayerMetricChart.MetricType`
  Defines the type of metric to be displayed in the chart.

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

  `ViewGroup.LayoutParams, 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 final long`
  `DEFAULT_MAXIMUM_DATA_AGE_MS`
  Maximum age data in this Chart will be kept
  `static final long`
  `DEFAULT_RENDER_UPDATE_INTERVAL_MS`
  Period between Chart updates
  `static final int`
  `METRIC_ABR_BANDWIDTH_ESTIMATION`
  Adds a `BandwidthMetric`
  `static final int`
  `METRIC_ABR_PLAYING_QUALITY`
  Adds a `PlayingQualityMetric`
  `static final int`
  `METRIC_ABR_SELECTED_QUALITY`
  Adds a `SelectedQualityMetric`
  `static final int`
  `METRIC_BUFFER_AHEAD`
  Adds a `BufferAheadMetric`
  `static final int`
  `METRIC_BUFFER_BEHIND`
  Adds a `BufferBehindMetric`
  `static final int`
  `METRIC_CHUNK_AUDIO_DOWNLOAD_TIME`
  Adds a `ChunkDownloadTimeMetric` with `ChunkDownloadTimeMetric.MODE_AUDIO`
  `static final int`
  `METRIC_CHUNK_VIDEO_DOWNLOAD_TIME`
  Adds a `ChunkDownloadTimeMetric` with `ChunkDownloadTimeMetric.MODE_VIDEO`
  `static final int`
  `METRIC_RATE_LIMIT`
  Adds a `RateLimitMetric`

  ### Fields inherited from class com.github.mikephil.charting.charts.Chart

  `LOG_TAG, PAINT_CENTER_TEXT, PAINT_DESCRIPTION, PAINT_GRID_BACKGROUND, PAINT_HOLE, PAINT_INFO, PAINT_LEGEND_LABEL`

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

  `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_DATA_SENSITIVE_AUTO, ACCESSIBILITY_DATA_SENSITIVE_NO, ACCESSIBILITY_DATA_SENSITIVE_YES, 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, CONTENT_SENSITIVITY_AUTO, CONTENT_SENSITIVITY_NOT_SENSITIVE, CONTENT_SENSITIVITY_SENSITIVE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_SAME_APPLICATION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, 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, 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, REQUESTED_FRAME_RATE_CATEGORY_DEFAULT, REQUESTED_FRAME_RATE_CATEGORY_HIGH, REQUESTED_FRAME_RATE_CATEGORY_LOW, REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE, REQUESTED_FRAME_RATE_CATEGORY_NORMAL, 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, 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, VISIBLE, X, Y, Z`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PlayerMetricChart(Context context)`
  Creates a new PlayerMetricChart.
  `PlayerMetricChart(Context context, AttributeSet attrs)`
  Creates a new PlayerMetricChart.
  `PlayerMetricChart(Context context, AttributeSet attrs, int defStyle)`
  Creates a new PlayerMetricChart.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addMetric(Metric metric)`
  Adds a `Metric` to be drawn in this Chart.
  `void`
  `enableMetrics(int metrics)`
  Enables the specified Metrics.
  `long`
  `getMaximumDataAgeMs()`
  Maximum time data should be kept.
  `boolean`
  `isMetricEnabled(int metric)`
  Whether a certain Metric is enabled or not
  `void`
  `requestPlot(Metric metric)`
  The metric needs to be redrawn.
  `void`
  `setMaximumDataAgeMs(long maximumDataAgeMs)`
  How much time the data should be kept and drawn.
  `void`
  `setPlayerController(PlayerController playerController)`
  Sets the player controller to which to bind and extract data from.
  `void`
  `setRenderUpdateInterval(int renderUpdateInterval)`
  Adjust how often the View is redrawn
  `void`
  `showQualities()`
  Enables Video qualities plotting.
  `void`
  `showQualitiesAxis(com.github.mikephil.charting.components.YAxis.AxisDependency axisDependency)`
  Enables Video qualities plotting.
  `void`
  `unsetPlayerController()`
  Performs all the necessary cleanup and removes the previously set listeners (if any).

  ### Methods inherited from class com.github.mikephil.charting.charts.LineChart

  `getLineData`

  ### Methods inherited from class com.github.mikephil.charting.charts.BarLineChartBase

  `calculateOffsets, centerViewTo, centerViewToAnimated, centerViewToY, computeScroll, fitScreen, getAxis, getAxisLeft, getAxisRight, getDataSetByTouchPoint, getDrawListener, getEntryByTouchPoint, getHighestVisibleX, getLowestVisibleX, getMaxVisibleCount, getMinOffset, getPaint, getPixelForValues, getPosition, getRendererLeftYAxis, getRendererRightYAxis, getRendererXAxis, getScaleX, getScaleY, getTransformer, getValuesByTouchPoint, getValuesByTouchPoint, getVisibleXRange, getYChartMax, getYChartMin, hasNoDragOffset, isAnyAxisInverted, isAutoScaleMinMaxEnabled, isClipValuesToContentEnabled, isDoubleTapToZoomEnabled, isDragEnabled, isDragXEnabled, isDragYEnabled, isDrawBordersEnabled, isFullyZoomedOut, isHighlightPerDragEnabled, isInverted, isKeepPositionOnRotation, isPinchZoomEnabled, isScaleXEnabled, isScaleYEnabled, moveViewTo, moveViewToAnimated, moveViewToX, notifyDataSetChanged, onTouchEvent, resetTracking, resetViewPortOffsets, resetZoom, setAutoScaleMinMaxEnabled, setBorderColor, setBorderWidth, setClipValuesToContent, setDoubleTapToZoomEnabled, setDragEnabled, setDragOffsetX, setDragOffsetY, setDragXEnabled, setDragYEnabled, setDrawBorders, setDrawGridBackground, setGridBackgroundColor, setHighlightPerDragEnabled, setKeepPositionOnRotation, setMaxVisibleValueCount, setMinOffset, setOnDrawListener, setPaint, setPinchZoom, setRendererLeftYAxis, setRendererRightYAxis, setScaleEnabled, setScaleMinima, setScaleXEnabled, setScaleYEnabled, setViewPortOffsets, setVisibleXRange, setVisibleXRangeMaximum, setVisibleXRangeMinimum, setVisibleYRange, setVisibleYRangeMaximum, setVisibleYRangeMinimum, setXAxisRenderer, zoom, zoom, zoomAndCenterAnimated, zoomIn, zoomOut, zoomToCenter`

  ### Methods inherited from class com.github.mikephil.charting.charts.Chart

  `addViewportJob, animateX, animateX, animateX, animateXY, animateXY, animateXY, animateY, animateY, animateY, clear, clearAllViewportJobs, clearValues, disableScroll, enableScroll, getAnimator, getCenter, getCenterOffsets, getCenterOfView, getChartBitmap, getContentRect, getData, getDefaultValueFormatter, getDescription, getDragDecelerationFrictionCoef, getExtraBottomOffset, getExtraLeftOffset, getExtraRightOffset, getExtraTopOffset, getHighlightByTouchPoint, getHighlighted, getHighlighter, getJobs, getLegend, getLegendRenderer, getMarker, getMarkerView, getMaxHighlightDistance, getOnChartGestureListener, getOnTouchListener, getRenderer, getViewPortHandler, getXAxis, getXChartMax, getXChartMin, getXRange, getYMax, getYMin, highlightValue, highlightValue, highlightValue, highlightValue, highlightValue, highlightValue, highlightValues, isDragDecelerationEnabled, isDrawMarkersEnabled, isDrawMarkerViewsEnabled, isEmpty, isHighlightPerTapEnabled, isLogEnabled, removeViewportJob, saveToGallery, saveToGallery, saveToPath, setData, setDescription, setDragDecelerationEnabled, setDragDecelerationFrictionCoef, setDrawMarkers, setDrawMarkerViews, setExtraBottomOffset, setExtraLeftOffset, setExtraOffsets, setExtraRightOffset, setExtraTopOffset, setHardwareAccelerationEnabled, setHighlighter, setHighlightPerTapEnabled, setLogEnabled, setMarker, setMarkerView, setMaxHighlightDistance, setNoDataText, setNoDataTextColor, setNoDataTextTypeface, setOnChartGestureListener, setOnChartValueSelectedListener, setOnTouchListener, setRenderer, setTouchEnabled, setUnbindEnabled, valuesToHighlight`

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

  `addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, bringChildToFront, childDrawableStateChanged, childHasTransientStateChanged, clearChildFocus, clearDisappearingChildren, clearFocus, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, endViewTransition, findFocus, findOnBackInvokedDispatcherForChild, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, generateLayoutParams, getAccessibilityClassName, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, shouldDelayChildPressedState, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout`

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

  `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearPendingCredentialRequest, clearViewTranslationCallback, combineMeasuredStates, computeSystemWindowInsets, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findOnBackInvokedDispatcher, findViewById, findViewWithTag, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAllowedHandwritingDelegatePackageName, getAllowedHandwritingDelegatorPackageName, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContentSensitivity, getContext, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getFrameContentVelocity, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHandwritingBoundsOffsetBottom, getHandwritingBoundsOffsetLeft, getHandwritingBoundsOffsetRight, getHandwritingBoundsOffsetTop, getHandwritingDelegateFlags, getHandwritingDelegatorCallback, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, 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, getPendingCredentialCallback, getPendingCredentialRequest, getPivotX, getPivotY, getPointerIcon, getPreferKeepClearRects, getReceiveContentMimeTypes, getRequestedFrameRate, getResources, getRevealOnFocusHint, getRight, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityDataSensitive, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isAutoHandwritingEnabled, isClickable, isContentSensitive, isContextClickable, isCredential, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHandwritingDelegate, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingRelative, isPivotSet, isPreferKeepClear, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, offsetLeftAndRight, offsetTopAndBottom, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDragEvent, onDrawForeground, onFilterTouchEventForSecurity, onFinishTemporaryDetach, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRtlPropertiesChanged, onScreenStateChanged, onScrollCaptureSearch, onStartTemporaryDetach, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, 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, setAccessibilityDataSensitive, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAllowedHandwritingDelegatePackage, setAllowedHandwritingDelegatorPackage, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setAutoHandwritingEnabled, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContentSensitivity, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setFrameContentVelocity, setHandwritingBoundsOffsets, setHandwritingDelegateFlags, setHandwritingDelegatorCallback, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setIsCredential, setIsHandwritingDelegate, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, 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, setPendingCredentialRequest, setPivotX, setPivotY, setPointerIcon, setPreferKeepClear, setPreferKeepClearRects, setPressed, setRenderEffect, setRequestedFrameRate, 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, willNotCacheDrawing, willNotDraw`

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

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

  ### Methods inherited from interface com.github.mikephil.charting.interfaces.dataprovider.BarLineScatterCandleBubbleDataProvider

  `getData, getHighestVisibleX, getLowestVisibleX, getTransformer, isInverted`

  ### Methods inherited from interface com.github.mikephil.charting.interfaces.dataprovider.ChartInterface

  `getCenterOffsets, getCenterOfView, getContentRect, getDefaultValueFormatter, getHeight, getMaxHighlightDistance, getMaxVisibleCount, getWidth, getXChartMax, getXChartMin, getXRange, getYChartMax, getYChartMin`

  ### Methods inherited from interface com.github.mikephil.charting.interfaces.dataprovider.LineDataProvider

  `getAxis`

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

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

- ## Field Details

  - ### METRIC_BUFFER_AHEAD

    public static final int METRIC_BUFFER_AHEAD
    Adds a `BufferAheadMetric`
    See Also:
      - Constant Field Values

  - ### METRIC_BUFFER_BEHIND

    public static final int METRIC_BUFFER_BEHIND
    Adds a `BufferBehindMetric`
    See Also:
      - Constant Field Values

  - ### METRIC_CHUNK_VIDEO_DOWNLOAD_TIME

    public static final int METRIC_CHUNK_VIDEO_DOWNLOAD_TIME
    Adds a `ChunkDownloadTimeMetric` with `ChunkDownloadTimeMetric.MODE_VIDEO`
    See Also:
      - Constant Field Values

  - ### METRIC_CHUNK_AUDIO_DOWNLOAD_TIME

    public static final int METRIC_CHUNK_AUDIO_DOWNLOAD_TIME
    Adds a `ChunkDownloadTimeMetric` with `ChunkDownloadTimeMetric.MODE_AUDIO`
    See Also:
      - Constant Field Values

  - ### METRIC_ABR_BANDWIDTH_ESTIMATION

    public static final int METRIC_ABR_BANDWIDTH_ESTIMATION
    Adds a `BandwidthMetric`
    See Also:
      - Constant Field Values

  - ### METRIC_ABR_PLAYING_QUALITY

    public static final int METRIC_ABR_PLAYING_QUALITY
    Adds a `PlayingQualityMetric`
    See Also:
      - Constant Field Values

  - ### METRIC_ABR_SELECTED_QUALITY

    public static final int METRIC_ABR_SELECTED_QUALITY
    Adds a `SelectedQualityMetric`
    See Also:
      - Constant Field Values

  - ### METRIC_RATE_LIMIT

    public static final int METRIC_RATE_LIMIT
    Adds a `RateLimitMetric`
    See Also:
      - Constant Field Values

  - ### DEFAULT_MAXIMUM_DATA_AGE_MS

    public static final long DEFAULT_MAXIMUM_DATA_AGE_MS
    Maximum age data in this Chart will be kept
    See Also:
      - Constant Field Values

  - ### DEFAULT_RENDER_UPDATE_INTERVAL_MS

    public static final long DEFAULT_RENDER_UPDATE_INTERVAL_MS
    Period between Chart updates
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### PlayerMetricChart

    public PlayerMetricChart(Context context)
    Creates a new PlayerMetricChart.
    Parameters:
      `context` - The context to use.

  - ### PlayerMetricChart

    public PlayerMetricChart(Context context, AttributeSet attrs)
    Creates a new PlayerMetricChart.
    Parameters:
      `context` - The context to use.
      `attrs` - The attributes to use.

  - ### PlayerMetricChart

    public PlayerMetricChart(Context context, AttributeSet attrs, int defStyle)
    Creates a new PlayerMetricChart.
    Parameters:
      `context` - The context to use.
      `attrs` - The attributes to use.
      `defStyle` - The default style to use.

- ## Method Details

  - ### enableMetrics

    public void enableMetrics(int metrics)
    Enables the specified Metrics. Should be one or more of `PlayerMetricChart.MetricType`
    Parameters:
      `metrics` - Metrics to enable

  - ### isMetricEnabled

    public boolean isMetricEnabled(int metric)
    Whether a certain Metric is enabled or not
    Parameters:
      `metric` - the Metric to test
    Returns:
      whether the provided Metric is enabled or not

  - ### setRenderUpdateInterval

    public void setRenderUpdateInterval(int renderUpdateInterval)
    Adjust how often the View is redrawn
    Parameters:
      `renderUpdateInterval` - period between updates in milliseconds

  - ### showQualities

    public void showQualities()
    Enables Video qualities plotting. Same as calling `showQualitiesAxis(YAxis.AxisDependency)` with `YAxis.AxisDependency.LEFT`.

  - ### showQualitiesAxis

    public void showQualitiesAxis(@Nullable com.github.mikephil.charting.components.YAxis.AxisDependency axisDependency)
    Enables Video qualities plotting. This will overlay the video qualities as horizontal lines bound to the specified axis.
    Parameters:
      `axisDependency` - axis which to bound the qualities to.

  - ### addMetric

    public void addMetric(Metric metric)
    Adds a `Metric` to be drawn in this Chart.
    Parameters:
      `metric` - Metric to add

  - ### setPlayerController

    public void setPlayerController(@NonNull PlayerController playerController)
    Description copied from interface: `PlayerChart`
    Sets the player controller to which to bind and extract data from.
    Specified by:
      `setPlayerController` in interface `PlayerChart`
    Parameters:
      `playerController` - PlayerController where to get the data from.

  - ### unsetPlayerController

    public void unsetPlayerController()
    Description copied from interface: `PlayerChart`
    Performs all the necessary cleanup and removes the previously set listeners (if any).
    Specified by:
      `unsetPlayerController` in interface `PlayerChart`

  - ### requestPlot

    public void requestPlot(Metric metric)
    Description copied from interface: `Metric.Plotter`
    The metric needs to be redrawn. Probably due to data change
    Specified by:
      `requestPlot` in interface `Metric.Plotter`
    Parameters:
      `metric` - Metric to draw

  - ### getMaximumDataAgeMs

    public long getMaximumDataAgeMs()
    Description copied from interface: `Metric.Plotter`
    Maximum time data should be kept. Used to remove old data points.
    Specified by:
      `getMaximumDataAgeMs` in interface `Metric.Plotter`
    Returns:
      time data should be kept

  - ### setMaximumDataAgeMs

    public void setMaximumDataAgeMs(long maximumDataAgeMs)
    How much time the data should be kept and drawn.
    Parameters:
      `maximumDataAgeMs` - Maximum data age in milliseconds