From 24289fa08434d67e2d93c2f5baff422a192465fc Mon Sep 17 00:00:00 2001 From: marcusge Date: Sat, 20 Apr 2024 00:13:24 +0000 Subject: [PATCH] [Contrast] Migrate contrast settings into Display Test: local raven device Bug: 333905689 Change-Id: Ie94633c23ebe024b8fb48d7ffebdd7b1dfa588da --- AndroidManifest.xml | 4 +- res/drawable/ic_color_contrast.xml | 35 ----------- res/values/strings.xml | 2 - res/xml/accessibility_color_and_motion.xml | 10 ---- res/xml/accessibility_color_contrast.xml | 4 +- res/xml/display_settings.xml | 8 +++ .../ContrastPreferenceController.java | 39 ------------ .../core/gateway/SettingsGateway.java | 2 +- ...lorContrastFooterPreferenceController.java | 3 +- .../ColorContrastFragment.java | 3 +- .../display/ContrastPreferenceController.java | 60 +++++++++++++++++++ .../ContrastSelectorPreferenceController.java | 2 +- .../ColorContrastFragmentTest.java | 3 +- .../ContrastPreferenceControllerTest.java | 28 +++++++-- ...trastSelectorPreferenceControllerTest.java | 2 +- 15 files changed, 103 insertions(+), 102 deletions(-) delete mode 100644 res/drawable/ic_color_contrast.xml delete mode 100644 src/com/android/settings/accessibility/ContrastPreferenceController.java rename src/com/android/settings/{accessibility => display}/ColorContrastFooterPreferenceController.java (90%) rename src/com/android/settings/{accessibility => display}/ColorContrastFragment.java (97%) create mode 100644 src/com/android/settings/display/ContrastPreferenceController.java rename src/com/android/settings/{accessibility => display}/ContrastSelectorPreferenceController.java (99%) rename tests/robotests/src/com/android/settings/{accessibility => display}/ColorContrastFragmentTest.java (96%) rename tests/robotests/src/com/android/settings/{accessibility => display}/ContrastPreferenceControllerTest.java (55%) rename tests/robotests/src/com/android/settings/{accessibility => display}/ContrastSelectorPreferenceControllerTest.java (98%) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index daadd35d213..bf7d4a16063 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2551,9 +2551,9 @@ + android:value="com.android.settings.display.ColorContrastFragment" /> + android:value="@string/menu_key_display"/> diff --git a/res/drawable/ic_color_contrast.xml b/res/drawable/ic_color_contrast.xml deleted file mode 100644 index 9d56ada2f0c..00000000000 --- a/res/drawable/ic_color_contrast.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index e14a1073451..a1428a6ad14 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4688,8 +4688,6 @@ Higher contrast makes text, buttons, and icons stand out more. Choose the contrast that looks best to you. Some apps may not support all color and text contrast settings - - Adjust how colors and text look against your screen\'s background color Preview diff --git a/res/xml/accessibility_color_and_motion.xml b/res/xml/accessibility_color_and_motion.xml index 35222347a29..a500b72d958 100644 --- a/res/xml/accessibility_color_and_motion.xml +++ b/res/xml/accessibility_color_and_motion.xml @@ -21,16 +21,6 @@ android:persistent="false" android:title="@string/accessibility_color_and_motion_title"> - - + settings:controller="com.android.settings.display.ContrastSelectorPreferenceController" /> + settings:controller="com.android.settings.display.ColorContrastFooterPreferenceController" /> diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml index 0c6d673fb20..abf0cc6d3d9 100644 --- a/res/xml/display_settings.xml +++ b/res/xml/display_settings.xml @@ -111,6 +111,14 @@ android:fragment="com.android.settings.display.ColorModePreferenceFragment" settings:controller="com.android.settings.display.ColorModePreferenceController" settings:keywords="@string/keywords_color_mode"/> + + mContrastLevelToResId = Map.ofEntries( + Map.entry(CONTRAST_LEVEL_STANDARD, R.string.contrast_default), + Map.entry(CONTRAST_LEVEL_MEDIUM, R.string.contrast_medium), + Map.entry(CONTRAST_LEVEL_HIGH, R.string.contrast_high) + ); + + float contrastLevel = mContext.getSystemService(UiModeManager.class).getContrast(); + return mContext.getString(mContrastLevelToResId.get(toContrastLevel(contrastLevel))); + } +} diff --git a/src/com/android/settings/accessibility/ContrastSelectorPreferenceController.java b/src/com/android/settings/display/ContrastSelectorPreferenceController.java similarity index 99% rename from src/com/android/settings/accessibility/ContrastSelectorPreferenceController.java rename to src/com/android/settings/display/ContrastSelectorPreferenceController.java index 5b746cdd705..ba98601d603 100644 --- a/src/com/android/settings/accessibility/ContrastSelectorPreferenceController.java +++ b/src/com/android/settings/display/ContrastSelectorPreferenceController.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings.accessibility; +package com.android.settings.display; import static android.app.UiModeManager.ContrastUtils.CONTRAST_LEVEL_HIGH; import static android.app.UiModeManager.ContrastUtils.CONTRAST_LEVEL_MEDIUM; diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorContrastFragmentTest.java b/tests/robotests/src/com/android/settings/display/ColorContrastFragmentTest.java similarity index 96% rename from tests/robotests/src/com/android/settings/accessibility/ColorContrastFragmentTest.java rename to tests/robotests/src/com/android/settings/display/ColorContrastFragmentTest.java index 3077637a8e4..47a7363b531 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ColorContrastFragmentTest.java +++ b/tests/robotests/src/com/android/settings/display/ColorContrastFragmentTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings.accessibility; +package com.android.settings.display; import static com.google.common.truth.Truth.assertThat; @@ -28,6 +28,7 @@ import android.content.Context; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; +import com.android.settings.accessibility.ShortcutsSettingsFragment; import com.android.settings.testutils.XmlTestUtils; import org.junit.Before; diff --git a/tests/robotests/src/com/android/settings/accessibility/ContrastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ContrastPreferenceControllerTest.java similarity index 55% rename from tests/robotests/src/com/android/settings/accessibility/ContrastPreferenceControllerTest.java rename to tests/robotests/src/com/android/settings/display/ContrastPreferenceControllerTest.java index 07c3b54f946..1ddc81960b6 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ContrastPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/ContrastPreferenceControllerTest.java @@ -14,15 +14,22 @@ * limitations under the License. */ -package com.android.settings.accessibility; +package com.android.settings.display; import static com.google.common.truth.Truth.assertThat; +import android.content.Context; +import android.platform.test.annotations.DisableFlags; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; + import androidx.test.core.app.ApplicationProvider; +import com.android.settings.accessibility.Flags; import com.android.settings.core.BasePreferenceController; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; @@ -31,19 +38,30 @@ import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) public class ContrastPreferenceControllerTest { + @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private static final String PREFERENCE_KEY = "preference_key"; + private Context mContext; private ContrastPreferenceController mController; @Before public void setUp() { - mController = new ContrastPreferenceController(ApplicationProvider.getApplicationContext(), - PREFERENCE_KEY); + mContext = ApplicationProvider.getApplicationContext(); + mController = new ContrastPreferenceController(mContext, PREFERENCE_KEY); } @Test - public void getAvailabilityStatus_shouldReturnUnavailable() { + @EnableFlags(Flags.FLAG_ENABLE_COLOR_CONTRAST_CONTROL) + public void getAvailabilityStatus_flagsEnabled_shouldReturnAvailable() { assertThat(mController.getAvailabilityStatus()) - .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE); + .isEqualTo(BasePreferenceController.AVAILABLE); + } + + @Test + @DisableFlags(Flags.FLAG_ENABLE_COLOR_CONTRAST_CONTROL) + public void getAvailabilityStatus_flagsDisabled_shouldReturnUnsupported() { + assertThat(mController.getAvailabilityStatus()) + .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE); } } diff --git a/tests/robotests/src/com/android/settings/accessibility/ContrastSelectorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ContrastSelectorPreferenceControllerTest.java similarity index 98% rename from tests/robotests/src/com/android/settings/accessibility/ContrastSelectorPreferenceControllerTest.java rename to tests/robotests/src/com/android/settings/display/ContrastSelectorPreferenceControllerTest.java index 83d9cb957b4..0d490a88347 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ContrastSelectorPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/ContrastSelectorPreferenceControllerTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings.accessibility; +package com.android.settings.display; import static com.google.common.truth.Truth.assertThat;