summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2013-12-11 15:22:14 -0800
committerAlan Viverette <alanv@google.com>2013-12-11 15:22:14 -0800
commit55d70620d9fda8afafb2fdec59757a710eec0e89 (patch)
treead265b887f5c323a7c7bf3fbf5b61308cadb4bc9
parentf51021c32c1998456e1d8f6b0effc0297c2fff05 (diff)
downloadframeworks_base-55d70620d9fda8afafb2fdec59757a710eec0e89.zip
frameworks_base-55d70620d9fda8afafb2fdec59757a710eec0e89.tar.gz
frameworks_base-55d70620d9fda8afafb2fdec59757a710eec0e89.tar.bz2
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
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/provider/Settings.java10
-rw-r--r--core/java/android/view/accessibility/CaptioningManager.java28
-rw-r--r--media/java/android/media/WebVttRenderer.java4
4 files changed, 32 insertions, 11 deletions
diff --git a/api/current.txt b/api/current.txt
index 3605dc3..f66011e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -29919,6 +29919,7 @@ package android.view.accessibility {
field public final int edgeColor;
field public final int edgeType;
field public final int foregroundColor;
+ field public final int windowColor;
}
public static abstract class CaptioningManager.CaptioningChangeListener {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 0dffc17..ec3819a 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -3741,6 +3741,16 @@ public final class Settings {
"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>
* <li>DEFAULT
diff --git a/core/java/android/view/accessibility/CaptioningManager.java b/core/java/android/view/accessibility/CaptioningManager.java
index 557239f..02929ed 100644
--- a/core/java/android/view/accessibility/CaptioningManager.java
+++ b/core/java/android/view/accessibility/CaptioningManager.java
@@ -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
diff --git a/media/java/android/media/WebVttRenderer.java b/media/java/android/media/WebVttRenderer.java
index b09c5bd..58d3520 100644
--- a/media/java/android/media/WebVttRenderer.java
+++ b/media/java/android/media/WebVttRenderer.java
@@ -1525,6 +1525,8 @@ class WebVttRenderingWidget extends ViewGroup implements SubtitleTrack.Rendering
if (DEBUG) {
setBackgroundColor(DEBUG_REGION_BACKGROUND);
+ } else {
+ setBackgroundColor(captionStyle.windowColor);
}
}
@@ -1537,6 +1539,8 @@ class WebVttRenderingWidget extends ViewGroup implements SubtitleTrack.Rendering
final CueLayout cueBox = mRegionCueBoxes.get(i);
cueBox.setCaptionStyle(captionStyle, fontSize);
}
+
+ setBackgroundColor(captionStyle.windowColor);
}
/**