Commit 730cdbb9 by olly Committed by Ian Baker

Use defStyleAttr when obtaining styled attributes in player views

#minor-release
#exofixit
Issue #9024

PiperOrigin-RevId: 395224661
parent 97b717b8
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
* `SubtitleView` no longer implements `TextOutput`. `SubtitleView` * `SubtitleView` no longer implements `TextOutput`. `SubtitleView`
implements `Player.Listener`, so can be registered to a player with implements `Player.Listener`, so can be registered to a player with
`Player.addListener`. `Player.addListener`.
* Use `defStyleAttr` when obtaining styled attributes in
`StyledPlayerView`, `PlayerView` and `PlayerControlView`
([#9024](https://github.com/google/ExoPlayer/issues/9024)).
* Remove deprecated symbols: * Remove deprecated symbols:
* Remove `Renderer.VIDEO_SCALING_MODE_*` constants. Use identically named * Remove `Renderer.VIDEO_SCALING_MODE_*` constants. Use identically named
constants in `C` instead. constants in `C` instead.
......
...@@ -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);
......
...@@ -490,7 +490,11 @@ public class StyledPlayerControlView extends FrameLayout { ...@@ -490,7 +490,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(
...@@ -575,8 +579,8 @@ public class StyledPlayerControlView extends FrameLayout { ...@@ -575,8 +579,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