diff options
author | Alan Viverette <alanv@google.com> | 2013-12-11 15:22:14 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2013-12-11 15:22:14 -0800 |
commit | 55d70620d9fda8afafb2fdec59757a710eec0e89 (patch) | |
tree | ad265b887f5c323a7c7bf3fbf5b61308cadb4bc9 | |
parent | f51021c32c1998456e1d8f6b0effc0297c2fff05 (diff) | |
download | frameworks_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.txt | 1 | ||||
-rw-r--r-- | core/java/android/provider/Settings.java | 10 | ||||
-rw-r--r-- | core/java/android/view/accessibility/CaptioningManager.java | 28 | ||||
-rw-r--r-- | media/java/android/media/WebVttRenderer.java | 4 |
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); } /** |