From c15ddae4862bb9a10b0142fac9558a5f899b1a21 Mon Sep 17 00:00:00 2001 From: Alan Newberger Date: Mon, 27 Oct 2014 14:23:23 -0700 Subject: Ensure agent error handler is always non-null Create a dummy placeholder handler which logs warnings, which can be replaced by app if desired. This makes various assumptions valid that this is non-null. Bug: 18137167 Change-Id: I0f508dff3cfe766ccc5a3c5a26c6196f4fb31e04 --- .../ex/camera2/portability/AndroidCameraAgentImpl.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java index 9910dd9..cdd6993 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java @@ -55,7 +55,23 @@ class AndroidCameraAgentImpl extends CameraAgent { private final HandlerThread mCameraHandlerThread; private final CameraStateHolder mCameraState; private final DispatchThread mDispatchThread; - private CameraExceptionHandler mExceptionHandler; + private CameraExceptionHandler mExceptionHandler = new CameraExceptionHandler(null) { + @Override + public void onCameraError(int errorCode) { + Log.w(TAG, "onCameraError called before handler set: " + errorCode); + } + + @Override + public void onCameraException(RuntimeException ex, String commandHistory, int action, + int state) { + Log.w(TAG, "onCameraException called before handler set", ex); + } + + @Override + public void onDispatchThreadException(RuntimeException ex) { + Log.w(TAG, "onDispatchThreadException called before handler set", ex); + } + }; AndroidCameraAgentImpl() { mCameraHandlerThread = new HandlerThread("Camera Handler Thread"); -- cgit v1.2.3