diff options
author | Angus Kong <shkong@google.com> | 2014-04-25 11:41:23 -0700 |
---|---|---|
committer | Ed Heyl <edheyl@google.com> | 2014-06-18 10:24:45 -0700 |
commit | b00b7a67213ee6868eb792b2a63ba0dca888a01f (patch) | |
tree | 71503e0d52594676792b41d347ffa22b0a9f91f4 /camera2 | |
parent | d3865a20b022f6d54fe7ac052768a7ff0710017f (diff) | |
download | android_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.tar.gz android_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.tar.bz2 android_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.zip |
Add history info for camera open failure log.
bug:14365703
Change-Id: I4b2259e12121cac5b8165f5c5dbacf9cb3a936a6
Diffstat (limited to 'camera2')
-rw-r--r-- | camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java | 32 | ||||
-rw-r--r-- | camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java | 3 |
2 files changed, 30 insertions, 5 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java index 9498094..5dc6270 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java @@ -49,6 +49,7 @@ class AndroidCameraManagerImpl implements CameraManager { private static final Log.Tag TAG = new Log.Tag("AndroidCamMgrImpl"); private static final long CAMERA_OPERATION_TIMEOUT_MS = 2500; private static final long MAX_MESSAGE_QUEUE_LENGTH = 256; + private static final int MAX_HISTORY_SIZE = 400; private Parameters mParameters; private boolean mParametersIsDirty; @@ -237,8 +238,11 @@ class AndroidCameraManagerImpl implements CameraManager { * The handler on which the actual camera operations happen. */ private class CameraHandler extends Handler { + private Camera mCamera; + private LinkedList<Integer> mMsgHistory; + private class CaptureCallbacks { public final ShutterCallback mShutter; public final PictureCallback mRaw; @@ -256,6 +260,20 @@ class AndroidCameraManagerImpl implements CameraManager { CameraHandler(Looper looper) { super(looper); + mMsgHistory = new LinkedList<Integer>(); + // We add a -1 at the beginning to mark the very beginning of the + // history. + mMsgHistory.offerLast(-1); + } + + private String generateHistoryString(int cameraId) { + String info = new String("HIST"); + info += "_ID" + cameraId; + for (Integer msg : mMsgHistory) { + info = info + '_' + msg.toString(); + } + info += "_HEND"; + return info; } private void startFaceDetection() { @@ -318,6 +336,10 @@ class AndroidCameraManagerImpl implements CameraManager { */ @Override public void handleMessage(final Message msg) { + mMsgHistory.offerLast(msg.what); + while (mMsgHistory.size() > MAX_HISTORY_SIZE) { + mMsgHistory.pollFirst(); + } try { switch (msg.what) { case OPEN_CAMERA: { @@ -344,7 +366,7 @@ class AndroidCameraManagerImpl implements CameraManager { } } else { if (openCallback != null) { - openCallback.onDeviceOpenFailure(cameraId); + openCallback.onDeviceOpenFailure(cameraId, generateHistoryString(cameraId)); } } break; @@ -532,8 +554,10 @@ class AndroidCameraManagerImpl implements CameraManager { } else { if (mCamera == null) { if (msg.what == OPEN_CAMERA) { + final int cameraId = msg.arg1; if (msg.obj != null) { - ((CameraOpenCallback) msg.obj).onDeviceOpenFailure(msg.arg1); + ((CameraOpenCallback) msg.obj).onDeviceOpenFailure( + msg.arg1, generateHistoryString(cameraId)); } } else { Log.w(TAG, "Cannot handle message " + msg.what + ", mCamera is null."); @@ -1469,11 +1493,11 @@ class AndroidCameraManagerImpl implements CameraManager { } @Override - public void onDeviceOpenFailure(final int cameraId) { + public void onDeviceOpenFailure(final int cameraId, final String info) { mHandler.post(new Runnable() { @Override public void run() { - mCallback.onDeviceOpenFailure(cameraId); + mCallback.onDeviceOpenFailure(cameraId, info); } }); } diff --git a/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java b/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java index 27b1aab..6c80766 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java @@ -137,8 +137,9 @@ public interface CameraManager { * caught. * * @param cameraId The camera with the hardware failure. + * @param info The extra info regarding this failure. */ - public void onDeviceOpenFailure(int cameraId); + public void onDeviceOpenFailure(int cameraId, String info); /** * Callback when trying to open the camera which is already opened. |