Camera2 API: Fix missing callback issue
Callback/Listener classes must extend the AIDL Stub class and implement the
methods. Also rename the frameId to requestId to avoid confusion.
Change-Id: I1b2f0e2f99230917f9e0e1875ba3ba1c7859c805
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java
index 9587680..fa79051 100644
--- a/core/java/android/hardware/camera2/impl/CameraDevice.java
+++ b/core/java/android/hardware/camera2/impl/CameraDevice.java
@@ -24,7 +24,6 @@
import android.hardware.camera2.CameraProperties;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.utils.CameraRuntimeException;
-import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
@@ -40,6 +39,7 @@
public class CameraDevice implements android.hardware.camera2.CameraDevice {
private final String TAG;
+ private final boolean DEBUG;
// TODO: guard every function with if (!mRemoteDevice) check (if it was closed)
private ICameraDeviceUser mRemoteDevice;
@@ -59,6 +59,7 @@
public CameraDevice(String cameraId) {
mCameraId = cameraId;
TAG = String.format("CameraDevice-%s-JV", mCameraId);
+ DEBUG = Log.isLoggable(TAG, Log.DEBUG);
}
public CameraDeviceCallbacks getCallbacks() {
@@ -288,7 +289,7 @@
}
// TODO: unit tests
- public class CameraDeviceCallbacks extends Binder implements ICameraDeviceCallbacks {
+ public class CameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
@Override
public IBinder asBinder() {
@@ -298,14 +299,17 @@
// TODO: consider rename to onMessageReceived
@Override
public void notifyCallback(int msgType, int ext1, int ext2) throws RemoteException {
- Log.d(TAG, "Got message " + msgType + " ext1: " + ext1 + " , ext2: " + ext2);
+ if (DEBUG) {
+ Log.d(TAG, "Got message " + msgType + " ext1: " + ext1 + " , ext2: " + ext2);
+ }
// TODO implement rest
}
@Override
- public void onResultReceived(int frameId, CameraMetadata result) throws RemoteException {
- Log.d(TAG, "Received result for frameId " + frameId);
-
+ public void onResultReceived(int requestId, CameraMetadata result) throws RemoteException {
+ if (DEBUG) {
+ Log.d(TAG, "Received result for id " + requestId);
+ }
CaptureListenerHolder holder;
synchronized (mLock) {
@@ -313,7 +317,7 @@
// exposing the methods necessary like subscribeToRequest, unsubscribe..
// TODO: make class static class
- holder = CameraDevice.this.mCaptureListenerMap.get(frameId);
+ holder = CameraDevice.this.mCaptureListenerMap.get(requestId);
// Clean up listener once we no longer expect to see it.
@@ -321,7 +325,7 @@
// we probably want cancelRequest to return # of times it already enqueued and
// keep a counter.
if (holder != null && !holder.isRepeating()) {
- CameraDevice.this.mCaptureListenerMap.remove(frameId);
+ CameraDevice.this.mCaptureListenerMap.remove(requestId);
}
}