Merge changes from topic 'accessibilitybutton-target'

* changes:
  Update magnification strings
  Settings revisions for Accessibility button
This commit is contained in:
TreeHugger Robot
2017-03-25 04:04:10 +00:00
committed by Android (Google) Code Review
4 changed files with 68 additions and 18 deletions

View File

@@ -587,6 +587,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
mDisplayDaltonizerPreferenceScreen);
updateMagnificationSummary(mDisplayMagnificationPreferenceScreen);
updateFontSizeSummary(mFontSizePreferenceScreen);
updateAutoclickSummary(mAutoclickPreferenceScreen);
@@ -594,6 +596,25 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
updateAccessibilityShortcut(mAccessibilityShortcutPreferenceScreen);
}
private void updateMagnificationSummary(Preference pref) {
final boolean tripleTapEnabled = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1;
final boolean buttonEnabled = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, 0) == 1;
int summaryResId = 0;
if (!tripleTapEnabled && !buttonEnabled) {
summaryResId = R.string.accessibility_feature_state_off;
} else if (!tripleTapEnabled && buttonEnabled) {
summaryResId = R.string.accessibility_screen_magnification_navbar_title;
} else if (tripleTapEnabled && !buttonEnabled) {
summaryResId = R.string.accessibility_screen_magnification_gestures_title;
} else {
summaryResId = R.string.accessibility_screen_magnification_state_navbar_gesture;
}
pref.setSummary(summaryResId);
}
private void updateFeatureSummary(String prefKey, Preference pref) {
final boolean enabled = Settings.Secure.getInt(getContentResolver(), prefKey, 0) == 1;
pref.setSummary(enabled ? R.string.accessibility_feature_state_on

View File

@@ -16,13 +16,16 @@
package com.android.settings.accessibility;
import android.content.ContentResolver;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
@@ -42,6 +45,10 @@ public final class MagnificationPreferenceFragment extends SettingsPreferenceFra
private static final String MAGNIFICATION_NAVBAR_PREFERENCE_SCREEN_KEY =
"screen_magnification_navbar_preference_screen";
// Pseudo ComponentName used to represent navbar magnification in Settings.Secure.
private static final String MAGNIFICATION_COMPONENT_ID =
"com.android.server.accessibility.MagnificationController";
private Preference mMagnificationGesturesPreference;
private Preference mMagnificationNavbarPreference;
@@ -147,17 +154,38 @@ public final class MagnificationPreferenceFragment extends SettingsPreferenceFra
extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mLaunchedFromSuw);
}
static int getConfigurationWarningStringResourceForSecureSettingsKey(String key,
ContentResolver resolver) {
if (Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED.equals(key)) {
if (Settings.Secure.getInt(resolver,
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, 0) == 1) {
// TODO(b/34720082): Only report a config warning when nav-bar is not mapped to mag
return R.string.accessibility_screen_magnification_navbar_configuration_warning;
static CharSequence getConfigurationWarningStringForSecureSettingsKey(String key,
Context context) {
if (!Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED.equals(key)) {
return null;
}
if (Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, 0) == 0) {
return null;
}
final AccessibilityManager am = (AccessibilityManager) context.getSystemService(
Context.ACCESSIBILITY_SERVICE);
final String assignedId = Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT);
if (!TextUtils.isEmpty(assignedId) && !MAGNIFICATION_COMPONENT_ID.equals(assignedId)) {
final ComponentName assignedComponentName = ComponentName.unflattenFromString(
assignedId);
final List<AccessibilityServiceInfo> activeServices =
am.getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
final int serviceCount = activeServices.size();
for (int i = 0; i < serviceCount; i++) {
final AccessibilityServiceInfo info = activeServices.get(i);
if (info.getComponentName().equals(assignedComponentName)) {
final CharSequence assignedServiceName = info.getResolveInfo().loadLabel(
context.getPackageManager());
return context.getString(
R.string.accessibility_screen_magnification_navbar_configuration_warning,
assignedServiceName);
}
}
}
return -1;
return null;
}
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =

View File

@@ -214,14 +214,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends
}
private void updateConfigurationWarningIfNeeded() {
final int warningRes =
MagnificationPreferenceFragment
.getConfigurationWarningStringResourceForSecureSettingsKey(
mPreferenceKey, getContentResolver());
if (warningRes != -1) {
mConfigWarningPreference.setSummary(warningRes);
final CharSequence warningMessage =
MagnificationPreferenceFragment.getConfigurationWarningStringForSecureSettingsKey(
mPreferenceKey, getPrefContext());
if (warningMessage != null) {
mConfigWarningPreference.setSummary(warningMessage);
}
mConfigWarningPreference.setVisible(warningRes != -1);
mConfigWarningPreference.setVisible(warningMessage != null);
}
private static int getScreenWidth(Context context) {