diff options
| author | Alan Viverette <alanv@google.com> | 2015-06-22 13:06:24 -0700 |
|---|---|---|
| committer | Alan Viverette <alanv@google.com> | 2015-06-22 13:06:24 -0700 |
| commit | 7e4019b7413511bb60e19d6011c80baf00e40b76 (patch) | |
| tree | 5d1636a60817bc4287a8cc0ffcf71a6f96ea49c9 /core/java/android/view/accessibility | |
| parent | b5a479c1f08c8ea41a1523695bc482c79ed4ea54 (diff) | |
| download | frameworks_base-7e4019b7413511bb60e19d6011c80baf00e40b76.zip frameworks_base-7e4019b7413511bb60e19d6011c80baf00e40b76.tar.gz frameworks_base-7e4019b7413511bb60e19d6011c80baf00e40b76.tar.bz2 | |
Match default color packing for captioning settings
"Default" packed colors are indicated by zero alpha and non-zero
red/blue. The cached alpha value used by Settings is stored in green.
Bug: 21602597
Change-Id: I1465210fda854ee979aa3a6b398ae60b41d10711
Diffstat (limited to 'core/java/android/view/accessibility')
| -rw-r--r-- | core/java/android/view/accessibility/CaptioningManager.java | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/core/java/android/view/accessibility/CaptioningManager.java b/core/java/android/view/accessibility/CaptioningManager.java index 410d39c..14f0b0a 100644 --- a/core/java/android/view/accessibility/CaptioningManager.java +++ b/core/java/android/view/accessibility/CaptioningManager.java @@ -266,11 +266,19 @@ public class CaptioningManager { * background colors, edge properties, and typeface. */ public static final class CaptionStyle { - /** Packed value for a color of 'none' and a cached opacity of 100%. */ + /** + * Packed value for a color of 'none' and a cached opacity of 100%. + * + * @hide + */ private static final int COLOR_NONE_OPAQUE = 0x000000FF; - /** Packed value for an unspecified color and opacity. */ - private static final int COLOR_UNSPECIFIED = 0x000001FF; + /** + * Packed value for a color of 'default' and opacity of 100%. + * + * @hide + */ + public static final int COLOR_UNSPECIFIED = 0x00FFFFFF; private static final CaptionStyle WHITE_ON_BLACK; private static final CaptionStyle BLACK_ON_WHITE; @@ -350,11 +358,11 @@ public class CaptioningManager { private CaptionStyle(int foregroundColor, int backgroundColor, int edgeType, int edgeColor, int windowColor, String rawTypeface) { - mHasForegroundColor = foregroundColor != COLOR_UNSPECIFIED; - mHasBackgroundColor = backgroundColor != COLOR_UNSPECIFIED; + mHasForegroundColor = hasColor(foregroundColor); + mHasBackgroundColor = hasColor(backgroundColor); mHasEdgeType = edgeType != EDGE_TYPE_UNSPECIFIED; - mHasEdgeColor = edgeColor != COLOR_UNSPECIFIED; - mHasWindowColor = windowColor != COLOR_UNSPECIFIED; + mHasEdgeColor = hasColor(edgeColor); + mHasWindowColor = hasColor(windowColor); // Always use valid colors, even when no override is specified, to // ensure backwards compatibility with apps targeting KitKat MR2. @@ -368,6 +376,20 @@ public class CaptioningManager { } /** + * Returns whether a packed color indicates a non-default value. + * + * @param packedColor the packed color value + * @return {@code true} if a non-default value is specified + * @hide + */ + public static boolean hasColor(int packedColor) { + // Matches the color packing code from Settings. "Default" packed + // colors are indicated by zero alpha and non-zero red/blue. The + // cached alpha value used by Settings is stored in green. + return (packedColor >>> 24) != 0 || (packedColor & 0xFFFF00) == 0; + } + + /** * Applies a caption style, overriding any properties that are specified * in the overlay caption. * |
