From a3c813f96f63c9a9cd5a23fddc8ec0a13ca6878f Mon Sep 17 00:00:00 2001 From: Yuriy Budiyev Date: Fri, 22 Sep 2017 13:52:50 +0300 Subject: [PATCH] Dev --- .../android/codescanner/CodeScanner.java | 24 ++++++++++++------- .../android/codescanner/DecoderWrapper.java | 5 ++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/budiyev/android/codescanner/CodeScanner.java b/src/main/java/com/budiyev/android/codescanner/CodeScanner.java index 416b7a2..035de88 100644 --- a/src/main/java/com/budiyev/android/codescanner/CodeScanner.java +++ b/src/main/java/com/budiyev/android/codescanner/CodeScanner.java @@ -280,15 +280,7 @@ public void releaseResources() { if (mPreviewActive) { stopPreview(); } - mInitialized = false; - mInitialization = false; - mStoppingPreview = false; - mPreviewActive = false; - mFocusing = false; - DecoderWrapper decoderWrapper = mDecoderWrapper; - decoderWrapper.getCamera().release(); - decoderWrapper.getDecoder().shutdown(); - mDecoderWrapper = null; + releaseResourcesInternal(); } } @@ -356,6 +348,19 @@ private void stopPreviewInternalSafe() { } } + private void releaseResourcesInternal() { + mInitialized = false; + mInitialization = false; + mStoppingPreview = false; + mPreviewActive = false; + mFocusing = false; + DecoderWrapper decoderWrapper = mDecoderWrapper; + if (decoderWrapper != null) { + mDecoderWrapper = null; + decoderWrapper.release(); + } + } + private void setFlashEnabledInternal(boolean flashEnabled) { try { DecoderWrapper decoderWrapper = mDecoderWrapper; @@ -519,6 +524,7 @@ public void run() { try { initialize(); } catch (Exception e) { + releaseResourcesInternal(); ErrorCallback errorCallback = mErrorCallback; if (errorCallback != null) { errorCallback.onError(e); diff --git a/src/main/java/com/budiyev/android/codescanner/DecoderWrapper.java b/src/main/java/com/budiyev/android/codescanner/DecoderWrapper.java index 4480d4d..f770324 100644 --- a/src/main/java/com/budiyev/android/codescanner/DecoderWrapper.java +++ b/src/main/java/com/budiyev/android/codescanner/DecoderWrapper.java @@ -86,4 +86,9 @@ public boolean isAutoFocusSupported() { public boolean isFlashSupported() { return mFlashSupported; } + + public void release() { + mCamera.release(); + mDecoder.shutdown(); + } }