Merge \"Color transforms are now color modes.\" into nyc-mr1-dev
am: 111e1dc6b3

Change-Id: I6536baf47e102331fa87112d4f0b9d15ec432d2a
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 51e8794..df101ff 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -67,6 +67,7 @@
     <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
     <uses-permission android:name="android.permission.READ_PROFILE" />
     <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
+    <uses-permission android:name="android.permission.CONFIGURE_DISPLAY_COLOR_MODE" />
     <uses-permission android:name="android.permission.SET_TIME" />
     <uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
     <uses-permission android:name="android.permission.REBOOT" />
diff --git a/src/com/android/settings/ColorModePreference.java b/src/com/android/settings/ColorModePreference.java
index 94b6499..74abf5d 100644
--- a/src/com/android/settings/ColorModePreference.java
+++ b/src/com/android/settings/ColorModePreference.java
@@ -24,7 +24,6 @@
 import android.support.v14.preference.SwitchPreference;
 import android.util.AttributeSet;
 import android.view.Display;
-import android.view.Display.ColorTransform;
 
 import java.util.ArrayList;
 
@@ -34,14 +33,14 @@
     private Display mDisplay;
 
     private int mCurrentIndex;
-    private ArrayList<ColorTransformDescription> mDescriptions;
+    private ArrayList<ColorModeDescription> mDescriptions;
 
     public ColorModePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
         mDisplayManager = getContext().getSystemService(DisplayManager.class);
     }
 
-    public int getTransformsCount() {
+    public int getColorModeCount() {
         return mDescriptions.size();
     }
 
@@ -77,43 +76,24 @@
         mDescriptions = new ArrayList<>();
 
         Resources resources = getContext().getResources();
-        int[] transforms = resources.getIntArray(
-                com.android.internal.R.array.config_colorTransforms);
+        int[] colorModes = resources.getIntArray(R.array.color_mode_ids);
         String[] titles = resources.getStringArray(R.array.color_mode_names);
         String[] descriptions = resources.getStringArray(R.array.color_mode_descriptions);
-        // Map the resource information describing color transforms.
-        for (int i = 0; i < transforms.length; i++) {
-            if (transforms[i] != -1 && i != 1 /* Skip Natural for now. */) {
-                ColorTransformDescription desc = new ColorTransformDescription();
-                desc.colorTransform = transforms[i];
+        // Map the resource information describing color modes.
+        for (int i = 0; i < colorModes.length; i++) {
+            if (colorModes[i] != -1 && i != 1 /* Skip Natural for now. */) {
+                ColorModeDescription desc = new ColorModeDescription();
+                desc.colorMode = colorModes[i];
                 desc.title = titles[i];
                 desc.summary = descriptions[i];
                 mDescriptions.add(desc);
             }
         }
-        // Match up a ColorTransform to every description.
-        ColorTransform[] supportedColorTransforms = mDisplay.getSupportedColorTransforms();
-        for (int i = 0; i < supportedColorTransforms.length; i++) {
-            for (int j = 0; j < mDescriptions.size(); j++) {
-                if (mDescriptions.get(j).colorTransform
-                        == supportedColorTransforms[i].getColorTransform()
-                        && mDescriptions.get(j).transform == null) {
-                    mDescriptions.get(j).transform = supportedColorTransforms[i];
-                    break;
-                }
-            }
-        }
-        // Remove any extras that don't have a transform for some reason.
-        for (int i = 0; i < mDescriptions.size(); i++) {
-            if (mDescriptions.get(i).transform == null) {
-                mDescriptions.remove(i--);
-            }
-        }
 
-        ColorTransform currentTransform = mDisplay.getColorTransform();
+        int currentColorMode = mDisplay.getColorMode();
         mCurrentIndex = -1;
         for (int i = 0; i < mDescriptions.size(); i++) {
-            if (mDescriptions.get(i).colorTransform == currentTransform.getColorTransform()) {
+            if (mDescriptions.get(i).colorMode == currentColorMode) {
                 mCurrentIndex = i;
                 break;
             }
@@ -125,19 +105,18 @@
     protected boolean persistBoolean(boolean value) {
         // Right now this is a switch, so we only support two modes.
         if (mDescriptions.size() == 2) {
-            ColorTransformDescription desc = mDescriptions.get(value ? 1 : 0);
+            ColorModeDescription desc = mDescriptions.get(value ? 1 : 0);
 
-            mDisplay.requestColorTransform(desc.transform);
+            mDisplay.requestColorMode(desc.colorMode);
             mCurrentIndex = mDescriptions.indexOf(desc);
         }
 
         return true;
     }
 
-    private static class ColorTransformDescription {
-        private int colorTransform;
+    private static class ColorModeDescription {
+        private int colorMode;
         private String title;
         private String summary;
-        private ColorTransform transform;
     }
 }
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 4704426..c988e31 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -503,7 +503,7 @@
 
         mColorModePreference = (ColorModePreference) findPreference(KEY_COLOR_MODE);
         mColorModePreference.updateCurrentAndSupported();
-        if (mColorModePreference.getTransformsCount() < 2) {
+        if (mColorModePreference.getColorModeCount() < 2) {
             removePreference(KEY_COLOR_MODE);
             mColorModePreference = null;
         }