summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/display
diff options
context:
space:
mode:
authorDaniel Solomon <solomondaniel@google.com>2018-04-09 15:09:13 -0700
committerDaniel Solomon <solomondaniel@google.com>2018-04-09 20:49:43 -0700
commitfbe8a1318bc3f3fd79281defd85402a14a5a0a83 (patch)
tree01580a607eadff1857a432d2faad3a886f426a35 /src/com/android/settings/display
parentb410c21a01b58c3303eb69a062e803bf15433a14 (diff)
downloadpackages_apps_Settings-fbe8a1318bc3f3fd79281defd85402a14a5a0a83.tar.gz
packages_apps_Settings-fbe8a1318bc3f3fd79281defd85402a14a5a0a83.tar.bz2
packages_apps_Settings-fbe8a1318bc3f3fd79281defd85402a14a5a0a83.zip
Hide color mode preference depending on Accessibility settings
Currently, when certain Accessibility color transforms are enabled, the color mode preference radio buttons are disabled. To avoid confusing users, hide the color mode preference entirely. If the color mode settings screen is already open when the Accessibility transforms are enabled, return the user back to the previous screen. Bug: 77695840 Test: make ROBOTEST_FILTER=ColorModePreferenceFragmentTest RunSettingsRoboTests -j40 Change-Id: I44812713bdc739b843e5806711d25ea950aa6250
Diffstat (limited to 'src/com/android/settings/display')
-rw-r--r--src/com/android/settings/display/ColorModePreferenceController.java4
-rw-r--r--src/com/android/settings/display/ColorModePreferenceFragment.java23
2 files changed, 10 insertions, 17 deletions
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index 7fa978209d..31f53930a7 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -41,7 +41,9 @@ public class ColorModePreferenceController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
- return mConfigWrapper.isScreenWideColorGamut() ? AVAILABLE : DISABLED_FOR_USER;
+ return mConfigWrapper.isScreenWideColorGamut()
+ && !getColorDisplayController().getAccessibilityTransformActivated() ?
+ AVAILABLE : DISABLED_FOR_USER;
}
@Override
diff --git a/src/com/android/settings/display/ColorModePreferenceFragment.java b/src/com/android/settings/display/ColorModePreferenceFragment.java
index 089a5a608b..9f947e9e97 100644
--- a/src/com/android/settings/display/ColorModePreferenceFragment.java
+++ b/src/com/android/settings/display/ColorModePreferenceFragment.java
@@ -16,7 +16,6 @@ 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;
@@ -25,7 +24,6 @@ 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;
@@ -81,14 +79,13 @@ 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.getText(R.string.color_mode_option_natural),
- KEY_COLOR_MODE_NATURAL, enabled),
+ KEY_COLOR_MODE_NATURAL, true /* enabled */),
new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_boosted),
- KEY_COLOR_MODE_BOOSTED, enabled),
+ KEY_COLOR_MODE_BOOSTED, true /* enabled */),
new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_saturated),
- KEY_COLOR_MODE_SATURATED, enabled)
+ KEY_COLOR_MODE_SATURATED, true /* enabled */)
);
}
@@ -153,16 +150,10 @@ 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);
- }
- }
+ // Color modes are no not configurable when Accessibility transforms are enabled. Close
+ // this fragment in that case.
+ if (state) {
+ getActivity().onBackPressed();
}
}
}