From f45a31643ccda08dfe6d979db488d19c20f0a055 Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Mon, 7 May 2018 18:05:42 +0300 Subject: [PATCH] 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);