Only set shutter color if attr is declared

This commit is contained in:
Oliver Woodman 2017-11-13 17:28:25 +00:00
parent 99d0a7a3da
commit e92667ba5b
2 changed files with 14 additions and 10 deletions

View File

@ -83,12 +83,6 @@ import java.util.List;
* <li>Default: {@code true}</li> * <li>Default: {@code true}</li>
* </ul> * </ul>
* </li> * </li>
* <li><b>{@code shutter_background_color}</b> - The background color of the {@code exo_shutter} view.
* <ul>
* <li>Corresponding method: {@link #setShutterBackgroundColor(int)}</li>
* <li>Default: {@code 0}</li>
* </ul>
* </li>
* <li><b>{@code hide_on_touch}</b> - Whether the playback controls are hidden by touch events. * <li><b>{@code hide_on_touch}</b> - Whether the playback controls are hidden by touch events.
* <ul> * <ul>
* <li>Corresponding method: {@link #setControllerHideOnTouch(boolean)}</li> * <li>Corresponding method: {@link #setControllerHideOnTouch(boolean)}</li>
@ -119,6 +113,13 @@ import java.util.List;
* <li>Default: {@code surface_view}</li> * <li>Default: {@code surface_view}</li>
* </ul> * </ul>
* </li> * </li>
* <li><b>{@code shutter_background_color}</b> - The background color of the {@code exo_shutter}
* view.
* <ul>
* <li>Corresponding method: {@link #setShutterBackgroundColor(int)}</li>
* <li>Default: {@code unset}</li>
* </ul>
* </li>
* <li><b>{@code player_layout_id}</b> - Specifies the id of the layout to be inflated. See below * <li><b>{@code player_layout_id}</b> - Specifies the id of the layout to be inflated. See below
* for more details. * for more details.
* <ul> * <ul>
@ -255,6 +256,7 @@ public final class SimpleExoPlayerView extends FrameLayout {
return; return;
} }
boolean shutterColorSet = false;
int shutterColor = 0; int shutterColor = 0;
int playerLayoutId = R.layout.exo_simple_player_view; int playerLayoutId = R.layout.exo_simple_player_view;
boolean useArtwork = true; boolean useArtwork = true;
@ -269,7 +271,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
R.styleable.SimpleExoPlayerView, 0, 0); R.styleable.SimpleExoPlayerView, 0, 0);
try { try {
shutterColor = a.getColor(R.styleable.SimpleExoPlayerView_shutter_background_color, shutterColor); shutterColorSet = a.hasValue(R.styleable.SimpleExoPlayerView_shutter_background_color);
shutterColor = a.getColor(R.styleable.SimpleExoPlayerView_shutter_background_color,
shutterColor);
playerLayoutId = a.getResourceId(R.styleable.SimpleExoPlayerView_player_layout_id, playerLayoutId = a.getResourceId(R.styleable.SimpleExoPlayerView_player_layout_id,
playerLayoutId); playerLayoutId);
useArtwork = a.getBoolean(R.styleable.SimpleExoPlayerView_use_artwork, useArtwork); useArtwork = a.getBoolean(R.styleable.SimpleExoPlayerView_use_artwork, useArtwork);
@ -301,7 +305,7 @@ public final class SimpleExoPlayerView extends FrameLayout {
// Shutter view. // Shutter view.
shutterView = findViewById(R.id.exo_shutter); shutterView = findViewById(R.id.exo_shutter);
if (shutterView != null) { if (shutterView != null && shutterColorSet) {
shutterView.setBackgroundColor(shutterColor); shutterView.setBackgroundColor(shutterColor);
} }
@ -527,7 +531,7 @@ public final class SimpleExoPlayerView extends FrameLayout {
/** /**
* Sets the background color of the {@code exo_shutter} view. * Sets the background color of the {@code exo_shutter} view.
* *
* @param color A resolved color (not a resource ID) for the background of the shutter view. * @param color The background color.
*/ */
public void setShutterBackgroundColor(int color) { public void setShutterBackgroundColor(int color) {
if (shutterView != null) { if (shutterView != null) {