Added jni and SurfaceControl methods for native setColor

Added the java method to invoke the setColor method that will
set a color for a layer.

Test: Builds and runs
Change-Id: Ica846fb977d937b48fe890ca70a3879b17cc71f6
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 33f1c7d..d7d8dd9 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -373,6 +373,16 @@
     }
 }
 
+static void nativeSetColor(JNIEnv* env, jclass clazz, jlong nativeObject, jfloatArray fColor) {
+    SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+    float* floatColors = env->GetFloatArrayElements(fColor, 0);
+    half3 color(floatColors[0], floatColors[1], floatColors[2]);
+    status_t err = ctrl->setColor(color);
+    if (err < 0 && err != NO_INIT) {
+        doThrowIAE(env);
+    }
+}
+
 static void nativeSetMatrix(JNIEnv* env, jclass clazz, jlong nativeObject,
         jfloat dsdx, jfloat dtdx, jfloat dtdy, jfloat dsdy) {
     SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
@@ -814,6 +824,8 @@
             (void*)nativeSetTransparentRegionHint },
     {"nativeSetAlpha", "(JF)V",
             (void*)nativeSetAlpha },
+    {"nativeSetColor", "(J[F)V",
+            (void*)nativeSetColor },
     {"nativeSetMatrix", "(JFFFF)V",
             (void*)nativeSetMatrix },
     {"nativeSetFlags", "(JII)V",