Pipe all the camera callbacks to Java to facilitate the addition
of new features. This will make it easy to add things like zoom
callbacks without modifying the entire camera stack.
Bug 1837832.
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index b07ba7d..8e48b38 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -125,37 +125,8 @@
         return;
     }
     JNIEnv *env = AndroidRuntime::getJNIEnv();
-
-    // parse message
-    switch (msgType) {
-    case CAMERA_MSG_ERROR:
-        LOGV("errorCallback");
-        int error;
-        switch (ext1) {
-            case DEAD_OBJECT:
-                error = kCameraErrorMediaServer;
-                break;
-            default:
-                error = kCameraErrorUnknown;
-                break;
-        }
-        env->CallStaticVoidMethod(mCameraJClass, fields.post_event,
-                mCameraJObjectWeak, kErrorCallback, error, 0, NULL);
-        break;
-    case CAMERA_MSG_FOCUS:
-        LOGV("autoFocusCallback");
-        env->CallStaticVoidMethod(mCameraJClass, fields.post_event,
-                mCameraJObjectWeak, kAutoFocusCallback, ext1, 0, NULL);
-        break;
-    case CAMERA_MSG_SHUTTER:
-        LOGV("shutterCallback");
-        env->CallStaticVoidMethod(mCameraJClass, fields.post_event,
-                mCameraJObjectWeak, kShutterCallback, 0, 0, NULL);
-        break;
-    default:
-        LOGV("notifyCallback(%d, %d, %d)", msgType, ext1, ext2);
-        break;
-    }
+    env->CallStaticVoidMethod(mCameraJClass, fields.post_event,
+            mCameraJObjectWeak, msgType, ext1, ext2);
 }
 
 void JNICameraContext::copyAndPost(JNIEnv* env, const sp<IMemory>& dataPtr, int msgType)
@@ -203,27 +174,20 @@
 
     // return data based on callback type
     switch(msgType) {
-    case CAMERA_MSG_PREVIEW_FRAME:
-        LOGV("previewCallback");
-        copyAndPost(env, dataPtr, kPreviewCallback);
-        break;
     case CAMERA_MSG_VIDEO_FRAME:
-        LOGV("recordingCallback");
+        // should never happen
         break;
+    // don't return raw data to Java
     case CAMERA_MSG_RAW_IMAGE:
         LOGV("rawCallback");
         env->CallStaticVoidMethod(mCameraJClass, fields.post_event,
-                mCameraJObjectWeak, kRawCallback, 0, 0, NULL);
-        break;
-    case CAMERA_MSG_COMPRESSED_IMAGE:
-        LOGV("jpegCallback");
-        copyAndPost(env, dataPtr, kJpegCallback);
+                mCameraJObjectWeak, msgType, 0, 0, NULL);
         break;
     default:
         LOGV("dataCallback(%d, %p)", msgType, dataPtr.get());
+        copyAndPost(env, dataPtr, msgType);
         break;
     }
-
 }
 
 // connect to camera service