From 19cf6ddff8cd915ded638c77945b722bf99cf671 Mon Sep 17 00:00:00 2001 From: menghanli Date: Tue, 10 Mar 2020 21:15:24 +0800 Subject: [PATCH] Update R acessibility assets and strings (2/n) - Temporary-use template summary by shortcut state Bug: 148837311 Test: Manual test Change-Id: Ia720b8f3f317bb1874d6758ebc4fbf4145d0c217 --- res/values/strings.xml | 8 ++++-- .../accessibility/AccessibilitySettings.java | 28 +++++++++++++------ .../MagnificationPreferenceController.java | 4 +-- ...ScreenMagnificationPreferenceFragment.java | 13 +++++++++ .../AccessibilitySettingsTest.java | 7 +++-- 5 files changed, 45 insertions(+), 15 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 608eac8b73e..30b4c5fab46 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5063,9 +5063,13 @@ %1$d saved hearing aids - + + Shortcut on + + Off + On - + Off Not working. Tap for info. diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index 23b0f1a7198..1e3944eb1f5 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -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"; @@ -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) { @@ -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 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 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); @@ -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( diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceController.java b/src/com/android/settings/accessibility/MagnificationPreferenceController.java index 7ac7bef0ea1..5b5236e0c1a 100644 --- a/src/com/android/settings/accessibility/MagnificationPreferenceController.java +++ b/src/com/android/settings/accessibility/MagnificationPreferenceController.java @@ -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 { @@ -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 diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index 292e93138d5..4c2945ad176 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -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); + } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java index 3528fb6fc3d..98d29184bed 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java @@ -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