Loading res/values/arrays.xml +1 −10 Original line number Diff line number Diff line Loading @@ -816,20 +816,11 @@ <string-array name="captioning_font_size_selector_titles"> <item>Very small</item> <item>Small</item> <item>Default</item> <item>Medium</item> <item>Large</item> <item>Very large</item> </string-array> <!-- Summary for Captions settings, explaining important settings under it. [CHAR LIMIT=NONE] --> <string-array name="captioning_font_size_selector_summaries"> <item>Very small text size</item> <item>Small text size</item> <item>Default text size</item> <item>Large text size</item> <item>Very large text size</item> </string-array> <!-- Values for captioning font size preference. --> <string-array name="captioning_font_size_selector_values" translatable="false" > <item>0.25</item> Loading res/values/strings.xml +4 −2 Original line number Diff line number Diff line Loading @@ -5531,8 +5531,10 @@ <string name="captioning_caption_appearance_summary"><xliff:g id="accessibility_font_size" example="Large">%1$s</xliff:g> text size</string> <!-- Title for Caption preference settings screen for configuring language. [CHAR LIMIT=NONE] --> <string name="captioning_more_options_title">More options</string> <!-- Used in the Captions preference to tell users that the setting doesn't support all apps. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_summary">Not all apps support these caption preferences</string> <!-- Introduction for the captions preference page. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_intro">Customize caption size and style to make them easier to read</string> <!-- Summary for the captions preference page. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_summary">These caption preferences aren\u2019t supported by all media apps</string> <!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] --> <string name="accessibility_shortcut_type_software">Accessibility button</string> <!-- Summary for accessibility shortcut preference for software shortcut type when gesture mode is on. [CHAR LIMIT=NONE] --> res/xml/captioning_settings.xml +7 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,11 @@ android:persistent="false" android:title="@string/accessibility_captioning_title"> <com.android.settingslib.widget.TopIntroPreference android:key="captions_intro" android:persistent="false" android:title="@string/accessibility_caption_preference_intro"/> <com.android.settingslib.widget.IllustrationPreference android:key="captions_preview" android:persistent="false" Loading @@ -38,7 +43,8 @@ android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment" android:key="captioning_caption_appearance" android:persistent="false" android:title="@string/captioning_caption_appearance_title" /> android:title="@string/captioning_caption_appearance_title" settings:controller="com.android.settings.accessibility.CaptionAppearancePreferenceController" /> <Preference android:fragment="com.android.settings.accessibility.CaptionMoreOptionsFragment" Loading src/com/android/settings/accessibility/CaptionAppearancePreferenceController.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.accessibility; import android.content.Context; import android.view.accessibility.CaptioningManager; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.google.common.primitives.Floats; import com.google.common.primitives.Ints; /** Controller that shows the caption scale and style summary. */ public class CaptionAppearancePreferenceController extends BasePreferenceController { private final CaptioningManager mCaptioningManager; public CaptionAppearancePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mCaptioningManager = context.getSystemService(CaptioningManager.class); } @Override public int getAvailabilityStatus() { return AVAILABLE; } @Override public CharSequence getSummary() { return mContext.getString(R.string.preference_summary_default_combination, geFontScaleSummary(), getPresetSummary()); } private float[] getFontScaleValuesArray() { final String[] fontScaleValuesStrArray = mContext.getResources().getStringArray( R.array.captioning_font_size_selector_values); final int length = fontScaleValuesStrArray.length; final float[] fontScaleValuesArray = new float[length]; for (int i = 0; i < length; ++i) { fontScaleValuesArray[i] = Float.parseFloat(fontScaleValuesStrArray[i]); } return fontScaleValuesArray; } private CharSequence geFontScaleSummary() { final float[] fontScaleValuesArray = getFontScaleValuesArray(); final String[] fontScaleSummaries = mContext.getResources().getStringArray( R.array.captioning_font_size_selector_titles); final float fontScale = mCaptioningManager.getFontScale(); final int idx = Floats.indexOf(fontScaleValuesArray, fontScale); return fontScaleSummaries[idx == /* not exist */ -1 ? 0 : idx]; } private CharSequence getPresetSummary() { final int[] presetValuesArray = mContext.getResources().getIntArray( R.array.captioning_preset_selector_values); final String[] presetSummaries = mContext.getResources().getStringArray( R.array.captioning_preset_selector_titles); final int preset = mCaptioningManager.getRawUserStyle(); final int idx = Ints.indexOf(presetValuesArray, preset); return presetSummaries[idx]; } } src/com/android/settings/accessibility/CaptionPropertiesFragment.java +1 −30 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ import com.android.settings.widget.SettingsMainSwitchPreference; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.OnMainSwitchChangeListener; import com.google.common.primitives.Floats; import java.util.ArrayList; import java.util.List; Loading @@ -56,7 +54,6 @@ public class CaptionPropertiesFragment extends DashboardFragment private Preference mMoreOptions; private final List<Preference> mPreferenceList = new ArrayList<>(); private float[] mFontSizeValuesArray; @Override public int getMetricsCategory() { Loading @@ -71,13 +68,12 @@ public class CaptionPropertiesFragment extends DashboardFragment initializeAllPreferences(); installUpdateListeners(); initFontSizeValuesArray(); } @Override public void onResume() { super.onResume(); updateAllPreferences(); mSwitch.setChecked(mCaptioningManager.isEnabled()); } @Override Loading Loading @@ -105,21 +101,6 @@ public class CaptionPropertiesFragment extends DashboardFragment } private void initFontSizeValuesArray() { final String[] fontSizeValuesStrArray = getPrefContext().getResources().getStringArray( R.array.captioning_font_size_selector_values); final int length = fontSizeValuesStrArray.length; mFontSizeValuesArray = new float[length]; for (int i = 0; i < length; ++i) { mFontSizeValuesArray[i] = Float.parseFloat(fontSizeValuesStrArray[i]); } } private void updateAllPreferences() { mSwitch.setChecked(mCaptioningManager.isEnabled()); mTextAppearance.setSummary(geTextAppearanceSummary(getPrefContext())); } @Override public boolean onPreferenceChange(Preference preference, Object value) { final ContentResolver cr = getActivity().getContentResolver(); Loading @@ -136,16 +117,6 @@ public class CaptionPropertiesFragment extends DashboardFragment return R.string.help_url_caption; } private CharSequence geTextAppearanceSummary(Context context) { final String[] fontSizeSummaries = context.getResources().getStringArray( R.array.captioning_font_size_selector_summaries); final float fontSize = mCaptioningManager.getFontScale(); final int idx = Floats.indexOf(mFontSizeValuesArray, fontSize); return fontSizeSummaries[idx == /* not exist */ -1 ? 0 : idx]; } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.captioning_settings); Loading Loading
res/values/arrays.xml +1 −10 Original line number Diff line number Diff line Loading @@ -816,20 +816,11 @@ <string-array name="captioning_font_size_selector_titles"> <item>Very small</item> <item>Small</item> <item>Default</item> <item>Medium</item> <item>Large</item> <item>Very large</item> </string-array> <!-- Summary for Captions settings, explaining important settings under it. [CHAR LIMIT=NONE] --> <string-array name="captioning_font_size_selector_summaries"> <item>Very small text size</item> <item>Small text size</item> <item>Default text size</item> <item>Large text size</item> <item>Very large text size</item> </string-array> <!-- Values for captioning font size preference. --> <string-array name="captioning_font_size_selector_values" translatable="false" > <item>0.25</item> Loading
res/values/strings.xml +4 −2 Original line number Diff line number Diff line Loading @@ -5531,8 +5531,10 @@ <string name="captioning_caption_appearance_summary"><xliff:g id="accessibility_font_size" example="Large">%1$s</xliff:g> text size</string> <!-- Title for Caption preference settings screen for configuring language. [CHAR LIMIT=NONE] --> <string name="captioning_more_options_title">More options</string> <!-- Used in the Captions preference to tell users that the setting doesn't support all apps. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_summary">Not all apps support these caption preferences</string> <!-- Introduction for the captions preference page. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_intro">Customize caption size and style to make them easier to read</string> <!-- Summary for the captions preference page. [CHAR LIMIT=NONE] --> <string name="accessibility_caption_preference_summary">These caption preferences aren\u2019t supported by all media apps</string> <!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] --> <string name="accessibility_shortcut_type_software">Accessibility button</string> <!-- Summary for accessibility shortcut preference for software shortcut type when gesture mode is on. [CHAR LIMIT=NONE] -->
res/xml/captioning_settings.xml +7 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,11 @@ android:persistent="false" android:title="@string/accessibility_captioning_title"> <com.android.settingslib.widget.TopIntroPreference android:key="captions_intro" android:persistent="false" android:title="@string/accessibility_caption_preference_intro"/> <com.android.settingslib.widget.IllustrationPreference android:key="captions_preview" android:persistent="false" Loading @@ -38,7 +43,8 @@ android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment" android:key="captioning_caption_appearance" android:persistent="false" android:title="@string/captioning_caption_appearance_title" /> android:title="@string/captioning_caption_appearance_title" settings:controller="com.android.settings.accessibility.CaptionAppearancePreferenceController" /> <Preference android:fragment="com.android.settings.accessibility.CaptionMoreOptionsFragment" Loading
src/com/android/settings/accessibility/CaptionAppearancePreferenceController.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.accessibility; import android.content.Context; import android.view.accessibility.CaptioningManager; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.google.common.primitives.Floats; import com.google.common.primitives.Ints; /** Controller that shows the caption scale and style summary. */ public class CaptionAppearancePreferenceController extends BasePreferenceController { private final CaptioningManager mCaptioningManager; public CaptionAppearancePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mCaptioningManager = context.getSystemService(CaptioningManager.class); } @Override public int getAvailabilityStatus() { return AVAILABLE; } @Override public CharSequence getSummary() { return mContext.getString(R.string.preference_summary_default_combination, geFontScaleSummary(), getPresetSummary()); } private float[] getFontScaleValuesArray() { final String[] fontScaleValuesStrArray = mContext.getResources().getStringArray( R.array.captioning_font_size_selector_values); final int length = fontScaleValuesStrArray.length; final float[] fontScaleValuesArray = new float[length]; for (int i = 0; i < length; ++i) { fontScaleValuesArray[i] = Float.parseFloat(fontScaleValuesStrArray[i]); } return fontScaleValuesArray; } private CharSequence geFontScaleSummary() { final float[] fontScaleValuesArray = getFontScaleValuesArray(); final String[] fontScaleSummaries = mContext.getResources().getStringArray( R.array.captioning_font_size_selector_titles); final float fontScale = mCaptioningManager.getFontScale(); final int idx = Floats.indexOf(fontScaleValuesArray, fontScale); return fontScaleSummaries[idx == /* not exist */ -1 ? 0 : idx]; } private CharSequence getPresetSummary() { final int[] presetValuesArray = mContext.getResources().getIntArray( R.array.captioning_preset_selector_values); final String[] presetSummaries = mContext.getResources().getStringArray( R.array.captioning_preset_selector_titles); final int preset = mCaptioningManager.getRawUserStyle(); final int idx = Ints.indexOf(presetValuesArray, preset); return presetSummaries[idx]; } }
src/com/android/settings/accessibility/CaptionPropertiesFragment.java +1 −30 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ import com.android.settings.widget.SettingsMainSwitchPreference; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.OnMainSwitchChangeListener; import com.google.common.primitives.Floats; import java.util.ArrayList; import java.util.List; Loading @@ -56,7 +54,6 @@ public class CaptionPropertiesFragment extends DashboardFragment private Preference mMoreOptions; private final List<Preference> mPreferenceList = new ArrayList<>(); private float[] mFontSizeValuesArray; @Override public int getMetricsCategory() { Loading @@ -71,13 +68,12 @@ public class CaptionPropertiesFragment extends DashboardFragment initializeAllPreferences(); installUpdateListeners(); initFontSizeValuesArray(); } @Override public void onResume() { super.onResume(); updateAllPreferences(); mSwitch.setChecked(mCaptioningManager.isEnabled()); } @Override Loading Loading @@ -105,21 +101,6 @@ public class CaptionPropertiesFragment extends DashboardFragment } private void initFontSizeValuesArray() { final String[] fontSizeValuesStrArray = getPrefContext().getResources().getStringArray( R.array.captioning_font_size_selector_values); final int length = fontSizeValuesStrArray.length; mFontSizeValuesArray = new float[length]; for (int i = 0; i < length; ++i) { mFontSizeValuesArray[i] = Float.parseFloat(fontSizeValuesStrArray[i]); } } private void updateAllPreferences() { mSwitch.setChecked(mCaptioningManager.isEnabled()); mTextAppearance.setSummary(geTextAppearanceSummary(getPrefContext())); } @Override public boolean onPreferenceChange(Preference preference, Object value) { final ContentResolver cr = getActivity().getContentResolver(); Loading @@ -136,16 +117,6 @@ public class CaptionPropertiesFragment extends DashboardFragment return R.string.help_url_caption; } private CharSequence geTextAppearanceSummary(Context context) { final String[] fontSizeSummaries = context.getResources().getStringArray( R.array.captioning_font_size_selector_summaries); final float fontSize = mCaptioningManager.getFontScale(); final int idx = Floats.indexOf(mFontSizeValuesArray, fontSize); return fontSizeSummaries[idx == /* not exist */ -1 ? 0 : idx]; } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.captioning_settings); Loading