Replace missing Color API.

Removed in change Ic4cb43e7. I could switch back to the HSV
methods or just do the lazy thing and copy the code in like
in change Iae3d85c0. (Obviously I chose the latter.)

Change-Id: I154626c326ee0bbf389df75f4a8050136b56c2d5
diff --git a/core/java/com/android/internal/app/PlatLogoActivity.java b/core/java/com/android/internal/app/PlatLogoActivity.java
index 2595fe0..0964dcf 100644
--- a/core/java/com/android/internal/app/PlatLogoActivity.java
+++ b/core/java/com/android/internal/app/PlatLogoActivity.java
@@ -42,6 +42,7 @@
 import android.provider.Settings;
 import android.util.DisplayMetrics;
 import android.util.Log;
+import android.util.MathUtils;
 import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.View;
@@ -86,9 +87,9 @@
         });
         final float hue = (float) Math.random();
         final Paint bgPaint = new Paint();
-        bgPaint.setColor(Color.HSBtoColor(hue, 0.4f, 1f));
+        bgPaint.setColor(HSBtoColor(hue, 0.4f, 1f));
         final Paint fgPaint = new Paint();
-        fgPaint.setColor(Color.HSBtoColor(hue, 0.5f, 1f));
+        fgPaint.setColor(HSBtoColor(hue, 0.5f, 1f));
         final Drawable M = getDrawable(com.android.internal.R.drawable.platlogo_m);
         final Drawable platlogo = new Drawable() {
             @Override
@@ -213,4 +214,68 @@
         fadeIn.start();
     }
 
+    /**
+     * Convert HSB components to an ARGB color. Alpha set to 0xFF.
+     *     hsv[0] is Hue [0 .. 1)
+     *     hsv[1] is Saturation [0...1]
+     *     hsv[2] is Value [0...1]
+     * If hsv values are out of range, they are pinned.
+     * @param h Hue component
+     * @param s Saturation component
+     * @param b Brightness component
+     * @return the resulting argb color
+     */
+    private static int HSBtoColor(float h, float s, float b) {
+        h = MathUtils.constrain(h, 0.0f, 1.0f);
+        s = MathUtils.constrain(s, 0.0f, 1.0f);
+        b = MathUtils.constrain(b, 0.0f, 1.0f);
+
+        float red = 0.0f;
+        float green = 0.0f;
+        float blue = 0.0f;
+
+        final float hf = (h - (int) h) * 6.0f;
+        final int ihf = (int) hf;
+        final float f = hf - ihf;
+        final float pv = b * (1.0f - s);
+        final float qv = b * (1.0f - s * f);
+        final float tv = b * (1.0f - s * (1.0f - f));
+
+        switch (ihf) {
+            case 0:         // Red is the dominant color
+                red = b;
+                green = tv;
+                blue = pv;
+                break;
+            case 1:         // Green is the dominant color
+                red = qv;
+                green = b;
+                blue = pv;
+                break;
+            case 2:
+                red = pv;
+                green = b;
+                blue = tv;
+                break;
+            case 3:         // Blue is the dominant color
+                red = pv;
+                green = qv;
+                blue = b;
+                break;
+            case 4:
+                red = tv;
+                green = pv;
+                blue = b;
+                break;
+            case 5:         // Red is the dominant color
+                red = b;
+                green = pv;
+                blue = qv;
+                break;
+        }
+
+        return 0xFF000000 | (((int) (red * 255.0f)) << 16) |
+                (((int) (green * 255.0f)) << 8) | ((int) (blue * 255.0f));
+    }
+
 }