summaryrefslogtreecommitdiffstats
path: root/core/java/android/hardware
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-07-31 09:40:27 -0700
committerZhijun He <zhijunhe@google.com>2013-07-31 12:02:07 -0700
commitecb323e3ce94f62411b6799f9a0aa42b052de30d (patch)
tree3c543986132a8b42208abd36f31b001afe0cc40f /core/java/android/hardware
parent5d6e487e43ad66f7a9b9b398223a5c7efac5d0af (diff)
downloadframeworks_base-ecb323e3ce94f62411b6799f9a0aa42b052de30d.zip
frameworks_base-ecb323e3ce94f62411b6799f9a0aa42b052de30d.tar.gz
frameworks_base-ecb323e3ce94f62411b6799f9a0aa42b052de30d.tar.bz2
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
Diffstat (limited to 'core/java/android/hardware')
-rw-r--r--core/java/android/hardware/camera2/CameraManager.java3
-rw-r--r--core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl4
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDevice.java20
3 files changed, 15 insertions, 12 deletions
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index 0f7c930..1370654 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -22,7 +22,6 @@ import android.hardware.ICameraServiceListener;
import android.hardware.IProCameraUser;
import android.hardware.camera2.utils.CameraBinderDecorator;
import android.hardware.camera2.utils.CameraRuntimeException;
-import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -279,7 +278,7 @@ public final class CameraManager {
// TODO: this class needs unit tests
// TODO: extract class into top level
- private class CameraServiceListener extends Binder implements ICameraServiceListener {
+ private class CameraServiceListener extends ICameraServiceListener.Stub {
// Keep up-to-date with ICameraServiceListener.h
diff --git a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
index 9f569cb..4172238 100644
--- a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
+++ b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
@@ -25,6 +25,6 @@ interface ICameraDeviceCallbacks
* Keep up-to-date with frameworks/av/include/camera/camera2/ICameraDeviceCallbacks.h
*/
- void notifyCallback(int msgType, int ext1, int ext2);
- void onResultReceived(int frameId, in CameraMetadata result);
+ oneway void notifyCallback(int msgType, int ext1, int ext2);
+ oneway void onResultReceived(int frameId, in CameraMetadata result);
}
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.CameraAccessException;
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 @@ import java.util.Stack;
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 class CameraDevice implements android.hardware.camera2.CameraDevice {
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 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice {
}
// TODO: unit tests
- public class CameraDeviceCallbacks extends Binder implements ICameraDeviceCallbacks {
+ public class CameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
@Override
public IBinder asBinder() {
@@ -298,14 +299,17 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice {
// 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 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice {
// 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 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice {
// 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);
}
}