Add icons for color inversion and daltonizer

For accessibilty settings, both on the main page
and the shortcut picker.

Also now observing settings that could be toggled
by the shortcut, so changes can be reflected immediately
in the settings ui.

Bug: 34621067
Fixes: 70335904
Test: Observe icons in settings and shortcut picker.
Toggling color inversion and color correction now changes
the setting ui immediately.

Change-Id: Id27b6471376059288ff971e5aea72d76078bef36
This commit is contained in:
Phil Weaver
2017-12-08 17:10:06 -08:00
parent b8eb89579c
commit 0db26b3a87
7 changed files with 313 additions and 30 deletions

View File

@@ -42,6 +42,7 @@ import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.accessibility.AccessibilityManager;
import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.internal.content.PackageMonitor;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.view.RotationPolicy;
@@ -57,6 +58,7 @@ import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.accessibility.AccessibilityUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -172,13 +174,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
};
private final SettingsContentObserver mSettingsContentObserver =
new SettingsContentObserver(mHandler) {
@Override
public void onChange(boolean selfChange, Uri uri) {
updateServicePreferences();
}
};
private final SettingsContentObserver mSettingsContentObserver;
private final RotationPolicyListener mRotationPolicyListener = new RotationPolicyListener() {
@Override
@@ -224,6 +220,22 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
.getBoolean(com.android.internal.R.bool.config_setColorTransformAccelerated);
}
public AccessibilitySettings() {
// Observe changes to anything that the shortcut can toggle, so we can reflect updates
final Collection<AccessibilityShortcutController.ToggleableFrameworkFeatureInfo> features =
AccessibilityShortcutController.getFrameworkShortcutFeaturesMap().values();
final List<String> shortcutFeatureKeys = new ArrayList<>(features.size());
for (AccessibilityShortcutController.ToggleableFrameworkFeatureInfo feature : features) {
shortcutFeatureKeys.add(feature.getSettingKey());
}
mSettingsContentObserver = new SettingsContentObserver(mHandler, shortcutFeatureKeys) {
@Override
public void onChange(boolean selfChange, Uri uri) {
updateAllPreferences();
}
};
}
@Override
public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY;