Skip to content

Commit 8f7133d

Browse files
authored
v60 (3.5.3) (#3)
* Base Fixes * Bug #1 * try/catch added for bug * Attempting to fix * Crash fixing attempt * seems to be good to go! * Try/Catch implementation
1 parent c23f8b7 commit 8f7133d

File tree

5 files changed

+61
-24
lines changed

5 files changed

+61
-24
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.3'
8+
classpath 'com.android.tools.build:gradle:3.0.1'
99

1010
// NOTE: Do not place your application dependencies here; they belong
1111
// in the individual module build.gradle files

camerakit/build.gradle

+7-8
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ ext {
77
}
88

99
android {
10-
compileSdkVersion 25
11-
buildToolsVersion "25.0.3"
10+
compileSdkVersion 27
1211

1312
defaultConfig {
1413
minSdkVersion 18
15-
targetSdkVersion 25
14+
targetSdkVersion 27
1615
versionCode 1
1716
versionName "1.0"
1817

@@ -35,12 +34,12 @@ android {
3534
}
3635

3736
dependencies {
38-
compile 'com.android.support:appcompat-v7:25.3.1'
39-
compile "com.android.support:exifinterface:25.3.1"
37+
compile 'com.android.support:appcompat-v7:27.0.2'
38+
compile "com.android.support:exifinterface:27.0.2"
4039

41-
compile 'android.arch.lifecycle:runtime:1.0.0-alpha1'
42-
compile 'android.arch.lifecycle:extensions:1.0.0-alpha1'
43-
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha1'
40+
compile 'android.arch.lifecycle:runtime:1.0.3'
41+
compile 'android.arch.lifecycle:extensions:1.0.0'
42+
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0'
4443
}
4544

4645
apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'

camerakit/src/main/api16/com/flurgle/camerakit/Camera1.java

+44-15
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.hardware.Camera;
66
import android.media.CamcorderProfile;
77
import android.media.MediaRecorder;
8-
import android.os.Build;
98
import android.os.Handler;
109
import android.support.annotation.Nullable;
1110
import android.util.Log;
@@ -235,7 +234,11 @@ public void onPictureTaken(byte[] data, Camera camera) {
235234
// Reset capturing state to allow photos to be taken
236235
capturingImage = false;
237236

238-
camera.startPreview();
237+
// Wrapping in a try catch to try and avoid crashes.
238+
// https://fabric.io/goosechase/android/apps/com.goosechaseadventures.goosechase/issues/59aed6cfbe077a4dcc2822fc
239+
try {
240+
camera.startPreview();
241+
} catch(Exception e){}
239242
}
240243
});
241244
}
@@ -270,10 +273,26 @@ void startVideo() {
270273

271274
@Override
272275
void endVideo() {
273-
mMediaRecorder.stop();
274-
mMediaRecorder.release();
275-
mMediaRecorder = null;
276-
mCameraListener.onVideoTaken(mVideoFile);
276+
// Try to fix this bug:
277+
// https://fabric.io/goosechase/android/apps/com.goosechaseadventures.goosechase/issues/59aee2b5be077a4dcc28a5bd
278+
try {
279+
mMediaRecorder.stop();
280+
mMediaRecorder.release();
281+
mMediaRecorder = null;
282+
mCameraListener.onVideoTaken(mVideoFile);
283+
} catch (Exception e) {
284+
if(mMediaRecorder != null){
285+
mMediaRecorder.release();
286+
}
287+
288+
mMediaRecorder = null;
289+
if(mVideoFile != null){
290+
mVideoFile.delete();
291+
mVideoFile = null;
292+
}
293+
294+
mCameraListener.onVideoFailed(e);
295+
}
277296
}
278297

279298
// Code from SandriosCamera library
@@ -331,7 +350,7 @@ List<Size> sizesFromList(List<Camera.Size> sizes) {
331350
// https://github.com/sandrios/sandriosCamera/blob/master/sandriosCamera/src/main/java/com/sandrios/sandriosCamera/internal/manager/impl/Camera1Manager.java#L212
332351
void initResolutions() {
333352
List<Size> previewSizes = sizesFromList(mCameraParameters.getSupportedPreviewSizes());
334-
List<Size> videoSizes = (Build.VERSION.SDK_INT > 10) ? sizesFromList(mCameraParameters.getSupportedVideoSizes()) : previewSizes;
353+
List<Size> videoSizes = sizesFromList(mCameraParameters.getSupportedVideoSizes());
335354

336355
CamcorderProfile camcorderProfile = getCamcorderProfile(mVideoQuality);
337356

@@ -440,6 +459,13 @@ private int calculateCaptureRotation() {
440459
}
441460

442461
private void adjustCameraParameters() {
462+
// Try and fix the following bug:
463+
// https://fabric.io/goosechase/android/apps/com.goosechaseadventures.goosechase/issues/59aed6dabe077a4dcc282396
464+
if(mCameraParameters == null){
465+
// mCamera should also be valid here since you can only call this method after mCamera has been set or checked.
466+
mCameraParameters = mCamera.getParameters();
467+
}
468+
443469
initResolutions();
444470

445471
boolean invertPreviewSizes = (mCameraInfo.orientation + mDisplayOrientation) % 180 == 0;
@@ -459,11 +485,10 @@ private void adjustCameraParameters() {
459485
);
460486
int rotation = calculateCaptureRotation();
461487
mCameraParameters.setRotation(rotation);
488+
mCamera.setParameters(mCameraParameters);
462489

463490
setFocus(mFocus);
464491
setFlash(mFlash);
465-
466-
mCamera.setParameters(mCameraParameters);
467492
}
468493

469494
private void collectCameraProperties() {
@@ -667,12 +692,16 @@ private void resetFocus(final boolean success, final Camera camera) {
667692
public void run() {
668693
if (camera != null) {
669694
camera.cancelAutoFocus();
670-
Camera.Parameters params = camera.getParameters();
671-
if (params.getFocusMode() != Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) {
672-
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
673-
params.setFocusAreas(null);
674-
params.setMeteringAreas(null);
675-
camera.setParameters(params);
695+
try {
696+
Camera.Parameters params = camera.getParameters();
697+
if (params.getFocusMode() != Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) {
698+
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
699+
params.setFocusAreas(null);
700+
params.setMeteringAreas(null);
701+
camera.setParameters(params);
702+
}
703+
} catch (Exception e) {
704+
Log.i(TAG, "Couldn't set parameters for focus");
676705
}
677706

678707
if (mAutofocusCallback != null) {

camerakit/src/main/java/com/flurgle/camerakit/CameraListener.java

+3
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,7 @@ public void onVideoTaken(File video) {
3030

3131
}
3232

33+
public void onVideoFailed(Exception e) {
34+
35+
}
3336
}

camerakit/src/main/java/com/flurgle/camerakit/CameraView.java

+6
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,12 @@ public void onVideoTaken(File video) {
541541
getCameraListener().onVideoTaken(video);
542542
}
543543

544+
@Override
545+
public void onVideoFailed(Exception e) {
546+
super.onVideoFailed(e);
547+
getCameraListener().onVideoFailed(e);
548+
}
549+
544550
public void setCameraListener(@Nullable CameraListener cameraListener) {
545551
this.mCameraListener = cameraListener;
546552
}

0 commit comments

Comments
 (0)