diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 8f9f78f629..587d280d7f 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -7,6 +7,14 @@
([#6203](https://github.com/google/ExoPlayer/issues/6203)).
* Expose the raw ICY metadata through `IcyInfo`
([#6476](https://github.com/google/ExoPlayer/issues/6476)).
+* UI
+ * Setting `app:played_color` on `PlayerView` and `PlayerControlView` no longer
+ adjusts the colors of the scrubber handle , buffered and unplayed parts of
+ the time bar. These can be set separately using `app:scrubber_color`,
+ `app:buffered_color` and `app_unplayed_color` respectively.
+ * Setting `app:ad_marker_color` on `PlayerView` and `PlayerControlView` no
+ longer adjusts the color of played ad markers. The color of played ad
+ markers can be set separately using `app:played_ad_marker_color`.
### 2.10.5 (2019-09-20) ###
diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java
index 5c70203788..718ac5e552 100644
--- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java
+++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java
@@ -98,19 +98,19 @@ import java.util.concurrent.CopyOnWriteArraySet;
*
{@code scrubber_color} - Color for the scrubber handle.
*
* - Corresponding method: {@link #setScrubberColor(int)}
- *
- Default: see {@link #getDefaultScrubberColor(int)}
+ *
- Default: {@link #DEFAULT_SCRUBBER_COLOR}
*
* {@code buffered_color} - Color for the portion of the time bar after the current
* played position up to the current buffered position.
*
* - Corresponding method: {@link #setBufferedColor(int)}
- *
- Default: see {@link #getDefaultBufferedColor(int)}
+ *
- Default: {@link #DEFAULT_BUFFERED_COLOR}
*
* {@code unplayed_color} - Color for the portion of the time bar after the current
* buffered position.
*
* - Corresponding method: {@link #setUnplayedColor(int)}
- *
- Default: see {@link #getDefaultUnplayedColor(int)}
+ *
- Default: {@link #DEFAULT_UNPLAYED_COLOR}
*
* {@code ad_marker_color} - Color for unplayed ad markers.
*
@@ -120,7 +120,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
* - {@code played_ad_marker_color} - Color for played ad markers.
*
* - Corresponding method: {@link #setPlayedAdMarkerColor(int)}
- *
- Default: see {@link #getDefaultPlayedAdMarkerColor(int)}
+ *
- Default: {@link #DEFAULT_PLAYED_AD_MARKER_COLOR}
*
*
*/
@@ -154,10 +154,16 @@ public class DefaultTimeBar extends View implements TimeBar {
* Default color for the played portion of the time bar.
*/
public static final int DEFAULT_PLAYED_COLOR = 0xFFFFFFFF;
- /**
- * Default color for ad markers.
- */
+ /** Default color for the played portion of the time bar. */
+ public static final int DEFAULT_UNPLAYED_COLOR = 0x33FFFFFF;
+ /** Default color for the buffered portion of the time bar. */
+ public static final int DEFAULT_BUFFERED_COLOR = 0xCCFFFFFF;
+ /** Default color for the scrubber handle. */
+ public static final int DEFAULT_SCRUBBER_COLOR = 0xFFFFFFFF;
+ /** Default color for ad markers. */
public static final int DEFAULT_AD_MARKER_COLOR = 0xB2FFFF00;
+ /** Default color for played ad markers. */
+ public static final int DEFAULT_PLAYED_AD_MARKER_COLOR = 0x33FFFF00;
/**
* The threshold in dps above the bar at which touch events trigger fine scrub mode.
@@ -289,16 +295,17 @@ public class DefaultTimeBar extends View implements TimeBar {
scrubberDraggedSize = a.getDimensionPixelSize(
R.styleable.DefaultTimeBar_scrubber_dragged_size, defaultScrubberDraggedSize);
int playedColor = a.getInt(R.styleable.DefaultTimeBar_played_color, DEFAULT_PLAYED_COLOR);
- int scrubberColor = a.getInt(R.styleable.DefaultTimeBar_scrubber_color,
- getDefaultScrubberColor(playedColor));
- int bufferedColor = a.getInt(R.styleable.DefaultTimeBar_buffered_color,
- getDefaultBufferedColor(playedColor));
- int unplayedColor = a.getInt(R.styleable.DefaultTimeBar_unplayed_color,
- getDefaultUnplayedColor(playedColor));
+ int scrubberColor =
+ a.getInt(R.styleable.DefaultTimeBar_scrubber_color, DEFAULT_SCRUBBER_COLOR);
+ int bufferedColor =
+ a.getInt(R.styleable.DefaultTimeBar_buffered_color, DEFAULT_BUFFERED_COLOR);
+ int unplayedColor =
+ a.getInt(R.styleable.DefaultTimeBar_unplayed_color, DEFAULT_UNPLAYED_COLOR);
int adMarkerColor = a.getInt(R.styleable.DefaultTimeBar_ad_marker_color,
DEFAULT_AD_MARKER_COLOR);
- int playedAdMarkerColor = a.getInt(R.styleable.DefaultTimeBar_played_ad_marker_color,
- getDefaultPlayedAdMarkerColor(adMarkerColor));
+ int playedAdMarkerColor =
+ a.getInt(
+ R.styleable.DefaultTimeBar_played_ad_marker_color, DEFAULT_PLAYED_AD_MARKER_COLOR);
playedPaint.setColor(playedColor);
scrubberPaint.setColor(scrubberColor);
bufferedPaint.setColor(bufferedColor);
@@ -316,10 +323,11 @@ public class DefaultTimeBar extends View implements TimeBar {
scrubberDisabledSize = defaultScrubberDisabledSize;
scrubberDraggedSize = defaultScrubberDraggedSize;
playedPaint.setColor(DEFAULT_PLAYED_COLOR);
- scrubberPaint.setColor(getDefaultScrubberColor(DEFAULT_PLAYED_COLOR));
- bufferedPaint.setColor(getDefaultBufferedColor(DEFAULT_PLAYED_COLOR));
- unplayedPaint.setColor(getDefaultUnplayedColor(DEFAULT_PLAYED_COLOR));
+ scrubberPaint.setColor(DEFAULT_SCRUBBER_COLOR);
+ bufferedPaint.setColor(DEFAULT_BUFFERED_COLOR);
+ unplayedPaint.setColor(DEFAULT_UNPLAYED_COLOR);
adMarkerPaint.setColor(DEFAULT_AD_MARKER_COLOR);
+ playedAdMarkerPaint.setColor(DEFAULT_PLAYED_AD_MARKER_COLOR);
scrubberDrawable = null;
}
formatBuilder = new StringBuilder();
@@ -856,22 +864,6 @@ public class DefaultTimeBar extends View implements TimeBar {
return Util.SDK_INT >= 23 && drawable.setLayoutDirection(layoutDirection);
}
- public static int getDefaultScrubberColor(int playedColor) {
- return 0xFF000000 | playedColor;
- }
-
- public static int getDefaultUnplayedColor(int playedColor) {
- return 0x33000000 | (playedColor & 0x00FFFFFF);
- }
-
- public static int getDefaultBufferedColor(int playedColor) {
- return 0xCC000000 | (playedColor & 0x00FFFFFF);
- }
-
- public static int getDefaultPlayedAdMarkerColor(int adMarkerColor) {
- return 0x33000000 | (adMarkerColor & 0x00FFFFFF);
- }
-
private static int dpToPx(float density, int dps) {
return (int) (dps * density + 0.5f);
}