Loading res/values/strings.xml +6 −2 Original line number Diff line number Diff line Loading @@ -5067,9 +5067,13 @@ <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> saved hearing aids</item> </plurals> <!-- Preference's state when enabled. --> <!-- Preference's shortcut when enabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_shortcut_enabled">Shortcut on</string> <!-- Preference's shortcut when disabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_shortcut_disabled">Off</string> <!-- Preference's state when enabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_state_enabled">On</string> <!-- Preference's state when disabled. --> <!-- Preference's state when disabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_state_disabled">Off</string> <!-- Accessibility service's preference's state when enabled but not running (like maybe it crashed). --> <string name="accessibility_summary_state_stopped">Not working. Tap for info.</string> Loading src/com/android/settings/accessibility/AccessibilitySettings.java +20 −8 Original line number Diff line number Diff line Loading @@ -76,8 +76,6 @@ public class AccessibilitySettings extends DashboardFragment { // Index of the first preference in a preference category. private static final int FIRST_PREFERENCE_IN_CATEGORY_INDEX = -1; private static final String EMPTY_STRING = ""; // Preference categories private static final String CATEGORY_SCREEN_READER = "screen_reader_category"; private static final String CATEGORY_AUDIO_AND_CAPTIONS = "audio_and_captions_category"; Loading Loading @@ -195,6 +193,10 @@ public class AccessibilitySettings extends DashboardFragment { for (AccessibilityShortcutController.ToggleableFrameworkFeatureInfo feature : features) { shortcutFeatureKeys.add(feature.getSettingKey()); } // Observe changes from accessibility selection menu shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT); shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE); mSettingsContentObserver = new SettingsContentObserver(mHandler, shortcutFeatureKeys) { @Override public void onChange(boolean selfChange, Uri uri) { Loading Loading @@ -268,16 +270,24 @@ public class AccessibilitySettings extends DashboardFragment { return context.getText(R.string.accessibility_summary_state_stopped); } final CharSequence serviceSummary = info.loadSummary(context.getPackageManager()); final CharSequence serviceState; final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info); if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) { return TextUtils.isEmpty(serviceSummary) ? EMPTY_STRING : serviceSummary; } final CharSequence serviceState = serviceEnabled final ComponentName componentName = new ComponentName( info.getResolveInfo().serviceInfo.packageName, info.getResolveInfo().serviceInfo.name); final boolean shortcutEnabled = AccessibilityUtil.getUserShortcutTypesFromSettings( context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY; serviceState = shortcutEnabled ? context.getText(R.string.accessibility_summary_shortcut_enabled) : context.getText(R.string.accessibility_summary_shortcut_disabled); } else { serviceState = serviceEnabled ? context.getText(R.string.accessibility_summary_state_enabled) : context.getText(R.string.accessibility_summary_state_disabled); } final CharSequence serviceSummary = info.loadSummary(context.getPackageManager()); final String stateSummaryCombo = context.getString( R.string.preference_summary_default_combination, serviceState, serviceSummary); Loading Loading @@ -485,6 +495,8 @@ public class AccessibilitySettings extends DashboardFragment { mCategoryToPrefCategoryMap.get(CATEGORY_DISPLAY); experimentalCategory.removePreference(mToggleInversionPreference); experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen); mDisplayMagnificationPreferenceScreen.setSummary( ToggleScreenMagnificationPreferenceFragment.getServiceSummary(getContext())); mDisplayDaltonizerPreferenceScreen.setOrder( mDisplayMagnificationPreferenceScreen.getOrder() + 1); mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary( Loading src/com/android/settings/accessibility/MagnificationPreferenceController.java +1 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.os.Bundle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; public class MagnificationPreferenceController extends BasePreferenceController { Loading @@ -40,8 +39,7 @@ public class MagnificationPreferenceController extends BasePreferenceController @Override public CharSequence getSummary() { return mContext.getResources().getText( R.string.accessibility_screen_magnification_navbar_title); return ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext); } @Override Loading src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +13 −0 Original line number Diff line number Diff line Loading @@ -624,4 +624,17 @@ public class ToggleScreenMagnificationPreferenceFragment extends } return shortcutTypes; } /** * Gets the service summary of magnification. * * @param context The current context. */ public static CharSequence getServiceSummary(Context context) { // Get the user shortcut type from settings provider. final int uerShortcutType = getUserShortcutTypeFromSettings(context); return (uerShortcutType != AccessibilityUtil.UserShortcutType.EMPTY) ? context.getText(R.string.accessibility_summary_shortcut_enabled) : context.getText(R.string.accessibility_summary_shortcut_disabled); } } tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -130,14 +130,17 @@ public class AccessibilitySettingsTest { } @Test public void getServiceSummary_invisibleType_showsDefaultSummary() { public void getServiceSummary_invisibleType_shortcutDisabled_showsOffSummary() { setInvisibleFragmentType(mServiceInfo); doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any()); final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext, mServiceInfo, SERVICE_ENABLED); assertThat(summary).isEqualTo(DEFAULT_SUMMARY); assertThat(summary).isEqualTo( mContext.getString(R.string.preference_summary_default_combination, mContext.getString(R.string.accessibility_summary_shortcut_disabled), DEFAULT_SUMMARY)); } @Test Loading Loading
res/values/strings.xml +6 −2 Original line number Diff line number Diff line Loading @@ -5067,9 +5067,13 @@ <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> saved hearing aids</item> </plurals> <!-- Preference's state when enabled. --> <!-- Preference's shortcut when enabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_shortcut_enabled">Shortcut on</string> <!-- Preference's shortcut when disabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_shortcut_disabled">Off</string> <!-- Preference's state when enabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_state_enabled">On</string> <!-- Preference's state when disabled. --> <!-- Preference's state when disabled. [CHAR LIMIT=NONE] --> <string name="accessibility_summary_state_disabled">Off</string> <!-- Accessibility service's preference's state when enabled but not running (like maybe it crashed). --> <string name="accessibility_summary_state_stopped">Not working. Tap for info.</string> Loading
src/com/android/settings/accessibility/AccessibilitySettings.java +20 −8 Original line number Diff line number Diff line Loading @@ -76,8 +76,6 @@ public class AccessibilitySettings extends DashboardFragment { // Index of the first preference in a preference category. private static final int FIRST_PREFERENCE_IN_CATEGORY_INDEX = -1; private static final String EMPTY_STRING = ""; // Preference categories private static final String CATEGORY_SCREEN_READER = "screen_reader_category"; private static final String CATEGORY_AUDIO_AND_CAPTIONS = "audio_and_captions_category"; Loading Loading @@ -195,6 +193,10 @@ public class AccessibilitySettings extends DashboardFragment { for (AccessibilityShortcutController.ToggleableFrameworkFeatureInfo feature : features) { shortcutFeatureKeys.add(feature.getSettingKey()); } // Observe changes from accessibility selection menu shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT); shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE); mSettingsContentObserver = new SettingsContentObserver(mHandler, shortcutFeatureKeys) { @Override public void onChange(boolean selfChange, Uri uri) { Loading Loading @@ -268,16 +270,24 @@ public class AccessibilitySettings extends DashboardFragment { return context.getText(R.string.accessibility_summary_state_stopped); } final CharSequence serviceSummary = info.loadSummary(context.getPackageManager()); final CharSequence serviceState; final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info); if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) { return TextUtils.isEmpty(serviceSummary) ? EMPTY_STRING : serviceSummary; } final CharSequence serviceState = serviceEnabled final ComponentName componentName = new ComponentName( info.getResolveInfo().serviceInfo.packageName, info.getResolveInfo().serviceInfo.name); final boolean shortcutEnabled = AccessibilityUtil.getUserShortcutTypesFromSettings( context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY; serviceState = shortcutEnabled ? context.getText(R.string.accessibility_summary_shortcut_enabled) : context.getText(R.string.accessibility_summary_shortcut_disabled); } else { serviceState = serviceEnabled ? context.getText(R.string.accessibility_summary_state_enabled) : context.getText(R.string.accessibility_summary_state_disabled); } final CharSequence serviceSummary = info.loadSummary(context.getPackageManager()); final String stateSummaryCombo = context.getString( R.string.preference_summary_default_combination, serviceState, serviceSummary); Loading Loading @@ -485,6 +495,8 @@ public class AccessibilitySettings extends DashboardFragment { mCategoryToPrefCategoryMap.get(CATEGORY_DISPLAY); experimentalCategory.removePreference(mToggleInversionPreference); experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen); mDisplayMagnificationPreferenceScreen.setSummary( ToggleScreenMagnificationPreferenceFragment.getServiceSummary(getContext())); mDisplayDaltonizerPreferenceScreen.setOrder( mDisplayMagnificationPreferenceScreen.getOrder() + 1); mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary( Loading
src/com/android/settings/accessibility/MagnificationPreferenceController.java +1 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.os.Bundle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; public class MagnificationPreferenceController extends BasePreferenceController { Loading @@ -40,8 +39,7 @@ public class MagnificationPreferenceController extends BasePreferenceController @Override public CharSequence getSummary() { return mContext.getResources().getText( R.string.accessibility_screen_magnification_navbar_title); return ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext); } @Override Loading
src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +13 −0 Original line number Diff line number Diff line Loading @@ -624,4 +624,17 @@ public class ToggleScreenMagnificationPreferenceFragment extends } return shortcutTypes; } /** * Gets the service summary of magnification. * * @param context The current context. */ public static CharSequence getServiceSummary(Context context) { // Get the user shortcut type from settings provider. final int uerShortcutType = getUserShortcutTypeFromSettings(context); return (uerShortcutType != AccessibilityUtil.UserShortcutType.EMPTY) ? context.getText(R.string.accessibility_summary_shortcut_enabled) : context.getText(R.string.accessibility_summary_shortcut_disabled); } }
tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -130,14 +130,17 @@ public class AccessibilitySettingsTest { } @Test public void getServiceSummary_invisibleType_showsDefaultSummary() { public void getServiceSummary_invisibleType_shortcutDisabled_showsOffSummary() { setInvisibleFragmentType(mServiceInfo); doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any()); final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext, mServiceInfo, SERVICE_ENABLED); assertThat(summary).isEqualTo(DEFAULT_SUMMARY); assertThat(summary).isEqualTo( mContext.getString(R.string.preference_summary_default_combination, mContext.getString(R.string.accessibility_summary_shortcut_disabled), DEFAULT_SUMMARY)); } @Test Loading