OSDN Git Service

Update captioning settings to match revised API
authorAlan Viverette <alanv@google.com>
Tue, 27 Aug 2013 18:11:00 +0000 (11:11 -0700)
committerAlan Viverette <alanv@google.com>
Tue, 27 Aug 2013 18:11:00 +0000 (11:11 -0700)
BUG: 10461210
Change-Id: I44d1fdeaead4357ff2591db6d9dda1c8a231103c

res/values/arrays.xml
src/com/android/settings/accessibility/CaptionPropertiesFragment.java
src/com/android/settings/accessibility/EdgeTypePreference.java
src/com/android/settings/accessibility/PresetPreference.java
src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java

index 20f759d..0e02af8 100644 (file)
 
     <!-- Values for captioning font size preference. -->
     <string-array name="captioning_font_size_selector_values" translatable="false" >
-        <item>12.0</item>
-        <item>24.0</item>
-        <item>48.0</item>
-        <item>72.0</item>
-        <item>96.0</item>
+        <item>0.25</item>
+        <item>0.5</item>
+        <item>1.0</item>
+        <item>1.5</item>
+        <item>2.0</item>
     </string-array>
 
     <!-- Titles for captioning character edge type preference. [CHAR LIMIT=35] -->
index c744a9f..b010ca8 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.settings.accessibility;
 
 import android.content.ContentResolver;
+import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Color;
 import android.os.Bundle;
@@ -38,6 +39,7 @@ import com.android.settings.accessibility.ListDialogPreference.OnValueChangedLis
 public class CaptionPropertiesFragment extends SettingsPreferenceFragment
         implements OnPreferenceChangeListener, OnValueChangedListener {
     private ToggleCaptioningPreferenceFragment mParent;
+    private CaptioningManager mCaptioningManager;
 
     // Standard options.
     private LocalePreference mLocale;
@@ -58,6 +60,9 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+
+        mCaptioningManager = (CaptioningManager) getSystemService(Context.CAPTIONING_SERVICE);
+
         addPreferencesFromResource(R.xml.captioning_settings);
         initializeAllPreferences();
         updateAllPreferences();
@@ -134,13 +139,13 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
     }
 
     private void updateAllPreferences() {
-        final ContentResolver cr = getContentResolver();
-        final int preset = CaptionStyle.getRawPreset(cr);
+        final int preset = mCaptioningManager.getRawUserStyle();
         mPreset.setValue(preset);
 
-        final float fontSize = CaptioningManager.getFontSize(cr);
+        final float fontSize = mCaptioningManager.getFontScale();
         mFontSize.setValue(Float.toString(fontSize));
 
+        final ContentResolver cr = getContentResolver();
         final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr);
         mForegroundColor.setValue(attrs.foregroundColor);
         mEdgeType.setValue(attrs.edgeType);
@@ -162,7 +167,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
         final String rawTypeface = attrs.mRawTypeface;
         mTypeface.setValue(rawTypeface == null ? "" : rawTypeface);
 
-        final String rawLocale = CaptioningManager.getRawLocale(cr);
+        final String rawLocale = mCaptioningManager.getRawLocale();
         mLocale.setValue(rawLocale == null ? "" : rawLocale);
     }
 
@@ -220,7 +225,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
                     cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) value);
         } else if (mFontSize == preference) {
             Settings.Secure.putFloat(
-                    cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SIZE,
+                    cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
                     Float.parseFloat((String) value));
         } else if (mLocale == preference) {
             Settings.Secure.putString(
index 1d73e6c..ad71a76 100644 (file)
@@ -21,7 +21,6 @@ import android.content.res.Resources;
 import android.graphics.Color;
 import android.util.AttributeSet;
 import android.view.View;
-import android.view.accessibility.CaptioningManager;
 import android.view.accessibility.CaptioningManager.CaptionStyle;
 import android.widget.TextView;
 
@@ -32,6 +31,11 @@ import com.android.settings.R;
  * Grid preference that allows the user to pick a captioning edge type.
  */
 public class EdgeTypePreference extends ListDialogPreference {
+    private static final int DEFAULT_FOREGROUND_COLOR = Color.WHITE;
+    private static final int DEFAULT_BACKGROUND_COLOR = Color.TRANSPARENT;
+    private static final int DEFAULT_EDGE_COLOR = Color.BLACK;
+    private static final float DEFAULT_FONT_SIZE = 96f;
+
     public EdgeTypePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
 
@@ -49,16 +53,15 @@ public class EdgeTypePreference extends ListDialogPreference {
 
     @Override
     protected void onBindListItem(View view, int index) {
-        final float fontSize = CaptioningManager.getFontSize(getContext().getContentResolver());
         final SubtitleView preview = (SubtitleView) view.findViewById(R.id.preview);
 
-        preview.setForegroundColor(Color.WHITE);
-        preview.setBackgroundColor(Color.TRANSPARENT);
-        preview.setTextSize(fontSize);
+        preview.setForegroundColor(DEFAULT_FOREGROUND_COLOR);
+        preview.setBackgroundColor(DEFAULT_BACKGROUND_COLOR);
+        preview.setTextSize(DEFAULT_FONT_SIZE);
 
         final int value = getValueAt(index);
         preview.setEdgeType(value);
-        preview.setEdgeColor(Color.BLACK);
+        preview.setEdgeColor(DEFAULT_EDGE_COLOR);
 
         final CharSequence title = getTitleAt(index);
         if (title != null) {
index 9ac7ef8..c091f71 100644 (file)
@@ -19,6 +19,7 @@ package com.android.settings.accessibility;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
+import android.view.accessibility.CaptioningManager;
 import android.view.accessibility.CaptioningManager.CaptionStyle;
 import android.widget.TextView;
 
@@ -26,11 +27,18 @@ import com.android.internal.widget.SubtitleView;
 import com.android.settings.R;
 
 public class PresetPreference extends ListDialogPreference {
+    private static final float DEFAULT_FONT_SIZE = 96f;
+
+    private final CaptioningManager mCaptioningManager;
+
     public PresetPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
 
         setDialogLayoutResource(R.layout.grid_picker_dialog);
         setListItemLayoutResource(R.layout.preset_picker_item);
+
+        mCaptioningManager = (CaptioningManager) context.getSystemService(
+                Context.CAPTIONING_SERVICE);
     }
 
     @Override
@@ -43,7 +51,10 @@ public class PresetPreference extends ListDialogPreference {
     protected void onBindListItem(View view, int index) {
         final SubtitleView previewText = (SubtitleView) view.findViewById(R.id.preview);
         final int value = getValueAt(index);
-        ToggleCaptioningPreferenceFragment.applyCaptionProperties(previewText, value);
+        ToggleCaptioningPreferenceFragment.applyCaptionProperties(
+                mCaptioningManager, previewText, value);
+
+        previewText.setTextSize(DEFAULT_FONT_SIZE);
 
         final CharSequence title = getTitleAt(index);
         if (title != null) {
index a0835d2..3934646 100644 (file)
@@ -29,7 +29,6 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.accessibility.CaptioningManager;
-import android.view.accessibility.CaptioningManager.CaptionStyle;
 
 import com.android.internal.widget.SubtitleView;
 import com.android.settings.R;
@@ -38,8 +37,19 @@ import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeList
 import java.util.Locale;
 
 public class ToggleCaptioningPreferenceFragment extends Fragment {
+    private static final float DEFAULT_FONT_SIZE = 48f;
+
     private CaptionPropertiesFragment mPropsFragment;
     private SubtitleView mPreviewText;
+    private CaptioningManager mCaptioningManager;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mCaptioningManager = (CaptioningManager) getActivity()
+                .getSystemService(Context.CAPTIONING_SERVICE);
+    }
 
     @Override
     public View onCreateView(
@@ -74,10 +84,10 @@ public class ToggleCaptioningPreferenceFragment extends Fragment {
         if (preview != null) {
             final Activity activity = getActivity();
             final ContentResolver cr = activity.getContentResolver();
-            final int styleId = CaptionStyle.getRawPreset(cr);
-            applyCaptionProperties(preview, styleId);
+            final int styleId = mCaptioningManager.getRawUserStyle();
+            applyCaptionProperties(mCaptioningManager, preview, styleId);
 
-            final Locale locale = CaptioningManager.getLocale(cr);
+            final Locale locale = mCaptioningManager.getLocale();
             if (locale != null) {
                 final CharSequence localizedText = AccessibilityUtils.getTextForLocale(
                         activity, locale, R.string.captioning_preview_text);
@@ -86,15 +96,16 @@ public class ToggleCaptioningPreferenceFragment extends Fragment {
         }
     }
 
-    public static void applyCaptionProperties(SubtitleView previewText, int styleId) {
+    public static void applyCaptionProperties(
+            CaptioningManager manager, SubtitleView previewText, int styleId) {
         previewText.setStyle(styleId);
 
         final Context context = previewText.getContext();
         final ContentResolver cr = context.getContentResolver();
-        final float fontSize = CaptioningManager.getFontSize(cr);
-        previewText.setTextSize(fontSize);
+        final float fontScale = manager.getFontScale();
+        previewText.setTextSize(fontScale * DEFAULT_FONT_SIZE);
 
-        final Locale locale = CaptioningManager.getLocale(cr);
+        final Locale locale = manager.getLocale();
         if (locale != null) {
             final CharSequence localizedText = AccessibilityUtils.getTextForLocale(
                     context, locale, R.string.captioning_preview_characters);
@@ -118,7 +129,7 @@ public class ToggleCaptioningPreferenceFragment extends Fragment {
                         Gravity.CENTER_VERTICAL | Gravity.END);
         actionBar.setCustomView(toggleSwitch, params);
 
-        final boolean enabled = CaptioningManager.isEnabled(getActivity().getContentResolver());
+        final boolean enabled = mCaptioningManager.isEnabled();
         mPropsFragment.getPreferenceScreen().setEnabled(enabled);
         mPreviewText.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
         toggleSwitch.setCheckedInternal(enabled);