Get Extra Dim availability through ColorDisplayManager

Test: atest ReduceBrightColorsIntensityPreferenceControllerTest
Bug: 170970675
Change-Id: Ibccca13d6491e8861263887e33021dd467fc227f
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
index 3b220e4..7e6b42d 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.hardware.display.ColorDisplayManager;
-import android.provider.Settings;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -38,10 +37,10 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (!ColorDisplayManager.isColorTransformAccelerated(mContext)) {
+        if (!ColorDisplayManager.isReduceBrightColorsAvailable(mContext)) {
             return UNSUPPORTED_ON_DEVICE;
-        } else if (Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0) != 1) {
+        }
+        if (!mColorDisplayManager.isReduceBrightColorsActivated()) {
             return DISABLED_DEPENDENT_SETTING;
         }
         return AVAILABLE;
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
index bf8cda7..a29567e 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
@@ -17,21 +17,29 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
+import android.hardware.display.ColorDisplayManager;
 import android.provider.Settings;
 
 import com.android.settings.core.TogglePreferenceController;
 
 /** PreferenceController for persisting feature activation state after a restart. */
 public class ReduceBrightColorsPersistencePreferenceController extends TogglePreferenceController {
+    private final ColorDisplayManager mColorDisplayManager;
 
     public ReduceBrightColorsPersistencePreferenceController(
             Context context, String preferenceKey) {
         super(context, preferenceKey);
+        mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
     }
 
     @Override
     public int getAvailabilityStatus() {
-        // TODO(b/170970675): call into CDS to get availability/config status
+        if (!ColorDisplayManager.isReduceBrightColorsAvailable(mContext)) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+        if (!mColorDisplayManager.isReduceBrightColorsActivated()) {
+            return DISABLED_DEPENDENT_SETTING;
+        }
         return AVAILABLE;
     }
 
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
index 037969d..ddf00e5 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
@@ -87,7 +87,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return ColorDisplayManager.isColorTransformAccelerated(mContext) ? AVAILABLE
+        return ColorDisplayManager.isReduceBrightColorsAvailable(mContext) ? AVAILABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
 
diff --git a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
index 61459c4..ad99556 100644
--- a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
@@ -21,6 +21,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.hardware.display.ColorDisplayManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -175,8 +176,7 @@
             new BaseSearchIndexProvider(R.xml.reduce_bright_colors_settings) {
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    // TODO(b/170970675): call into CDS to get availability/config status
-                    return true;
+                    return ColorDisplayManager.isReduceBrightColorsAvailable(context);
                 }
             };
 }
diff --git a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
index 22d0b29..c9efc61 100644
--- a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
@@ -56,7 +56,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1);
         doReturn(true).when(mResources).getBoolean(
-                com.android.internal.R.bool.config_setColorTransformAccelerated);
+                R.bool.config_reduceBrightColorsAvailable);
         assertThat(mPreferenceController.isAvailable()).isTrue();
     }
     @Test
@@ -64,7 +64,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0);
         doReturn(true).when(mResources).getBoolean(
-                com.android.internal.R.bool.config_setColorTransformAccelerated);
+                R.bool.config_reduceBrightColorsAvailable);
         assertThat(mPreferenceController.isAvailable()).isTrue();
     }
     @Test
@@ -72,7 +72,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1);
         doReturn(false).when(mResources).getBoolean(
-                com.android.internal.R.bool.config_setColorTransformAccelerated);
+                R.bool.config_reduceBrightColorsAvailable);
         assertThat(mPreferenceController.isAvailable()).isFalse();
     }