summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/display
diff options
context:
space:
mode:
authorDaniel Solomon <solomondaniel@google.com>2018-04-06 10:48:49 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-04-06 10:48:49 -0700
commit7f2ae90df2a9a08f3194c6c86b2b087b81302326 (patch)
treea6ecf335a9c65b33fddfbcabb7d02d877586ec70 /src/com/android/settings/display
parent71b078d63639eecc157629b559e065b52a13bb67 (diff)
parentc04f722cab6dd44d85abaa7f01b7cad8dac8d910 (diff)
downloadpackages_apps_Settings-7f2ae90df2a9a08f3194c6c86b2b087b81302326.tar.gz
packages_apps_Settings-7f2ae90df2a9a08f3194c6c86b2b087b81302326.tar.bz2
packages_apps_Settings-7f2ae90df2a9a08f3194c6c86b2b087b81302326.zip
Merge "Disable user control of color mode depending on Accessibility" into pi-dev am: c9bd31b2f8
am: c04f722cab Change-Id: I51af3f1020c477304c11cac80c1675081e765d50
Diffstat (limited to 'src/com/android/settings/display')
-rw-r--r--src/com/android/settings/display/ColorModePreferenceFragment.java50
1 files changed, 39 insertions, 11 deletions
diff --git a/src/com/android/settings/display/ColorModePreferenceFragment.java b/src/com/android/settings/display/ColorModePreferenceFragment.java
index 5f5445b948..6e4bd1f8e4 100644
--- a/src/com/android/settings/display/ColorModePreferenceFragment.java
+++ b/src/com/android/settings/display/ColorModePreferenceFragment.java
@@ -16,6 +16,7 @@ package com.android.settings.display;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.internal.app.ColorDisplayController;
@@ -24,13 +25,15 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.R;
import com.android.settings.widget.RadioButtonPickerFragment;
+import com.android.settings.widget.RadioButtonPreference;
import com.android.settingslib.widget.CandidateInfo;
import java.util.Arrays;
import java.util.List;
@SuppressWarnings("WeakerAccess")
-public class ColorModePreferenceFragment extends RadioButtonPickerFragment {
+public class ColorModePreferenceFragment extends RadioButtonPickerFragment
+ implements ColorDisplayController.Callback {
@VisibleForTesting
static final String KEY_COLOR_MODE_NATURAL = "color_mode_natural";
@@ -48,6 +51,16 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment {
public void onAttach(Context context) {
super.onAttach(context);
mController = new ColorDisplayController(context);
+ mController.setListener(this);
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ if (mController != null) {
+ mController.setListener(null);
+ mController = null;
+ }
}
@Override
@@ -71,15 +84,16 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment {
@Override
protected List<? extends CandidateInfo> getCandidates() {
Context c = getContext();
+ final boolean enabled = !mController.getAccessibilityTransformActivated();
return Arrays.asList(
- new ColorModeCandidateInfo(c.getString(R.string.color_mode_option_natural),
- KEY_COLOR_MODE_NATURAL),
- new ColorModeCandidateInfo(c.getString(R.string.color_mode_option_boosted),
- KEY_COLOR_MODE_BOOSTED),
- new ColorModeCandidateInfo(c.getString(R.string.color_mode_option_saturated),
- KEY_COLOR_MODE_SATURATED),
- new ColorModeCandidateInfo(c.getString(R.string.color_mode_option_automatic),
- KEY_COLOR_MODE_AUTOMATIC)
+ new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_natural),
+ KEY_COLOR_MODE_NATURAL, enabled),
+ new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_boosted),
+ KEY_COLOR_MODE_BOOSTED, enabled),
+ new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_saturated),
+ KEY_COLOR_MODE_SATURATED, enabled),
+ new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_automatic),
+ KEY_COLOR_MODE_AUTOMATIC, enabled)
);
}
@@ -120,8 +134,8 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment {
private final CharSequence mLabel;
private final String mKey;
- ColorModeCandidateInfo(CharSequence label, String key) {
- super(true);
+ ColorModeCandidateInfo(CharSequence label, String key, boolean enabled) {
+ super(enabled);
mLabel = label;
mKey = key;
}
@@ -142,4 +156,18 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment {
}
}
+ @Override
+ public void onAccessibilityTransformChanged(boolean state) {
+ // Disable controls when a11y transforms are enabled, and vice versa
+ final PreferenceScreen screen = getPreferenceScreen();
+ if (screen != null) {
+ final int count = screen.getPreferenceCount();
+ for (int i = 0; i < count; i++) {
+ final Preference pref = screen.getPreference(i);
+ if (pref instanceof RadioButtonPreference) {
+ pref.setEnabled(!state);
+ }
+ }
+ }
+ }
}