diff options
author | Daniel Solomon <solomondaniel@google.com> | 2018-04-06 10:48:49 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-04-06 10:48:49 -0700 |
commit | 7f2ae90df2a9a08f3194c6c86b2b087b81302326 (patch) | |
tree | a6ecf335a9c65b33fddfbcabb7d02d877586ec70 /src/com/android/settings/display | |
parent | 71b078d63639eecc157629b559e065b52a13bb67 (diff) | |
parent | c04f722cab6dd44d85abaa7f01b7cad8dac8d910 (diff) | |
download | packages_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.java | 50 |
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); + } + } + } + } } |