Merge "Update captioning settings to match revised API" into klp-dev

This commit is contained in:
Alan Viverette
2013-08-30 21:35:04 +00:00
committed by Android (Google) Code Review
5 changed files with 56 additions and 26 deletions

View File

@@ -735,11 +735,11 @@
<!-- Values for captioning font size preference. --> <!-- Values for captioning font size preference. -->
<string-array name="captioning_font_size_selector_values" translatable="false" > <string-array name="captioning_font_size_selector_values" translatable="false" >
<item>12.0</item> <item>0.25</item>
<item>24.0</item> <item>0.5</item>
<item>48.0</item> <item>1.0</item>
<item>72.0</item> <item>1.5</item>
<item>96.0</item> <item>2.0</item>
</string-array> </string-array>
<!-- Titles for captioning character edge type preference. [CHAR LIMIT=35] --> <!-- Titles for captioning character edge type preference. [CHAR LIMIT=35] -->

View File

@@ -17,6 +17,7 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
@@ -38,6 +39,7 @@ import com.android.settings.accessibility.ListDialogPreference.OnValueChangedLis
public class CaptionPropertiesFragment extends SettingsPreferenceFragment public class CaptionPropertiesFragment extends SettingsPreferenceFragment
implements OnPreferenceChangeListener, OnValueChangedListener { implements OnPreferenceChangeListener, OnValueChangedListener {
private ToggleCaptioningPreferenceFragment mParent; private ToggleCaptioningPreferenceFragment mParent;
private CaptioningManager mCaptioningManager;
// Standard options. // Standard options.
private LocalePreference mLocale; private LocalePreference mLocale;
@@ -58,6 +60,9 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
mCaptioningManager = (CaptioningManager) getSystemService(Context.CAPTIONING_SERVICE);
addPreferencesFromResource(R.xml.captioning_settings); addPreferencesFromResource(R.xml.captioning_settings);
initializeAllPreferences(); initializeAllPreferences();
updateAllPreferences(); updateAllPreferences();
@@ -134,13 +139,13 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
} }
private void updateAllPreferences() { private void updateAllPreferences() {
final ContentResolver cr = getContentResolver(); final int preset = mCaptioningManager.getRawUserStyle();
final int preset = CaptionStyle.getRawPreset(cr);
mPreset.setValue(preset); mPreset.setValue(preset);
final float fontSize = CaptioningManager.getFontSize(cr); final float fontSize = mCaptioningManager.getFontScale();
mFontSize.setValue(Float.toString(fontSize)); mFontSize.setValue(Float.toString(fontSize));
final ContentResolver cr = getContentResolver();
final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr); final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr);
mForegroundColor.setValue(attrs.foregroundColor); mForegroundColor.setValue(attrs.foregroundColor);
mEdgeType.setValue(attrs.edgeType); mEdgeType.setValue(attrs.edgeType);
@@ -162,7 +167,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
final String rawTypeface = attrs.mRawTypeface; final String rawTypeface = attrs.mRawTypeface;
mTypeface.setValue(rawTypeface == null ? "" : rawTypeface); mTypeface.setValue(rawTypeface == null ? "" : rawTypeface);
final String rawLocale = CaptioningManager.getRawLocale(cr); final String rawLocale = mCaptioningManager.getRawLocale();
mLocale.setValue(rawLocale == null ? "" : rawLocale); mLocale.setValue(rawLocale == null ? "" : rawLocale);
} }
@@ -220,7 +225,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) value); cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) value);
} else if (mFontSize == preference) { } else if (mFontSize == preference) {
Settings.Secure.putFloat( Settings.Secure.putFloat(
cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SIZE, cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
Float.parseFloat((String) value)); Float.parseFloat((String) value));
} else if (mLocale == preference) { } else if (mLocale == preference) {
Settings.Secure.putString( Settings.Secure.putString(

View File

@@ -21,7 +21,6 @@ import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.accessibility.CaptioningManager;
import android.view.accessibility.CaptioningManager.CaptionStyle; import android.view.accessibility.CaptioningManager.CaptionStyle;
import android.widget.TextView; 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. * Grid preference that allows the user to pick a captioning edge type.
*/ */
public class EdgeTypePreference extends ListDialogPreference { 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) { public EdgeTypePreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
@@ -49,16 +53,15 @@ public class EdgeTypePreference extends ListDialogPreference {
@Override @Override
protected void onBindListItem(View view, int index) { protected void onBindListItem(View view, int index) {
final float fontSize = CaptioningManager.getFontSize(getContext().getContentResolver());
final SubtitleView preview = (SubtitleView) view.findViewById(R.id.preview); final SubtitleView preview = (SubtitleView) view.findViewById(R.id.preview);
preview.setForegroundColor(Color.WHITE); preview.setForegroundColor(DEFAULT_FOREGROUND_COLOR);
preview.setBackgroundColor(Color.TRANSPARENT); preview.setBackgroundColor(DEFAULT_BACKGROUND_COLOR);
preview.setTextSize(fontSize); preview.setTextSize(DEFAULT_FONT_SIZE);
final int value = getValueAt(index); final int value = getValueAt(index);
preview.setEdgeType(value); preview.setEdgeType(value);
preview.setEdgeColor(Color.BLACK); preview.setEdgeColor(DEFAULT_EDGE_COLOR);
final CharSequence title = getTitleAt(index); final CharSequence title = getTitleAt(index);
if (title != null) { if (title != null) {

View File

@@ -19,6 +19,7 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.accessibility.CaptioningManager;
import android.view.accessibility.CaptioningManager.CaptionStyle; import android.view.accessibility.CaptioningManager.CaptionStyle;
import android.widget.TextView; import android.widget.TextView;
@@ -26,11 +27,18 @@ import com.android.internal.widget.SubtitleView;
import com.android.settings.R; import com.android.settings.R;
public class PresetPreference extends ListDialogPreference { public class PresetPreference extends ListDialogPreference {
private static final float DEFAULT_FONT_SIZE = 96f;
private final CaptioningManager mCaptioningManager;
public PresetPreference(Context context, AttributeSet attrs) { public PresetPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
setDialogLayoutResource(R.layout.grid_picker_dialog); setDialogLayoutResource(R.layout.grid_picker_dialog);
setListItemLayoutResource(R.layout.preset_picker_item); setListItemLayoutResource(R.layout.preset_picker_item);
mCaptioningManager = (CaptioningManager) context.getSystemService(
Context.CAPTIONING_SERVICE);
} }
@Override @Override
@@ -43,7 +51,10 @@ public class PresetPreference extends ListDialogPreference {
protected void onBindListItem(View view, int index) { protected void onBindListItem(View view, int index) {
final SubtitleView previewText = (SubtitleView) view.findViewById(R.id.preview); final SubtitleView previewText = (SubtitleView) view.findViewById(R.id.preview);
final int value = getValueAt(index); final int value = getValueAt(index);
ToggleCaptioningPreferenceFragment.applyCaptionProperties(previewText, value); ToggleCaptioningPreferenceFragment.applyCaptionProperties(
mCaptioningManager, previewText, value);
previewText.setTextSize(DEFAULT_FONT_SIZE);
final CharSequence title = getTitleAt(index); final CharSequence title = getTitleAt(index);
if (title != null) { if (title != null) {

View File

@@ -29,7 +29,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.accessibility.CaptioningManager; import android.view.accessibility.CaptioningManager;
import android.view.accessibility.CaptioningManager.CaptionStyle;
import com.android.internal.widget.SubtitleView; import com.android.internal.widget.SubtitleView;
import com.android.settings.R; import com.android.settings.R;
@@ -38,8 +37,19 @@ import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeList
import java.util.Locale; import java.util.Locale;
public class ToggleCaptioningPreferenceFragment extends Fragment { public class ToggleCaptioningPreferenceFragment extends Fragment {
private static final float DEFAULT_FONT_SIZE = 48f;
private CaptionPropertiesFragment mPropsFragment; private CaptionPropertiesFragment mPropsFragment;
private SubtitleView mPreviewText; private SubtitleView mPreviewText;
private CaptioningManager mCaptioningManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCaptioningManager = (CaptioningManager) getActivity()
.getSystemService(Context.CAPTIONING_SERVICE);
}
@Override @Override
public View onCreateView( public View onCreateView(
@@ -74,10 +84,10 @@ public class ToggleCaptioningPreferenceFragment extends Fragment {
if (preview != null) { if (preview != null) {
final Activity activity = getActivity(); final Activity activity = getActivity();
final ContentResolver cr = activity.getContentResolver(); final ContentResolver cr = activity.getContentResolver();
final int styleId = CaptionStyle.getRawPreset(cr); final int styleId = mCaptioningManager.getRawUserStyle();
applyCaptionProperties(preview, styleId); applyCaptionProperties(mCaptioningManager, preview, styleId);
final Locale locale = CaptioningManager.getLocale(cr); final Locale locale = mCaptioningManager.getLocale();
if (locale != null) { if (locale != null) {
final CharSequence localizedText = AccessibilityUtils.getTextForLocale( final CharSequence localizedText = AccessibilityUtils.getTextForLocale(
activity, locale, R.string.captioning_preview_text); 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); previewText.setStyle(styleId);
final Context context = previewText.getContext(); final Context context = previewText.getContext();
final ContentResolver cr = context.getContentResolver(); final ContentResolver cr = context.getContentResolver();
final float fontSize = CaptioningManager.getFontSize(cr); final float fontScale = manager.getFontScale();
previewText.setTextSize(fontSize); previewText.setTextSize(fontScale * DEFAULT_FONT_SIZE);
final Locale locale = CaptioningManager.getLocale(cr); final Locale locale = manager.getLocale();
if (locale != null) { if (locale != null) {
final CharSequence localizedText = AccessibilityUtils.getTextForLocale( final CharSequence localizedText = AccessibilityUtils.getTextForLocale(
context, locale, R.string.captioning_preview_characters); context, locale, R.string.captioning_preview_characters);
@@ -118,7 +129,7 @@ public class ToggleCaptioningPreferenceFragment extends Fragment {
Gravity.CENTER_VERTICAL | Gravity.END); Gravity.CENTER_VERTICAL | Gravity.END);
actionBar.setCustomView(toggleSwitch, params); actionBar.setCustomView(toggleSwitch, params);
final boolean enabled = CaptioningManager.isEnabled(getActivity().getContentResolver()); final boolean enabled = mCaptioningManager.isEnabled();
mPropsFragment.getPreferenceScreen().setEnabled(enabled); mPropsFragment.getPreferenceScreen().setEnabled(enabled);
mPreviewText.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE); mPreviewText.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
toggleSwitch.setCheckedInternal(enabled); toggleSwitch.setCheckedInternal(enabled);