Update captioning settings to match revised API
BUG: 10461210 Change-Id: I44d1fdeaead4357ff2591db6d9dda1c8a231103c
This commit is contained in:
@@ -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] -->
|
||||||
|
@@ -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(
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user