diff options
author | Senpo Hu <senpo@google.com> | 2014-09-26 20:21:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-26 20:21:01 +0000 |
commit | feb07ea4e32c7dcc4488515220a4a1881b5e6585 (patch) | |
tree | d8c89dbd3988eac7f8ccdee0ab859b391241066a /src/com/android | |
parent | ad12363ecaba370c2425677eef6e562bf7c98e3e (diff) | |
parent | 4ba2829246afa91db18d4ed41d08eddac8d91bc0 (diff) | |
download | android_packages_apps_Camera2-feb07ea4e32c7dcc4488515220a4a1881b5e6585.tar.gz android_packages_apps_Camera2-feb07ea4e32c7dcc4488515220a4a1881b5e6585.tar.bz2 android_packages_apps_Camera2-feb07ea4e32c7dcc4488515220a4a1881b5e6585.zip |
Merge "Stability: add null check for all CameraProxy obj references in VideoModule." into ub-camera-glacier
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 6 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 55 |
2 files changed, 42 insertions, 19 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 611cc79c5..bed2684ed 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1796,6 +1796,9 @@ public class PhotoModule @Override public void autoFocus() { + if (mCameraDevice == null) { + return; + } Log.v(TAG,"Starting auto focus"); mFocusStartTime = System.currentTimeMillis(); mCameraDevice.autoFocus(mHandler, mAutoFocusCallback); @@ -1805,6 +1808,9 @@ public class PhotoModule @Override public void cancelAutoFocus() { + if (mCameraDevice == null) { + return; + } mCameraDevice.cancelAutoFocus(); setCameraState(IDLE); setCameraParameters(UPDATE_PARAM_PREFERENCE); diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index d4dcdad5d..99e0501a6 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -414,7 +414,7 @@ public class VideoModule extends CameraModule } if (!mIsVideoCaptureIntent) { if (!mMediaRecorderRecording || mPaused || mSnapshotInProgress - || !mAppController.isShutterEnabled()) { + || !mAppController.isShutterEnabled() || mCameraDevice == null) { return; } @@ -432,7 +432,7 @@ public class VideoModule extends CameraModule @TargetApi(Build.VERSION_CODES.JELLY_BEAN) private void updateAutoFocusMoveCallback() { - if (mPaused) { + if (mPaused || mCameraDevice == null) { return; } @@ -587,6 +587,10 @@ public class VideoModule extends CameraModule @Override public void onCameraAvailable(CameraProxy cameraProxy) { + if (cameraProxy == null) { + Log.w(TAG, "onCameraAvailable returns a null CameraProxy object"); + return; + } mCameraDevice = cameraProxy; mCameraCapabilities = mCameraDevice.getCapabilities(); mCameraSettings = mCameraDevice.getSettings(); @@ -946,7 +950,7 @@ public class VideoModule extends CameraModule @Override public void stopPreview() { - if (!mPreviewing) { + if (!mPreviewing || mCameraDevice == null) { return; } mCameraDevice.stopPreview(); @@ -1085,8 +1089,10 @@ public class VideoModule extends CameraModule mMediaRecorder = new MediaRecorder(); // Unlock the camera object before passing it to media recorder. - mCameraDevice.unlock(); - mMediaRecorder.setCamera(mCameraDevice.getCamera()); + if (mCameraDevice != null) { + mCameraDevice.unlock(); + mMediaRecorder.setCamera(mCameraDevice.getCamera()); + } mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setProfile(mProfile); @@ -1297,8 +1303,10 @@ public class VideoModule extends CameraModule if (bytes <= Storage.LOW_STORAGE_THRESHOLD_BYTES) { Log.w(TAG, "Storage issue, ignore the start request"); } else { - //?? - //if (!mCameraDevice.waitDone()) return; + if (mCameraDevice == null) { + Log.v(TAG, "in storage callback after camera closed"); + return; + } if (mPaused == true) { Log.v(TAG, "in storage callback after module paused"); return; @@ -1438,7 +1446,7 @@ public class VideoModule extends CameraModule mAppController.getCameraAppUI().showModeOptions(); mAppController.getCameraAppUI().animateBottomBarToFullSize(mShutterIconId); - if (!mPaused) { + if (!mPaused && mCameraDevice != null) { setFocusParameters(); mCameraDevice.lock(); if (!ApiHelper.HAS_SURFACE_TEXTURE_RECORDING) { @@ -1598,10 +1606,12 @@ public class VideoModule extends CameraModule CameraProfile.QUALITY_HIGH); mCameraSettings.setPhotoJpegCompressionQuality(jpegQuality); - mCameraDevice.applySettings(mCameraSettings); - // Nexus 5 through KitKat 4.4.2 requires a second call to - // .setParameters() for frame rate settings to take effect. - mCameraDevice.applySettings(mCameraSettings); + if (mCameraDevice != null) { + mCameraDevice.applySettings(mCameraSettings); + // Nexus 5 through KitKat 4.4.2 requires a second call to + // .setParameters() for frame rate settings to take effect. + mCameraDevice.applySettings(mCameraSettings); + } // Update UI based on the new parameters. mUI.updateOnScreenIndicators(mCameraSettings); @@ -1811,7 +1821,9 @@ public class VideoModule extends CameraModule mParameters.setFlashMode(flashMode); } }*/ - mCameraDevice.applySettings(mCameraSettings); + if (mCameraDevice != null) { + mCameraDevice.applySettings(mCameraSettings); + } mUI.updateOnScreenIndicators(mCameraSettings); } @@ -1914,13 +1926,17 @@ public class VideoModule extends CameraModule /***********************FocusOverlayManager Listener****************************/ @Override public void autoFocus() { - mCameraDevice.autoFocus(mHandler, mAutoFocusCallback); + if (mCameraDevice != null) { + mCameraDevice.autoFocus(mHandler, mAutoFocusCallback); + } } @Override public void cancelAutoFocus() { - mCameraDevice.cancelAutoFocus(); - setFocusParameters(); + if (mCameraDevice != null) { + mCameraDevice.cancelAutoFocus(); + setFocusParameters(); + } } @Override @@ -1940,8 +1956,9 @@ public class VideoModule extends CameraModule @Override public void setFocusParameters() { - updateFocusParameters(); - mCameraDevice.applySettings(mCameraSettings); + if (mCameraDevice != null) { + updateFocusParameters(); + mCameraDevice.applySettings(mCameraSettings); + } } - } |