diff options
author | Zhijun He <zhijunhe@google.com> | 2013-07-31 09:40:27 -0700 |
---|---|---|
committer | Zhijun He <zhijunhe@google.com> | 2013-07-31 12:02:07 -0700 |
commit | ecb323e3ce94f62411b6799f9a0aa42b052de30d (patch) | |
tree | 3c543986132a8b42208abd36f31b001afe0cc40f /core/java/android/hardware | |
parent | 5d6e487e43ad66f7a9b9b398223a5c7efac5d0af (diff) | |
download | frameworks_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')
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); } } |