Commit 3e819d08 by olly Committed by Oliver Woodman

Make javadoc valid html5

As of [JDK-8247957](https://bugs.openjdk.java.net/browse/JDK-8247957), doclint
no longer supports html4.

Tested:
    Some test failures are present, but the CL author has decided to mail the change anyway
PiperOrigin-RevId: 378819179
parent 3a519b53
...@@ -38,7 +38,7 @@ import java.util.List; ...@@ -38,7 +38,7 @@ import java.util.List;
* format being constructed. For information about different types of format, see ExoPlayer's <a * format being constructed. For information about different types of format, see ExoPlayer's <a
* href="https://exoplayer.dev/supported-formats.html">Supported formats page</a>. * href="https://exoplayer.dev/supported-formats.html">Supported formats page</a>.
* *
* <h3>Fields commonly relevant to all formats</h3> * <h2>Fields commonly relevant to all formats</h2>
* *
* <ul> * <ul>
* <li>{@link #id} * <li>{@link #id}
...@@ -52,7 +52,7 @@ import java.util.List; ...@@ -52,7 +52,7 @@ import java.util.List;
* <li>{@link #metadata} * <li>{@link #metadata}
* </ul> * </ul>
* *
* <h3 id="container-formats">Fields relevant to container formats</h3> * <h2 id="container-formats">Fields relevant to container formats</h2>
* *
* <ul> * <ul>
* <li>{@link #containerMimeType} * <li>{@link #containerMimeType}
...@@ -65,7 +65,7 @@ import java.util.List; ...@@ -65,7 +65,7 @@ import java.util.List;
* href="#audio-formats">audio</a> and <a href="#text-formats">text</a> formats. * href="#audio-formats">audio</a> and <a href="#text-formats">text</a> formats.
* </ul> * </ul>
* *
* <h3 id="sample-formats">Fields relevant to sample formats</h3> * <h2 id="sample-formats">Fields relevant to sample formats</h2>
* *
* <ul> * <ul>
* <li>{@link #sampleMimeType} * <li>{@link #sampleMimeType}
...@@ -78,7 +78,7 @@ import java.util.List; ...@@ -78,7 +78,7 @@ import java.util.List;
* href="#text-formats">text</a> formats. * href="#text-formats">text</a> formats.
* </ul> * </ul>
* *
* <h3 id="video-formats">Fields relevant to video formats</h3> * <h2 id="video-formats">Fields relevant to video formats</h2>
* *
* <ul> * <ul>
* <li>{@link #width} * <li>{@link #width}
...@@ -91,7 +91,7 @@ import java.util.List; ...@@ -91,7 +91,7 @@ import java.util.List;
* <li>{@link #colorInfo} * <li>{@link #colorInfo}
* </ul> * </ul>
* *
* <h3 id="audio-formats">Fields relevant to audio formats</h3> * <h2 id="audio-formats">Fields relevant to audio formats</h2>
* *
* <ul> * <ul>
* <li>{@link #channelCount} * <li>{@link #channelCount}
...@@ -101,7 +101,7 @@ import java.util.List; ...@@ -101,7 +101,7 @@ import java.util.List;
* <li>{@link #encoderPadding} * <li>{@link #encoderPadding}
* </ul> * </ul>
* *
* <h3 id="text-formats">Fields relevant to text formats</h3> * <h2 id="text-formats">Fields relevant to text formats</h2>
* *
* <ul> * <ul>
* <li>{@link #accessibilityChannel} * <li>{@link #accessibilityChannel}
......
...@@ -58,7 +58,7 @@ import java.util.List; ...@@ -58,7 +58,7 @@ import java.util.List;
* *
* <p>The following examples illustrate timelines for various use cases. * <p>The following examples illustrate timelines for various use cases.
* *
* <h3 id="single-file">Single media file or on-demand stream</h3> * <h2 id="single-file">Single media file or on-demand stream</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-single-file.svg" alt="Example timeline for a * <p style="align:center"><img src="doc-files/timeline-single-file.svg" alt="Example timeline for a
* single file"> * single file">
...@@ -68,7 +68,7 @@ import java.util.List; ...@@ -68,7 +68,7 @@ import java.util.List;
* playback. The window's default position is typically at the start of the period (indicated by the * playback. The window's default position is typically at the start of the period (indicated by the
* black dot in the figure above). * black dot in the figure above).
* *
* <h3>Playlist of media files or on-demand streams</h3> * <h2>Playlist of media files or on-demand streams</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-playlist.svg" alt="Example timeline for a * <p style="align:center"><img src="doc-files/timeline-playlist.svg" alt="Example timeline for a
* playlist of files"> * playlist of files">
...@@ -79,7 +79,7 @@ import java.util.List; ...@@ -79,7 +79,7 @@ import java.util.List;
* (e.g. their durations and whether the window is seekable) will often only become known when the * (e.g. their durations and whether the window is seekable) will often only become known when the
* player starts buffering the corresponding file or stream. * player starts buffering the corresponding file or stream.
* *
* <h3 id="live-limited">Live stream with limited availability</h3> * <h2 id="live-limited">Live stream with limited availability</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-live-limited.svg" alt="Example timeline for * <p style="align:center"><img src="doc-files/timeline-live-limited.svg" alt="Example timeline for
* a live stream with limited availability"> * a live stream with limited availability">
...@@ -92,7 +92,7 @@ import java.util.List; ...@@ -92,7 +92,7 @@ import java.util.List;
* changes to the live window. Its default position is typically near to the live edge (indicated by * changes to the live window. Its default position is typically near to the live edge (indicated by
* the black dot in the figure above). * the black dot in the figure above).
* *
* <h3>Live stream with indefinite availability</h3> * <h2>Live stream with indefinite availability</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-live-indefinite.svg" alt="Example timeline * <p style="align:center"><img src="doc-files/timeline-live-indefinite.svg" alt="Example timeline
* for a live stream with indefinite availability"> * for a live stream with indefinite availability">
...@@ -102,7 +102,7 @@ import java.util.List; ...@@ -102,7 +102,7 @@ import java.util.List;
* starts at the beginning of the period to indicate that all of the previously broadcast content * starts at the beginning of the period to indicate that all of the previously broadcast content
* can still be played. * can still be played.
* *
* <h3 id="live-multi-period">Live stream with multiple periods</h3> * <h2 id="live-multi-period">Live stream with multiple periods</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-live-multi-period.svg" alt="Example timeline * <p style="align:center"><img src="doc-files/timeline-live-multi-period.svg" alt="Example timeline
* for a live stream with multiple periods"> * for a live stream with multiple periods">
...@@ -112,7 +112,7 @@ import java.util.List; ...@@ -112,7 +112,7 @@ import java.util.List;
* limited availability</a> case, except that the window may span more than one period. Multiple * limited availability</a> case, except that the window may span more than one period. Multiple
* periods are also possible in the indefinite availability case. * periods are also possible in the indefinite availability case.
* *
* <h3>On-demand stream followed by live stream</h3> * <h2>On-demand stream followed by live stream</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-advanced.svg" alt="Example timeline for an * <p style="align:center"><img src="doc-files/timeline-advanced.svg" alt="Example timeline for an
* on-demand stream followed by a live stream"> * on-demand stream followed by a live stream">
...@@ -122,7 +122,7 @@ import java.util.List; ...@@ -122,7 +122,7 @@ import java.util.List;
* of the on-demand stream ends, playback of the live stream will start from its default position * of the on-demand stream ends, playback of the live stream will start from its default position
* near the live edge. * near the live edge.
* *
* <h3 id="single-file-midrolls">On-demand stream with mid-roll ads</h3> * <h2 id="single-file-midrolls">On-demand stream with mid-roll ads</h2>
* *
* <p style="align:center"><img src="doc-files/timeline-single-file-midrolls.svg" alt="Example * <p style="align:center"><img src="doc-files/timeline-single-file-midrolls.svg" alt="Example
* timeline for an on-demand stream with mid-roll ad groups"> * timeline for an on-demand stream with mid-roll ad groups">
......
...@@ -62,7 +62,7 @@ import java.util.List; ...@@ -62,7 +62,7 @@ import java.util.List;
* An extensible media player that plays {@link MediaSource}s. Instances can be obtained from {@link * An extensible media player that plays {@link MediaSource}s. Instances can be obtained from {@link
* SimpleExoPlayer.Builder}. * SimpleExoPlayer.Builder}.
* *
* <h3>Player components</h3> * <h2>Player components</h2>
* *
* <p>ExoPlayer is designed to make few assumptions about (and hence impose few restrictions on) the * <p>ExoPlayer is designed to make few assumptions about (and hence impose few restrictions on) the
* type of the media being played, how and where it is stored, and how it is rendered. Rather than * type of the media being played, how and where it is stored, and how it is rendered. Rather than
...@@ -106,7 +106,7 @@ import java.util.List; ...@@ -106,7 +106,7 @@ import java.util.List;
* {@link DataSource} factories to be injected via their constructors. By providing a custom factory * {@link DataSource} factories to be injected via their constructors. By providing a custom factory
* it's possible to load data from a non-standard source, or through a different network stack. * it's possible to load data from a non-standard source, or through a different network stack.
* *
* <h3>Threading model</h3> * <h2>Threading model</h2>
* *
* <p>The figure below shows ExoPlayer's threading model. * <p>The figure below shows ExoPlayer's threading model.
* *
......
...@@ -37,7 +37,7 @@ import java.util.UUID; ...@@ -37,7 +37,7 @@ import java.util.UUID;
/** /**
* Used to obtain keys for decrypting protected media streams. * Used to obtain keys for decrypting protected media streams.
* *
* <h3>Reference counting</h3> * <h2>Reference counting</h2>
* *
* <p>Access to an instance is managed by reference counting, where {@link #acquire()} increments * <p>Access to an instance is managed by reference counting, where {@link #acquire()} increments
* the reference count and {@link #release()} decrements it. When the reference count drops to 0 * the reference count and {@link #release()} decrements it. When the reference count drops to 0
......
...@@ -72,7 +72,7 @@ import java.util.List; ...@@ -72,7 +72,7 @@ import java.util.List;
* is thrown if none of the available extractors can read the stream. * is thrown if none of the available extractors can read the stream.
* </ul> * </ul>
* *
* <h3>Ad support for media items with ad tag URIs</h3> * <h2>Ad support for media items with ad tag URIs</h2>
* *
* <p>To support media items with {@link MediaItem.PlaybackProperties#adsConfiguration ads * <p>To support media items with {@link MediaItem.PlaybackProperties#adsConfiguration ads
* configuration}, {@link #setAdsLoaderProvider} and {@link #setAdViewProvider} need to be called to * configuration}, {@link #setAdsLoaderProvider} and {@link #setAdViewProvider} need to be called to
......
...@@ -60,7 +60,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull; ...@@ -60,7 +60,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
* to configurable {@link Parameters}, which can be set by calling {@link * to configurable {@link Parameters}, which can be set by calling {@link
* #setParameters(Parameters)}. * #setParameters(Parameters)}.
* *
* <h3>Modifying parameters</h3> * <h2>Modifying parameters</h2>
* *
* To modify only some aspects of the parameters currently used by a selector, it's possible to * To modify only some aspects of the parameters currently used by a selector, it's possible to
* obtain a {@link ParametersBuilder} initialized with the current {@link Parameters}. The desired * obtain a {@link ParametersBuilder} initialized with the current {@link Parameters}. The desired
...@@ -93,7 +93,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull; ...@@ -93,7 +93,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
* *
* Selection {@link Parameters} support many different options, some of which are described below. * Selection {@link Parameters} support many different options, some of which are described below.
* *
* <h3>Selecting specific tracks</h3> * <h2>Selecting specific tracks</h2>
* *
* Track selection overrides can be used to select specific tracks. To specify an override for a * Track selection overrides can be used to select specific tracks. To specify an override for a
* renderer, it's first necessary to obtain the tracks that have been mapped to it: * renderer, it's first necessary to obtain the tracks that have been mapped to it:
...@@ -120,7 +120,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull; ...@@ -120,7 +120,7 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
* .setSelectionOverride(rendererIndex, rendererTrackGroups, selectionOverride)); * .setSelectionOverride(rendererIndex, rendererTrackGroups, selectionOverride));
* }</pre> * }</pre>
* *
* <h3>Constraint based track selection</h3> * <h2>Constraint based track selection</h2>
* *
* Whilst track selection overrides make it possible to select specific tracks, the recommended way * Whilst track selection overrides make it possible to select specific tracks, the recommended way
* of controlling which tracks are selected is by specifying constraints. For example consider the * of controlling which tracks are selected is by specifying constraints. For example consider the
...@@ -148,14 +148,14 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull; ...@@ -148,14 +148,14 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
* only applied to periods whose tracks match those for which the override was set. * only applied to periods whose tracks match those for which the override was set.
* </ul> * </ul>
* *
* <h3>Disabling renderers</h3> * <h2>Disabling renderers</h2>
* *
* Renderers can be disabled using {@link ParametersBuilder#setRendererDisabled}. Disabling a * Renderers can be disabled using {@link ParametersBuilder#setRendererDisabled}. Disabling a
* renderer differs from setting a {@code null} override because the renderer is disabled * renderer differs from setting a {@code null} override because the renderer is disabled
* unconditionally, whereas a {@code null} override is applied only when the track groups available * unconditionally, whereas a {@code null} override is applied only when the track groups available
* to the renderer match the {@link TrackGroupArray} for which it was specified. * to the renderer match the {@link TrackGroupArray} for which it was specified.
* *
* <h3>Tunneling</h3> * <h2>Tunneling</h2>
* *
* Tunneled playback can be enabled in cases where the combination of renderers and selected tracks * Tunneled playback can be enabled in cases where the combination of renderers and selected tracks
* support it. Tunneled playback is enabled by passing an audio session ID to {@link * support it. Tunneled playback is enabled by passing an audio session ID to {@link
......
...@@ -32,7 +32,7 @@ import com.google.android.exoplayer2.util.Assertions; ...@@ -32,7 +32,7 @@ import com.google.android.exoplayer2.util.Assertions;
* the player's {@link Renderer}s. The {@link DefaultTrackSelector} implementation should be * the player's {@link Renderer}s. The {@link DefaultTrackSelector} implementation should be
* suitable for most use cases. * suitable for most use cases.
* *
* <h3>Interactions with the player</h3> * <h2>Interactions with the player</h2>
* *
* The following interactions occur between the player and its track selector during playback. * The following interactions occur between the player and its track selector during playback.
* *
...@@ -65,7 +65,7 @@ import com.google.android.exoplayer2.util.Assertions; ...@@ -65,7 +65,7 @@ import com.google.android.exoplayer2.util.Assertions;
* will call {@link InvalidationListener#onTrackSelectionsInvalidated()}. * will call {@link InvalidationListener#onTrackSelectionsInvalidated()}.
* </ul> * </ul>
* *
* <h3>Renderer configuration</h3> * <h2>Renderer configuration</h2>
* *
* The {@link TrackSelectorResult} returned by {@link #selectTracks(RendererCapabilities[], * The {@link TrackSelectorResult} returned by {@link #selectTracks(RendererCapabilities[],
* TrackGroupArray, MediaPeriodId, Timeline)} contains not only {@link TrackSelection}s for each * TrackGroupArray, MediaPeriodId, Timeline)} contains not only {@link TrackSelection}s for each
...@@ -77,7 +77,7 @@ import com.google.android.exoplayer2.util.Assertions; ...@@ -77,7 +77,7 @@ import com.google.android.exoplayer2.util.Assertions;
* configure renderers in a particular way if certain tracks are selected. Hence it makes sense to * configure renderers in a particular way if certain tracks are selected. Hence it makes sense to
* determine the track selection and corresponding renderer configurations in a single step. * determine the track selection and corresponding renderer configurations in a single step.
* *
* <h3>Threading model</h3> * <h2>Threading model</h2>
* *
* All calls made by the player into the track selector are on the player's internal playback * All calls made by the player into the track selector are on the player's internal playback
* thread. The track selector may call {@link InvalidationListener#onTrackSelectionsInvalidated()} * thread. The track selector may call {@link InvalidationListener#onTrackSelectionsInvalidated()}
......
...@@ -26,7 +26,7 @@ import java.util.Set; ...@@ -26,7 +26,7 @@ import java.util.Set;
/** /**
* A cache that supports partial caching of resources. * A cache that supports partial caching of resources.
* *
* <h3>Terminology</h3> * <h2>Terminology</h2>
* *
* <ul> * <ul>
* <li>A <em>resource</em> is a complete piece of logical data, for example a complete media file. * <li>A <em>resource</em> is a complete piece of logical data, for example a complete media file.
......
...@@ -34,7 +34,7 @@ import java.io.InputStream; ...@@ -34,7 +34,7 @@ import java.io.InputStream;
* wants to read an entire block/frame/header of known length. * wants to read an entire block/frame/header of known length.
* </ul> * </ul>
* *
* <h3>{@link InputStream}-like methods</h3> * <h2>{@link InputStream}-like methods</h2>
* *
* <p>The {@code read()/peek()} and {@code skip()} methods provide {@link InputStream}-like * <p>The {@code read()/peek()} and {@code skip()} methods provide {@link InputStream}-like
* byte-level access operations. The {@code length} parameter is a maximum, and each method returns * byte-level access operations. The {@code length} parameter is a maximum, and each method returns
...@@ -42,7 +42,7 @@ import java.io.InputStream; ...@@ -42,7 +42,7 @@ import java.io.InputStream;
* the input was reached, or the method was interrupted, or the operation was aborted early for * the input was reached, or the method was interrupted, or the operation was aborted early for
* another reason. * another reason.
* *
* <h3>Block-based methods</h3> * <h2>Block-based methods</h2>
* *
* <p>The {@code read/skip/peekFully()} and {@code advancePeekPosition()} methods assume the user * <p>The {@code read/skip/peekFully()} and {@code advancePeekPosition()} methods assume the user
* wants to read an entire block/frame/header of known length. * wants to read an entire block/frame/header of known length.
......
...@@ -51,7 +51,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -51,7 +51,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
* *
* <p>A DefaultTimeBar can be customized by setting attributes, as outlined below. * <p>A DefaultTimeBar can be customized by setting attributes, as outlined below.
* *
* <h3>Attributes</h3> * <h2>Attributes</h2>
* *
* The following attributes can be set on a DefaultTimeBar when used in a layout XML file: * The following attributes can be set on a DefaultTimeBar when used in a layout XML file:
* *
......
...@@ -66,7 +66,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -66,7 +66,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* methods), overriding drawables, overriding the view's layout file, or by specifying a custom view * methods), overriding drawables, overriding the view's layout file, or by specifying a custom view
* layout file. * layout file.
* *
* <h3>Attributes</h3> * <h2>Attributes</h2>
* *
* The following attributes can be set on a PlayerControlView when used in a layout XML file: * The following attributes can be set on a PlayerControlView when used in a layout XML file:
* *
...@@ -138,7 +138,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -138,7 +138,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* layout is overridden to specify a custom {@code exo_progress} (see below). * layout is overridden to specify a custom {@code exo_progress} (see below).
* </ul> * </ul>
* *
* <h3>Overriding drawables</h3> * <h2>Overriding drawables</h2>
* *
* The drawables used by PlayerControlView (with its default layout file) can be overridden by * The drawables used by PlayerControlView (with its default layout file) can be overridden by
* drawables with the same names defined in your application. The drawables that can be overridden * drawables with the same names defined in your application. The drawables that can be overridden
...@@ -162,7 +162,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -162,7 +162,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* <li><b>{@code exo_controls_vr}</b> - The VR icon. * <li><b>{@code exo_controls_vr}</b> - The VR icon.
* </ul> * </ul>
* *
* <h3>Overriding the layout file</h3> * <h2>Overriding the layout file</h2>
* *
* To customize the layout of PlayerControlView throughout your app, or just for certain * To customize the layout of PlayerControlView throughout your app, or just for certain
* configurations, you can define {@code exo_player_control_view.xml} layout files in your * configurations, you can define {@code exo_player_control_view.xml} layout files in your
...@@ -241,7 +241,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -241,7 +241,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* <p>All child views are optional and so can be omitted if not required, however where defined they * <p>All child views are optional and so can be omitted if not required, however where defined they
* must be of the expected type. * must be of the expected type.
* *
* <h3>Specifying a custom layout file</h3> * <h2>Specifying a custom layout file</h2>
* *
* Defining your own {@code exo_player_control_view.xml} is useful to customize the layout of * Defining your own {@code exo_player_control_view.xml} is useful to customize the layout of
* PlayerControlView throughout your application. It's also possible to customize the layout for a * PlayerControlView throughout your application. It's also possible to customize the layout for a
......
...@@ -75,7 +75,7 @@ import java.util.Map; ...@@ -75,7 +75,7 @@ import java.util.Map;
* <p>If the player is released it must be removed from the manager by calling {@code * <p>If the player is released it must be removed from the manager by calling {@code
* setPlayer(null)}. * setPlayer(null)}.
* *
* <h3>Action customization</h3> * <h2>Action customization</h2>
* *
* Playback actions can be included or omitted as follows: * Playback actions can be included or omitted as follows:
* *
...@@ -140,7 +140,7 @@ import java.util.Map; ...@@ -140,7 +140,7 @@ import java.util.Map;
* </ul> * </ul>
* </ul> * </ul>
* *
* <h3>Overriding drawables</h3> * <h2>Overriding drawables</h2>
* *
* The drawables used by PlayerNotificationManager can be overridden by drawables with the same * The drawables used by PlayerNotificationManager can be overridden by drawables with the same
* names defined in your application. The drawables that can be overridden are: * names defined in your application. The drawables that can be overridden are:
......
...@@ -83,7 +83,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -83,7 +83,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* overriding drawables, overriding the view's layout file, or by specifying a custom view layout * overriding drawables, overriding the view's layout file, or by specifying a custom view layout
* file. * file.
* *
* <h3>Attributes</h3> * <h2>Attributes</h2>
* *
* The following attributes can be set on a PlayerView when used in a layout XML file: * The following attributes can be set on a PlayerView when used in a layout XML file:
* *
...@@ -175,13 +175,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -175,13 +175,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* exo_controller} (see below). * exo_controller} (see below).
* </ul> * </ul>
* *
* <h3>Overriding drawables</h3> * <h2>Overriding drawables</h2>
* *
* The drawables used by {@link PlayerControlView} (with its default layout file) can be overridden * The drawables used by {@link PlayerControlView} (with its default layout file) can be overridden
* by drawables with the same names defined in your application. See the {@link PlayerControlView} * by drawables with the same names defined in your application. See the {@link PlayerControlView}
* documentation for a list of drawables that can be overridden. * documentation for a list of drawables that can be overridden.
* *
* <h3>Overriding the layout file</h3> * <h2>Overriding the layout file</h2>
* *
* To customize the layout of PlayerView throughout your app, or just for certain configurations, * To customize the layout of PlayerView throughout your app, or just for certain configurations,
* you can define {@code exo_player_view.xml} layout files in your application {@code res/layout*} * you can define {@code exo_player_view.xml} layout files in your application {@code res/layout*}
...@@ -248,7 +248,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -248,7 +248,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* <p>All child views are optional and so can be omitted if not required, however where defined they * <p>All child views are optional and so can be omitted if not required, however where defined they
* must be of the expected type. * must be of the expected type.
* *
* <h3>Specifying a custom layout file</h3> * <h2>Specifying a custom layout file</h2>
* *
* Defining your own {@code exo_player_view.xml} is useful to customize the layout of PlayerView * Defining your own {@code exo_player_view.xml} is useful to customize the layout of PlayerView
* throughout your application. It's also possible to customize the layout for a single instance in * throughout your application. It's also possible to customize the layout for a single instance in
......
...@@ -88,7 +88,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -88,7 +88,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* methods), overriding drawables, overriding the view's layout file, or by specifying a custom view * methods), overriding drawables, overriding the view's layout file, or by specifying a custom view
* layout file. * layout file.
* *
* <h3>Attributes</h3> * <h2>Attributes</h2>
* *
* The following attributes can be set on a StyledPlayerControlView when used in a layout XML file: * The following attributes can be set on a StyledPlayerControlView when used in a layout XML file:
* *
...@@ -171,7 +171,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -171,7 +171,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* unless the layout is overridden to specify a custom {@code exo_progress} (see below). * unless the layout is overridden to specify a custom {@code exo_progress} (see below).
* </ul> * </ul>
* *
* <h3>Overriding drawables</h3> * <h2>Overriding drawables</h2>
* *
* The drawables used by StyledPlayerControlView (with its default layout file) can be overridden by * The drawables used by StyledPlayerControlView (with its default layout file) can be overridden by
* drawables with the same names defined in your application. The drawables that can be overridden * drawables with the same names defined in your application. The drawables that can be overridden
...@@ -196,7 +196,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -196,7 +196,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* <li><b>{@code exo_styled_controls_vr}</b> - The VR icon. * <li><b>{@code exo_styled_controls_vr}</b> - The VR icon.
* </ul> * </ul>
* *
* <h3>Overriding the layout file</h3> * <h2>Overriding the layout file</h2>
* *
* To customize the layout of StyledPlayerControlView throughout your app, or just for certain * To customize the layout of StyledPlayerControlView throughout your app, or just for certain
* configurations, you can define {@code exo_styled_player_control_view.xml} layout files in your * configurations, you can define {@code exo_styled_player_control_view.xml} layout files in your
...@@ -301,7 +301,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -301,7 +301,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* <p>All child views are optional and so can be omitted if not required, however where defined they * <p>All child views are optional and so can be omitted if not required, however where defined they
* must be of the expected type. * must be of the expected type.
* *
* <h3 id="CustomLayout">Specifying a custom layout file</h3> * <h2 id="CustomLayout">Specifying a custom layout file</h2>
* *
* Defining your own {@code exo_styled_player_control_view.xml} is useful to customize the layout of * Defining your own {@code exo_styled_player_control_view.xml} is useful to customize the layout of
* StyledPlayerControlView throughout your application. It's also possible to customize the layout * StyledPlayerControlView throughout your application. It's also possible to customize the layout
......
...@@ -84,7 +84,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -84,7 +84,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* overriding drawables, overriding the view's layout file, or by specifying a custom view layout * overriding drawables, overriding the view's layout file, or by specifying a custom view layout
* file. * file.
* *
* <h3>Attributes</h3> * <h2>Attributes</h2>
* *
* The following attributes can be set on a StyledPlayerView when used in a layout XML file: * The following attributes can be set on a StyledPlayerView when used in a layout XML file:
* *
...@@ -176,13 +176,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -176,13 +176,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* custom {@code exo_controller} (see below). * custom {@code exo_controller} (see below).
* </ul> * </ul>
* *
* <h3>Overriding drawables</h3> * <h2>Overriding drawables</h2>
* *
* The drawables used by {@link StyledPlayerControlView} (with its default layout file) can be * The drawables used by {@link StyledPlayerControlView} (with its default layout file) can be
* overridden by drawables with the same names defined in your application. See the {@link * overridden by drawables with the same names defined in your application. See the {@link
* StyledPlayerControlView} documentation for a list of drawables that can be overridden. * StyledPlayerControlView} documentation for a list of drawables that can be overridden.
* *
* <h3>Overriding the layout file</h3> * <h2>Overriding the layout file</h2>
* *
* To customize the layout of StyledPlayerView throughout your app, or just for certain * To customize the layout of StyledPlayerView throughout your app, or just for certain
* configurations, you can define {@code exo_styled_player_view.xml} layout files in your * configurations, you can define {@code exo_styled_player_view.xml} layout files in your
...@@ -249,7 +249,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -249,7 +249,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* <p>All child views are optional and so can be omitted if not required, however where defined they * <p>All child views are optional and so can be omitted if not required, however where defined they
* must be of the expected type. * must be of the expected type.
* *
* <h3>Specifying a custom layout file</h3> * <h2>Specifying a custom layout file</h2>
* *
* Defining your own {@code exo_styled_player_view.xml} is useful to customize the layout of * Defining your own {@code exo_styled_player_view.xml} is useful to customize the layout of
* StyledPlayerView throughout your application. It's also possible to customize the layout for a * StyledPlayerView throughout your application. It's also possible to customize the layout for a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment