From: Alan Viverette Date: Tue, 27 Aug 2013 18:11:00 +0000 (-0700) Subject: Update captioning settings to match revised API X-Git-Tag: android-x86-4.4-r1~183^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5ea751e48fc3d7c25cf4e44ef5926e8e70979b5a;p=android-x86%2Fpackages-apps-Settings.git Update captioning settings to match revised API BUG: 10461210 Change-Id: I44d1fdeaead4357ff2591db6d9dda1c8a231103c --- diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 20f759d67d..0e02af8909 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -735,11 +735,11 @@ - 12.0 - 24.0 - 48.0 - 72.0 - 96.0 + 0.25 + 0.5 + 1.0 + 1.5 + 2.0 diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java index c744a9f427..b010ca8c8c 100644 --- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java +++ b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java @@ -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( diff --git a/src/com/android/settings/accessibility/EdgeTypePreference.java b/src/com/android/settings/accessibility/EdgeTypePreference.java index 1d73e6c665..ad71a765c7 100644 --- a/src/com/android/settings/accessibility/EdgeTypePreference.java +++ b/src/com/android/settings/accessibility/EdgeTypePreference.java @@ -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) { diff --git a/src/com/android/settings/accessibility/PresetPreference.java b/src/com/android/settings/accessibility/PresetPreference.java index 9ac7ef8ee3..c091f712ca 100644 --- a/src/com/android/settings/accessibility/PresetPreference.java +++ b/src/com/android/settings/accessibility/PresetPreference.java @@ -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) { diff --git a/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java index a0835d2d61..3934646097 100644 --- a/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java @@ -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);