From 5a7dbae18c90d68b757f2f9296aff114e1570d75 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 7 Apr 2020 10:31:00 +0100 Subject: [PATCH] Use Android's Color.argb() and Color.rgb() methods in ColorParser PiperOrigin-RevId: 305216138 --- .../android/exoplayer2/util/ColorParser.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/ColorParser.java b/library/core/src/main/java/com/google/android/exoplayer2/util/ColorParser.java index 808bd77fb8..85ef43f669 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/ColorParser.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/ColorParser.java @@ -15,7 +15,9 @@ */ package com.google.android.exoplayer2.util; +import android.graphics.Color; import android.text.TextUtils; +import androidx.annotation.ColorInt; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -49,6 +51,7 @@ public final class ColorParser { * @param colorExpression The color expression. * @return The parsed ARGB color. */ + @ColorInt public static int parseTtmlColor(String colorExpression) { return parseColorInternal(colorExpression, false); } @@ -59,10 +62,12 @@ public final class ColorParser { * @param colorExpression The color expression. * @return The parsed ARGB color. */ + @ColorInt public static int parseCssColor(String colorExpression) { return parseColorInternal(colorExpression, true); } + @ColorInt private static int parseColorInternal(String colorExpression, boolean alphaHasFloatFormat) { Assertions.checkArgument(!TextUtils.isEmpty(colorExpression)); colorExpression = colorExpression.replace(" ", ""); @@ -83,7 +88,7 @@ public final class ColorParser { Matcher matcher = (alphaHasFloatFormat ? RGBA_PATTERN_FLOAT_ALPHA : RGBA_PATTERN_INT_ALPHA) .matcher(colorExpression); if (matcher.matches()) { - return argb( + return Color.argb( alphaHasFloatFormat ? (int) (255 * Float.parseFloat(Assertions.checkNotNull(matcher.group(4)))) : Integer.parseInt(Assertions.checkNotNull(matcher.group(4)), 10), @@ -94,7 +99,7 @@ public final class ColorParser { } else if (colorExpression.startsWith(RGB)) { Matcher matcher = RGB_PATTERN.matcher(colorExpression); if (matcher.matches()) { - return rgb( + return Color.rgb( Integer.parseInt(Assertions.checkNotNull(matcher.group(1)), 10), Integer.parseInt(Assertions.checkNotNull(matcher.group(2)), 10), Integer.parseInt(Assertions.checkNotNull(matcher.group(3)), 10)); @@ -109,14 +114,6 @@ public final class ColorParser { throw new IllegalArgumentException(); } - private static int argb(int alpha, int red, int green, int blue) { - return (alpha << 24) | (red << 16) | (green << 8) | blue; - } - - private static int rgb(int red, int green, int blue) { - return argb(0xFF, red, green, blue); - } - static { COLOR_MAP = new HashMap<>(); COLOR_MAP.put("aliceblue", 0xFFF0F8FF);