Add caption window color attribute

The WebVTT rendering implementation interprets window color as region
color, since there is no window for non-region captions.

BUG: 12020757
Change-Id: Ie891e1343d718783fc32c712860f886de22558ec
This commit is contained in:
Alan Viverette
2013-12-11 15:22:14 -08:00
parent f51021c32c
commit 55d70620d9
4 changed files with 32 additions and 11 deletions

View File

@@ -3740,6 +3740,16 @@ public final class Settings {
public static final String ACCESSIBILITY_CAPTIONING_EDGE_COLOR =
"accessibility_captioning_edge_color";
/**
* Integer property that specifes the window color for captions as a
* packed 32-bit color.
*
* @see android.graphics.Color#argb
* @hide
*/
public static final String ACCESSIBILITY_CAPTIONING_WINDOW_COLOR =
"accessibility_captioning_window_color";
/**
* String property that specifies the typeface for captions, one of:
* <ul>

View File

@@ -293,6 +293,9 @@ public class CaptioningManager {
*/
public final int edgeColor;
/** The preferred window color for video captions. */
public final int windowColor;
/**
* @hide
*/
@@ -301,11 +304,12 @@ public class CaptioningManager {
private Typeface mParsedTypeface;
private CaptionStyle(int foregroundColor, int backgroundColor, int edgeType, int edgeColor,
String rawTypeface) {
int windowColor, String rawTypeface) {
this.foregroundColor = foregroundColor;
this.backgroundColor = backgroundColor;
this.edgeType = edgeType;
this.edgeColor = edgeColor;
this.windowColor = windowColor;
mRawTypeface = rawTypeface;
}
@@ -334,25 +338,27 @@ public class CaptioningManager {
cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE, defStyle.edgeType);
final int edgeColor = Secure.getInt(
cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_COLOR, defStyle.edgeColor);
final int windowColor = Secure.getInt(
cr, Secure.ACCESSIBILITY_CAPTIONING_WINDOW_COLOR, defStyle.windowColor);
String rawTypeface = Secure.getString(cr, Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE);
if (rawTypeface == null) {
rawTypeface = defStyle.mRawTypeface;
}
return new CaptionStyle(
foregroundColor, backgroundColor, edgeType, edgeColor, rawTypeface);
return new CaptionStyle(foregroundColor, backgroundColor, edgeType, edgeColor,
windowColor, rawTypeface);
}
static {
WHITE_ON_BLACK = new CaptionStyle(
Color.WHITE, Color.BLACK, EDGE_TYPE_NONE, Color.BLACK, null);
BLACK_ON_WHITE = new CaptionStyle(
Color.BLACK, Color.WHITE, EDGE_TYPE_NONE, Color.BLACK, null);
YELLOW_ON_BLACK = new CaptionStyle(
Color.YELLOW, Color.BLACK, EDGE_TYPE_NONE, Color.BLACK, null);
YELLOW_ON_BLUE = new CaptionStyle(
Color.YELLOW, Color.BLUE, EDGE_TYPE_NONE, Color.BLACK, null);
WHITE_ON_BLACK = new CaptionStyle(Color.WHITE, Color.BLACK, EDGE_TYPE_NONE,
Color.BLACK, Color.TRANSPARENT, null);
BLACK_ON_WHITE = new CaptionStyle(Color.BLACK, Color.WHITE, EDGE_TYPE_NONE,
Color.BLACK, Color.TRANSPARENT, null);
YELLOW_ON_BLACK = new CaptionStyle(Color.YELLOW, Color.BLACK, EDGE_TYPE_NONE,
Color.BLACK, Color.TRANSPARENT, null);
YELLOW_ON_BLUE = new CaptionStyle(Color.YELLOW, Color.BLUE, EDGE_TYPE_NONE,
Color.BLACK, Color.TRANSPARENT, null);
PRESETS = new CaptionStyle[] {
WHITE_ON_BLACK, BLACK_ON_WHITE, YELLOW_ON_BLACK, YELLOW_ON_BLUE