Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55d70620 authored by Alan Viverette's avatar Alan Viverette
Browse files

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
parent f51021c3
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -29919,6 +29919,7 @@ package android.view.accessibility {
    field public final int edgeColor;
    field public final int edgeColor;
    field public final int edgeType;
    field public final int edgeType;
    field public final int foregroundColor;
    field public final int foregroundColor;
    field public final int windowColor;
  }
  }
  public static abstract class CaptioningManager.CaptioningChangeListener {
  public static abstract class CaptioningManager.CaptioningChangeListener {
+10 −0
Original line number Original line Diff line number Diff line
@@ -3740,6 +3740,16 @@ public final class Settings {
        public static final String ACCESSIBILITY_CAPTIONING_EDGE_COLOR =
        public static final String ACCESSIBILITY_CAPTIONING_EDGE_COLOR =
                "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:
         * String property that specifies the typeface for captions, one of:
         * <ul>
         * <ul>
+17 −11
Original line number Original line Diff line number Diff line
@@ -293,6 +293,9 @@ public class CaptioningManager {
         */
         */
        public final int edgeColor;
        public final int edgeColor;


        /** The preferred window color for video captions. */
        public final int windowColor;

        /**
        /**
         * @hide
         * @hide
         */
         */
@@ -301,11 +304,12 @@ public class CaptioningManager {
        private Typeface mParsedTypeface;
        private Typeface mParsedTypeface;


        private CaptionStyle(int foregroundColor, int backgroundColor, int edgeType, int edgeColor,
        private CaptionStyle(int foregroundColor, int backgroundColor, int edgeType, int edgeColor,
                String rawTypeface) {
                int windowColor, String rawTypeface) {
            this.foregroundColor = foregroundColor;
            this.foregroundColor = foregroundColor;
            this.backgroundColor = backgroundColor;
            this.backgroundColor = backgroundColor;
            this.edgeType = edgeType;
            this.edgeType = edgeType;
            this.edgeColor = edgeColor;
            this.edgeColor = edgeColor;
            this.windowColor = windowColor;


            mRawTypeface = rawTypeface;
            mRawTypeface = rawTypeface;
        }
        }
@@ -334,25 +338,27 @@ public class CaptioningManager {
                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE, defStyle.edgeType);
                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE, defStyle.edgeType);
            final int edgeColor = Secure.getInt(
            final int edgeColor = Secure.getInt(
                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_COLOR, defStyle.edgeColor);
                    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);
            String rawTypeface = Secure.getString(cr, Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE);
            if (rawTypeface == null) {
            if (rawTypeface == null) {
                rawTypeface = defStyle.mRawTypeface;
                rawTypeface = defStyle.mRawTypeface;
            }
            }


            return new CaptionStyle(
            return new CaptionStyle(foregroundColor, backgroundColor, edgeType, edgeColor,
                    foregroundColor, backgroundColor, edgeType, edgeColor, rawTypeface);
                    windowColor, rawTypeface);
        }
        }


        static {
        static {
            WHITE_ON_BLACK = new CaptionStyle(
            WHITE_ON_BLACK = new CaptionStyle(Color.WHITE, Color.BLACK, EDGE_TYPE_NONE,
                    Color.WHITE, Color.BLACK, EDGE_TYPE_NONE, Color.BLACK, null);
                    Color.BLACK, Color.TRANSPARENT, null);
            BLACK_ON_WHITE = new CaptionStyle(
            BLACK_ON_WHITE = new CaptionStyle(Color.BLACK, Color.WHITE, EDGE_TYPE_NONE,
                    Color.BLACK, Color.WHITE, EDGE_TYPE_NONE, Color.BLACK, null);
                    Color.BLACK, Color.TRANSPARENT, null);
            YELLOW_ON_BLACK = new CaptionStyle(
            YELLOW_ON_BLACK = new CaptionStyle(Color.YELLOW, Color.BLACK, EDGE_TYPE_NONE,
                    Color.YELLOW, Color.BLACK, EDGE_TYPE_NONE, Color.BLACK, null);
                    Color.BLACK, Color.TRANSPARENT, null);
            YELLOW_ON_BLUE = new CaptionStyle(
            YELLOW_ON_BLUE = new CaptionStyle(Color.YELLOW, Color.BLUE, EDGE_TYPE_NONE,
                    Color.YELLOW, Color.BLUE, EDGE_TYPE_NONE, Color.BLACK, null);
                    Color.BLACK, Color.TRANSPARENT, null);


            PRESETS = new CaptionStyle[] {
            PRESETS = new CaptionStyle[] {
                    WHITE_ON_BLACK, BLACK_ON_WHITE, YELLOW_ON_BLACK, YELLOW_ON_BLUE
                    WHITE_ON_BLACK, BLACK_ON_WHITE, YELLOW_ON_BLACK, YELLOW_ON_BLUE
+4 −0
Original line number Original line Diff line number Diff line
@@ -1525,6 +1525,8 @@ class WebVttRenderingWidget extends ViewGroup implements SubtitleTrack.Rendering


            if (DEBUG) {
            if (DEBUG) {
                setBackgroundColor(DEBUG_REGION_BACKGROUND);
                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);
                final CueLayout cueBox = mRegionCueBoxes.get(i);
                cueBox.setCaptionStyle(captionStyle, fontSize);
                cueBox.setCaptionStyle(captionStyle, fontSize);
            }
            }

            setBackgroundColor(captionStyle.windowColor);
        }
        }


        /**
        /**