Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d920ad50 authored by Menghan Li's avatar Menghan Li Committed by Android (Google) Code Review
Browse files

Merge "Polish humanize strings for Caption preferences page"

parents caeccebb f6040e12
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -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>
+4 −2
Original line number Diff line number Diff line
@@ -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] -->
+7 −1
Original line number Diff line number Diff line
@@ -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"
@@ -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"
+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];
    }
}
+1 −30
Original line number Diff line number Diff line
@@ -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;

@@ -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() {
@@ -71,13 +68,12 @@ public class CaptionPropertiesFragment extends DashboardFragment

        initializeAllPreferences();
        installUpdateListeners();
        initFontSizeValuesArray();
    }

    @Override
    public void onResume() {
        super.onResume();
        updateAllPreferences();
        mSwitch.setChecked(mCaptioningManager.isEnabled());
    }

    @Override
@@ -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();
@@ -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