From 8aefed20f81635617c6001d3d22a2cace17fe37f Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 3 Feb 2022 10:17:54 +0000 Subject: [PATCH] Remove references to Player(Control)View from the dev guide Remove most of the customisation documentation, since StyledPlayerView isn't really designed to be customised as deeply as PlayerView. Also remove most documentation around StyledPlayerControlView, especially as a standalone controller class - since it doesn't work well for this use-case. #minor-release PiperOrigin-RevId: 426090762 --- libraries/decoder_av1/README.md | 11 +- libraries/decoder_vp9/README.md | 11 +- .../androidx/media3/ui/PlayerControlView.java | 120 +----------------- .../java/androidx/media3/ui/PlayerView.java | 80 +----------- 4 files changed, 13 insertions(+), 209 deletions(-) diff --git a/libraries/decoder_av1/README.md b/libraries/decoder_av1/README.md index d67d581321..75e89ad5f5 100644 --- a/libraries/decoder_av1/README.md +++ b/libraries/decoder_av1/README.md @@ -104,20 +104,19 @@ gets from the libgav1 decoder: * GL rendering using GL shader for color space conversion - * If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`, - enable this option by setting `surface_type` of view to be + * If you are using `ExoPlayer` with `PlayerView`, enable this option by + setting the `surface_type` of the view to be `video_decoder_gl_surface_view`. * Otherwise, enable this option by sending `Libgav1VideoRenderer` a message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of `VideoDecoderOutputBufferRenderer` as its object. `VideoDecoderGLSurfaceView` is the concrete - `VideoDecoderOutputBufferRenderer` implementation used by `PlayerView` - and `LegacyPlayerView`. + `VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`. * Native rendering using `ANativeWindow` - * If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`, - this option is enabled by default. + * If you are using `ExoPlayer` with `PlayerView`, this option is enabled + by default. * Otherwise, enable this option by sending `Libgav1VideoRenderer` a message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of `SurfaceView` as its object. diff --git a/libraries/decoder_vp9/README.md b/libraries/decoder_vp9/README.md index c7516eb54b..fc63129a9d 100644 --- a/libraries/decoder_vp9/README.md +++ b/libraries/decoder_vp9/README.md @@ -117,20 +117,19 @@ gets from the libvpx decoder: * GL rendering using GL shader for color space conversion - * If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`, - enable this option by setting `surface_type` of view to be + * If you are using `ExoPlayer` with `PlayerView`, enable this option by + setting the `surface_type` of the view to be `video_decoder_gl_surface_view`. * Otherwise, enable this option by sending `LibvpxVideoRenderer` a message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of `VideoDecoderOutputBufferRenderer` as its object. `VideoDecoderGLSurfaceView` is the concrete - `VideoDecoderOutputBufferRenderer` implementation used by `PlayerView` - and `LegacyPlayerView`. + `VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`. * Native rendering using `ANativeWindow` - * If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`, - this option is enabled by default. + * If you are using `ExoPlayer` with `PlayerView`, this option is enabled + by default. * Otherwise, enable this option by sending `LibvpxVideoRenderer` a message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of `SurfaceView` as its object. diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java index 245b7bf5fe..a3e869f4ce 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java @@ -90,8 +90,7 @@ import java.util.concurrent.CopyOnWriteArrayList; * A view for controlling {@link Player} instances. * *

A StyledPlayerControlView can be customized by setting attributes (or calling corresponding - * methods), overriding drawables, overriding the view's layout file, or by specifying a custom view - * layout file. + * methods), or overriding drawables. * *

Attributes

* @@ -189,123 +188,6 @@ import java.util.concurrent.CopyOnWriteArrayList; *
  • {@code exo_styled_controls_shuffle_on} - The shuffle icon when shuffling is enabled. *
  • {@code exo_styled_controls_vr} - The VR icon. * - * - *

    Overriding the layout file

    - * - * To customize the layout of StyledPlayerControlView throughout your app, or just for certain - * configurations, you can define {@code exo_player_control_view.xml} layout files in your - * application {@code res/layout*} directories. But, in this case, you need to be careful since the - * default animation implementation expects certain relative positions between children. See also Specifying a custom layout file. - * - *

    The layout files in your {@code res/layout*} will override the one provided by the library, - * and will be inflated for use by StyledPlayerControlView. The view identifies and binds its - * children by looking for the following ids: - * - *

    - * - *

    All child views are optional and so can be omitted if not required, however where defined they - * must be of the expected type. - * - *

    Specifying a custom layout file

    - * - * Defining your own {@code exo_player_control_view.xml} is useful to customize the layout of - * StyledPlayerControlView throughout your application. It's also possible to customize the layout - * for a single instance in a layout file. This is achieved by setting the {@code - * controller_layout_id} attribute on a StyledPlayerControlView. This will cause the specified - * layout to be inflated instead of {@code exo_player_control_view.xml} for only the instance on - * which the attribute is set. - * - *

    You need to be careful when you set the {@code controller_layout_id}, because the default - * animation implementation expects certain relative positions between children. */ @UnstableApi public class PlayerControlView extends FrameLayout { diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java index e9c104f8de..7bc88cff91 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java @@ -77,9 +77,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; * A high level view for {@link Player} media playbacks. It displays video, subtitles and album art * during playback, and displays playback controls using a {@link PlayerControlView}. * - *

    A PlayerView can be customized by setting attributes (or calling corresponding methods), - * overriding drawables, overriding the view's layout file, or by specifying a custom view layout - * file. + *

    A PlayerView can be customized by setting attributes (or calling corresponding methods), or + * overriding drawables. * *

    Attributes

    * @@ -178,81 +177,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; * 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} * documentation for a list of drawables that can be overridden. - * - *

    Overriding the layout file

    - * - * 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*} - * directories. These layouts will override the one provided by the library, and will be inflated - * for use by PlayerView. The view identifies and binds its children by looking for the following - * ids: - * - * - * - *

    All child views are optional and so can be omitted if not required, however where defined they - * must be of the expected type. - * - *

    Specifying a custom layout file

    - * - * 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 - * a layout file. This is achieved by setting the {@code player_layout_id} attribute on a - * PlayerView. This will cause the specified layout to be inflated instead of {@code - * exo_player_view.xml} for only the instance on which the attribute is set. */ @UnstableApi public class PlayerView extends FrameLayout implements AdViewProvider {