Commit 28d5b357 by olly Committed by Christos Tsilopoulos

Use defStyleAttr when obtaining styled attributes in player views

Issue #9024

PiperOrigin-RevId: 395224661
parent ced4232f
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* Extractors: * Extractors:
* Support TS packets without PTS flag * Support TS packets without PTS flag
([#9294](https://github.com/google/ExoPlayer/issues/9294)). ([#9294](https://github.com/google/ExoPlayer/issues/9294)).
* Video * Video:
* Request smaller decoder input buffers for Dolby Vision. This fixes an * Request smaller decoder input buffers for Dolby Vision. This fixes an
issue that could cause UHD Dolby Vision playbacks to fail on some issue that could cause UHD Dolby Vision playbacks to fail on some
devices, including Amazon Fire TV 4K. devices, including Amazon Fire TV 4K.
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
thrown from `Requirements.isInternetConnectivityValidated` on devices thrown from `Requirements.isInternetConnectivityValidated` on devices
running Android 11 running Android 11
([#9002](https://github.com/google/ExoPlayer/issues/9002)). ([#9002](https://github.com/google/ExoPlayer/issues/9002)).
* UI:
* Use `defStyleAttr` when obtaining styled attributes in
`StyledPlayerView`, `PlayerView` and `PlayerControlView`
([#9024](https://github.com/google/ExoPlayer/issues/9024)).
* Cast extension: * Cast extension:
* Implement `CastPlayer.setPlaybackParameters(PlaybackParameters)` to * Implement `CastPlayer.setPlaybackParameters(PlaybackParameters)` to
support setting the playback speed support setting the playback speed
...@@ -247,6 +251,11 @@ ...@@ -247,6 +251,11 @@
([#9183](https://github.com/google/ExoPlayer/issues/9183)). ([#9183](https://github.com/google/ExoPlayer/issues/9183)).
* Allow the timeout to be customised via * Allow the timeout to be customised via
`RtspMediaSource.Factory.setTimeoutMs`. `RtspMediaSource.Factory.setTimeoutMs`.
* Downloads and caching:
* Workaround platform issue that can cause a `SecurityException` to be
thrown from `Requirements.isInternetConnectivityValidated` on devices
running Android 11
([#9002](https://github.com/google/ExoPlayer/issues/9002)).
### 2.14.1 (2021-06-11) ### 2.14.1 (2021-06-11)
......
...@@ -377,7 +377,8 @@ public class PlayerControlView extends FrameLayout { ...@@ -377,7 +377,8 @@ public class PlayerControlView extends FrameLayout {
TypedArray a = TypedArray a =
context context
.getTheme() .getTheme()
.obtainStyledAttributes(playbackAttrs, R.styleable.PlayerControlView, 0, 0); .obtainStyledAttributes(
playbackAttrs, R.styleable.PlayerControlView, defStyleAttr, /* defStyleRes= */ 0);
try { try {
showTimeoutMs = a.getInt(R.styleable.PlayerControlView_show_timeout, showTimeoutMs); showTimeoutMs = a.getInt(R.styleable.PlayerControlView_show_timeout, showTimeoutMs);
controllerLayoutId = controllerLayoutId =
...@@ -424,8 +425,8 @@ public class PlayerControlView extends FrameLayout { ...@@ -424,8 +425,8 @@ public class PlayerControlView extends FrameLayout {
if (customTimeBar != null) { if (customTimeBar != null) {
timeBar = customTimeBar; timeBar = customTimeBar;
} else if (timeBarPlaceholder != null) { } else if (timeBarPlaceholder != null) {
// Propagate attrs as timebarAttrs so that DefaultTimeBar's custom attributes are transferred, // Propagate playbackAttrs as timebarAttrs so that DefaultTimeBar's custom attributes are
// but standard attributes (e.g. background) are not. // transferred, but standard attributes (e.g. background) are not.
DefaultTimeBar defaultTimeBar = new DefaultTimeBar(context, null, 0, playbackAttrs); DefaultTimeBar defaultTimeBar = new DefaultTimeBar(context, null, 0, playbackAttrs);
defaultTimeBar.setId(R.id.exo_progress); defaultTimeBar.setId(R.id.exo_progress);
defaultTimeBar.setLayoutParams(timeBarPlaceholder.getLayoutParams()); defaultTimeBar.setLayoutParams(timeBarPlaceholder.getLayoutParams());
......
...@@ -367,7 +367,11 @@ public class PlayerView extends FrameLayout implements AdViewProvider { ...@@ -367,7 +367,11 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
boolean controllerHideDuringAds = true; boolean controllerHideDuringAds = true;
int showBuffering = SHOW_BUFFERING_NEVER; int showBuffering = SHOW_BUFFERING_NEVER;
if (attrs != null) { if (attrs != null) {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.PlayerView, 0, 0); TypedArray a =
context
.getTheme()
.obtainStyledAttributes(
attrs, R.styleable.PlayerView, defStyleAttr, /* defStyleRes= */ 0);
try { try {
shutterColorSet = a.hasValue(R.styleable.PlayerView_shutter_background_color); shutterColorSet = a.hasValue(R.styleable.PlayerView_shutter_background_color);
shutterColor = a.getColor(R.styleable.PlayerView_shutter_background_color, shutterColor); shutterColor = a.getColor(R.styleable.PlayerView_shutter_background_color, shutterColor);
......
...@@ -491,7 +491,11 @@ public class StyledPlayerControlView extends FrameLayout { ...@@ -491,7 +491,11 @@ public class StyledPlayerControlView extends FrameLayout {
TypedArray a = TypedArray a =
context context
.getTheme() .getTheme()
.obtainStyledAttributes(playbackAttrs, R.styleable.StyledPlayerControlView, 0, 0); .obtainStyledAttributes(
playbackAttrs,
R.styleable.StyledPlayerControlView,
defStyleAttr,
/* defStyleRes= */ 0);
try { try {
controllerLayoutId = controllerLayoutId =
a.getResourceId( a.getResourceId(
...@@ -576,8 +580,8 @@ public class StyledPlayerControlView extends FrameLayout { ...@@ -576,8 +580,8 @@ public class StyledPlayerControlView extends FrameLayout {
if (customTimeBar != null) { if (customTimeBar != null) {
timeBar = customTimeBar; timeBar = customTimeBar;
} else if (timeBarPlaceholder != null) { } else if (timeBarPlaceholder != null) {
// Propagate attrs as timebarAttrs so that DefaultTimeBar's custom attributes are transferred, // Propagate playbackAttrs as timebarAttrs so that DefaultTimeBar's custom attributes are
// but standard attributes (e.g. background) are not. // transferred, but standard attributes (e.g. background) are not.
DefaultTimeBar defaultTimeBar = DefaultTimeBar defaultTimeBar =
new DefaultTimeBar(context, null, 0, playbackAttrs, R.style.ExoStyledControls_TimeBar); new DefaultTimeBar(context, null, 0, playbackAttrs, R.style.ExoStyledControls_TimeBar);
defaultTimeBar.setId(R.id.exo_progress); defaultTimeBar.setId(R.id.exo_progress);
......
...@@ -369,7 +369,10 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider { ...@@ -369,7 +369,10 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
int showBuffering = SHOW_BUFFERING_NEVER; int showBuffering = SHOW_BUFFERING_NEVER;
if (attrs != null) { if (attrs != null) {
TypedArray a = TypedArray a =
context.getTheme().obtainStyledAttributes(attrs, R.styleable.StyledPlayerView, 0, 0); context
.getTheme()
.obtainStyledAttributes(
attrs, R.styleable.StyledPlayerView, defStyleAttr, /* defStyleRes= */ 0);
try { try {
shutterColorSet = a.hasValue(R.styleable.StyledPlayerView_shutter_background_color); shutterColorSet = a.hasValue(R.styleable.StyledPlayerView_shutter_background_color);
shutterColor = shutterColor =
......
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