From fcf878529ccd950e5c15b6c72a00d51e8020cf21 Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Fri, 4 May 2018 17:55:01 +0300 Subject: [PATCH 1/4] Fixed crash when openning broken camera --- .../src/main/java/com/otaliastudios/cameraview/Camera1.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java index 6ff4347a..a6c1263e 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java @@ -269,7 +269,8 @@ class Camera1 extends CameraController implements Camera.PreviewCallback, Camera } LOG.e("Error inside the onError callback.", error); - throw new CameraException(new RuntimeException(CameraLogger.lastMessage)); +// throw new CameraException(new RuntimeException(CameraLogger.lastMessage)); + mCameraCallbacks.dispatchError(new CameraException(new RuntimeException(CameraLogger.lastMessage))); } @Override From f45a31643ccda08dfe6d979db488d19c20f0a055 Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Mon, 7 May 2018 18:05:42 +0300 Subject: [PATCH 2/4] Handling crashes when called onStart() --- .../cameraview/CameraController.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java index 3fb41e8a..e8051de8 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java @@ -177,7 +177,14 @@ abstract class CameraController implements if (mState >= STATE_STARTING) return; mState = STATE_STARTING; LOG.i("Start:", "about to call onStart()", ss()); - onStart(); + try { + onStart(); + } catch (Exception e) { + mCameraCallbacks.dispatchError(new CameraException(e)); + } finally { + LOG.e("Error:", "returned from onStart() with Exception.", "Dispatching.", ss()); + mState = STATE_STOPPED; + } LOG.i("Start:", "returned from onStart().", "Dispatching.", ss()); mState = STATE_STARTED; mCameraCallbacks.dispatchOnCameraOpened(mCameraOptions); @@ -238,7 +245,14 @@ abstract class CameraController implements LOG.i("Restart: about to start. State:", ss()); mState = STATE_STARTING; - onStart(); + try { + onStart(); + } catch (Exception e) { + mCameraCallbacks.dispatchError(new CameraException(e)); + } finally { + LOG.e("Error Restart:", "returned from onStart() with Exception.", "Dispatching.", ss()); + mState = STATE_STOPPED; + } mState = STATE_STARTED; LOG.i("Restart: returned from start. Dispatching. State:", ss()); mCameraCallbacks.dispatchOnCameraOpened(mCameraOptions); From a9fb2b9e00719ec37358e7ceb6f0b2800eef01b7 Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Fri, 11 May 2018 10:08:22 +0300 Subject: [PATCH 3/4] Fixed handling error --- .../java/com/otaliastudios/cameraview/CameraController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java index e8051de8..833228e5 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java @@ -181,9 +181,9 @@ abstract class CameraController implements onStart(); } catch (Exception e) { mCameraCallbacks.dispatchError(new CameraException(e)); - } finally { LOG.e("Error:", "returned from onStart() with Exception.", "Dispatching.", ss()); mState = STATE_STOPPED; + return; } LOG.i("Start:", "returned from onStart().", "Dispatching.", ss()); mState = STATE_STARTED; @@ -249,9 +249,9 @@ abstract class CameraController implements onStart(); } catch (Exception e) { mCameraCallbacks.dispatchError(new CameraException(e)); - } finally { LOG.e("Error Restart:", "returned from onStart() with Exception.", "Dispatching.", ss()); mState = STATE_STOPPED; + return; } mState = STATE_STARTED; LOG.i("Restart: returned from start. Dispatching. State:", ss()); From ef4be8ad8d4dbdc01c1a97f4f0569da96ae4cad7 Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Fri, 11 May 2018 14:59:46 +0300 Subject: [PATCH 4/4] Returned throw CameraException --- .../src/main/java/com/otaliastudios/cameraview/Camera1.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java index a6c1263e..6ff4347a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java @@ -269,8 +269,7 @@ class Camera1 extends CameraController implements Camera.PreviewCallback, Camera } LOG.e("Error inside the onError callback.", error); -// throw new CameraException(new RuntimeException(CameraLogger.lastMessage)); - mCameraCallbacks.dispatchError(new CameraException(new RuntimeException(CameraLogger.lastMessage))); + throw new CameraException(new RuntimeException(CameraLogger.lastMessage)); } @Override