Loading res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -4434,6 +4434,10 @@ <string name="accessibility_summary_state_enabled">On</string> <!-- Preference's state when disabled. --> <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> <!-- Accessibility service's description when enabled but not running (like maybe it crashed). --> <string name="accessibility_description_state_stopped">This service is malfunctioning.</string> <!-- Title for the preference to show a tile for a particular feature in the Quick Settings pane. [CHAR LIMIT=NONE] --> <string name="enable_quick_setting">Show in Quick Settings</string> Loading src/com/android/settings/accessibility/AccessibilitySettings.java +35 −29 Original line number Diff line number Diff line Loading @@ -211,7 +211,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements private SwitchPreference mToggleDisableAnimationsPreference; private SwitchPreference mToggleMasterMonoPreference; private ListPreference mSelectLongPressTimeoutPreference; private Preference mNoServicesMessagePreference; private Preference mCaptioningPreferenceScreen; private Preference mDisplayMagnificationPreferenceScreen; private Preference mFontSizePreferenceScreen; Loading Loading @@ -495,12 +494,12 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements List<AccessibilityServiceInfo> installedServices = accessibilityManager.getInstalledAccessibilityServiceList(); List<AccessibilityServiceInfo> enabledServiceInfos = accessibilityManager .getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK); Set<ComponentName> enabledServices = AccessibilityUtils.getEnabledServicesFromSettings( getActivity()); List<String> permittedServices = mDpm.getPermittedAccessibilityServices( UserHandle.myUserId()); final boolean accessibilityEnabled = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1; PreferenceCategory downloadedServicesCategory = mCategoryToPrefCategoryMap.get(CATEGORY_DOWNLOADED_SERVICES); Loading @@ -513,7 +512,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements final AccessibilityServiceInfo info = installedServices.get(i); final ResolveInfo resolveInfo = info.getResolveInfo(); RestrictedPreference preference = final RestrictedPreference preference = new RestrictedPreference(downloadedServicesCategory.getContext()); final String title = resolveInfo.loadLabel(getPackageManager()).toString(); Loading @@ -524,16 +523,26 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements icon = resolveInfo.loadIcon(getPackageManager()); } ServiceInfo serviceInfo = resolveInfo.serviceInfo; String packageName = serviceInfo.packageName; ComponentName componentName = new ComponentName(packageName, serviceInfo.name); final ServiceInfo serviceInfo = resolveInfo.serviceInfo; final String packageName = serviceInfo.packageName; final ComponentName componentName = new ComponentName(packageName, serviceInfo.name); preference.setKey(componentName.flattenToString()); preference.setTitle(title); Utils.setSafeIcon(preference, icon); final boolean serviceEnabled = accessibilityEnabled && enabledServices.contains(componentName); final boolean serviceEnabled = enabledServices.contains(componentName); String description = info.loadDescription(getPackageManager()); if (TextUtils.isEmpty(description)) { description = getString(R.string.accessibility_service_default_description); } if (serviceEnabled && AccessibilityUtils.hasServiceCrashed( packageName, serviceInfo.name, enabledServiceInfos)) { // Update the summaries for services that have crashed. preference.setSummary(R.string.accessibility_summary_state_stopped); description = getString(R.string.accessibility_description_state_stopped); } else { final String serviceState = serviceEnabled ? getString(R.string.accessibility_summary_state_enabled) : getString(R.string.accessibility_summary_state_disabled); Loading @@ -543,12 +552,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements serviceState, serviceSummary); preference.setSummary((TextUtils.isEmpty(serviceSummary)) ? serviceState : stateSummaryCombo); } // Disable all accessibility services that are not permitted. boolean serviceAllowed = final boolean serviceAllowed = permittedServices == null || permittedServices.contains(packageName); if (!serviceAllowed && !serviceEnabled) { EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed( final EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed( getActivity(), packageName, UserHandle.myUserId()); if (admin != null) { preference.setDisabledByAdmin(admin); Loading @@ -562,19 +573,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements preference.setFragment(ToggleAccessibilityServicePreferenceFragment.class.getName()); preference.setPersistent(true); Bundle extras = preference.getExtras(); final Bundle extras = preference.getExtras(); extras.putString(EXTRA_PREFERENCE_KEY, preference.getKey()); extras.putBoolean(EXTRA_CHECKED, serviceEnabled); extras.putString(EXTRA_TITLE, title); extras.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); String description = info.loadDescription(getPackageManager()); if (TextUtils.isEmpty(description)) { description = getString(R.string.accessibility_service_default_description); } extras.putString(EXTRA_SUMMARY, description); String settingsClassName = info.getSettingsActivityName(); final String settingsClassName = info.getSettingsActivityName(); if (!TextUtils.isEmpty(settingsClassName)) { extras.putString(EXTRA_SETTINGS_TITLE, getString(R.string.accessibility_menu_item_settings)); Loading @@ -595,7 +601,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements // If the user has not installed any additional services, hide the category. if (downloadedServicesCategory.getPreferenceCount() == 0) { PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen(); screen.removePreference(downloadedServicesCategory); } } Loading Loading
res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -4434,6 +4434,10 @@ <string name="accessibility_summary_state_enabled">On</string> <!-- Preference's state when disabled. --> <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> <!-- Accessibility service's description when enabled but not running (like maybe it crashed). --> <string name="accessibility_description_state_stopped">This service is malfunctioning.</string> <!-- Title for the preference to show a tile for a particular feature in the Quick Settings pane. [CHAR LIMIT=NONE] --> <string name="enable_quick_setting">Show in Quick Settings</string> Loading
src/com/android/settings/accessibility/AccessibilitySettings.java +35 −29 Original line number Diff line number Diff line Loading @@ -211,7 +211,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements private SwitchPreference mToggleDisableAnimationsPreference; private SwitchPreference mToggleMasterMonoPreference; private ListPreference mSelectLongPressTimeoutPreference; private Preference mNoServicesMessagePreference; private Preference mCaptioningPreferenceScreen; private Preference mDisplayMagnificationPreferenceScreen; private Preference mFontSizePreferenceScreen; Loading Loading @@ -495,12 +494,12 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements List<AccessibilityServiceInfo> installedServices = accessibilityManager.getInstalledAccessibilityServiceList(); List<AccessibilityServiceInfo> enabledServiceInfos = accessibilityManager .getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK); Set<ComponentName> enabledServices = AccessibilityUtils.getEnabledServicesFromSettings( getActivity()); List<String> permittedServices = mDpm.getPermittedAccessibilityServices( UserHandle.myUserId()); final boolean accessibilityEnabled = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1; PreferenceCategory downloadedServicesCategory = mCategoryToPrefCategoryMap.get(CATEGORY_DOWNLOADED_SERVICES); Loading @@ -513,7 +512,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements final AccessibilityServiceInfo info = installedServices.get(i); final ResolveInfo resolveInfo = info.getResolveInfo(); RestrictedPreference preference = final RestrictedPreference preference = new RestrictedPreference(downloadedServicesCategory.getContext()); final String title = resolveInfo.loadLabel(getPackageManager()).toString(); Loading @@ -524,16 +523,26 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements icon = resolveInfo.loadIcon(getPackageManager()); } ServiceInfo serviceInfo = resolveInfo.serviceInfo; String packageName = serviceInfo.packageName; ComponentName componentName = new ComponentName(packageName, serviceInfo.name); final ServiceInfo serviceInfo = resolveInfo.serviceInfo; final String packageName = serviceInfo.packageName; final ComponentName componentName = new ComponentName(packageName, serviceInfo.name); preference.setKey(componentName.flattenToString()); preference.setTitle(title); Utils.setSafeIcon(preference, icon); final boolean serviceEnabled = accessibilityEnabled && enabledServices.contains(componentName); final boolean serviceEnabled = enabledServices.contains(componentName); String description = info.loadDescription(getPackageManager()); if (TextUtils.isEmpty(description)) { description = getString(R.string.accessibility_service_default_description); } if (serviceEnabled && AccessibilityUtils.hasServiceCrashed( packageName, serviceInfo.name, enabledServiceInfos)) { // Update the summaries for services that have crashed. preference.setSummary(R.string.accessibility_summary_state_stopped); description = getString(R.string.accessibility_description_state_stopped); } else { final String serviceState = serviceEnabled ? getString(R.string.accessibility_summary_state_enabled) : getString(R.string.accessibility_summary_state_disabled); Loading @@ -543,12 +552,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements serviceState, serviceSummary); preference.setSummary((TextUtils.isEmpty(serviceSummary)) ? serviceState : stateSummaryCombo); } // Disable all accessibility services that are not permitted. boolean serviceAllowed = final boolean serviceAllowed = permittedServices == null || permittedServices.contains(packageName); if (!serviceAllowed && !serviceEnabled) { EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed( final EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed( getActivity(), packageName, UserHandle.myUserId()); if (admin != null) { preference.setDisabledByAdmin(admin); Loading @@ -562,19 +573,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements preference.setFragment(ToggleAccessibilityServicePreferenceFragment.class.getName()); preference.setPersistent(true); Bundle extras = preference.getExtras(); final Bundle extras = preference.getExtras(); extras.putString(EXTRA_PREFERENCE_KEY, preference.getKey()); extras.putBoolean(EXTRA_CHECKED, serviceEnabled); extras.putString(EXTRA_TITLE, title); extras.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); String description = info.loadDescription(getPackageManager()); if (TextUtils.isEmpty(description)) { description = getString(R.string.accessibility_service_default_description); } extras.putString(EXTRA_SUMMARY, description); String settingsClassName = info.getSettingsActivityName(); final String settingsClassName = info.getSettingsActivityName(); if (!TextUtils.isEmpty(settingsClassName)) { extras.putString(EXTRA_SETTINGS_TITLE, getString(R.string.accessibility_menu_item_settings)); Loading @@ -595,7 +601,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements // If the user has not installed any additional services, hide the category. if (downloadedServicesCategory.getPreferenceCount() == 0) { PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen(); screen.removePreference(downloadedServicesCategory); } } Loading