diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-07-14 17:08:47 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-07-26 10:44:41 -0700 |
commit | b3f7fcacc6cf08b15aa61686a44a612b7ed2ee6f (patch) | |
tree | 9dbba7e1b3c653c3579281107fce7e181c77dcd7 | |
parent | 9f65ee95c61d70d6f7c34cd8bedea61ff1cdf2d1 (diff) | |
download | android_packages_apps_Snap-b3f7fcacc6cf08b15aa61686a44a612b7ed2ee6f.tar.gz android_packages_apps_Snap-b3f7fcacc6cf08b15aa61686a44a612b7ed2ee6f.tar.bz2 android_packages_apps_Snap-b3f7fcacc6cf08b15aa61686a44a612b7ed2ee6f.zip |
SnapdragonCamera: When mono preview hidden, don't set repeating request
Don't set a repeating request for mono preview when mono preview option
is set to off in dual camera mode.
CRs-Fixed: 993611
Change-Id: I615483a8ed24689692136e9e2007f19898db5a24
-rw-r--r-- | src/com/android/camera/CaptureModule.java | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index bf63de271..33498f070 100644 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -558,6 +558,11 @@ public class CaptureModule implements CameraModule, PhotoController, mSettingsManager.getSensorActiveArraySize(getMainCameraId())); } + private boolean canStartMonoPreview() { + return getCameraMode() == MONO_MODE || + (getCameraMode() == DUAL_MODE && isMonoPreviewOn()); + } + private boolean isMonoPreviewOn() { String value = mSettingsManager.getValue(SettingsManager.KEY_MONO_PREVIEW); if (value == null) return false; @@ -720,8 +725,15 @@ public class CaptureModule implements CameraModule, PhotoController, mIsLinked = true; } // Finally, we start displaying the camera preview. - mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] - .build(), mCaptureCallback, mCameraHandler); + // for cases where we are in dual mode with mono preview off, + // don't set repeating request for mono + if(id == MONO_ID && !canStartMonoPreview()) { + mCaptureSession[id].capture(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } else { + mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } if (isClearSightOn()) { ClearSightImageProcessor.getInstance().onCaptureSessionConfigured(id == BAYER_ID, cameraCaptureSession); } @@ -807,8 +819,13 @@ public class CaptureModule implements CameraModule, PhotoController, mPreviewRequestBuilder[id].set(CaptureRequest.LENS_FOCUS_DISTANCE, fd); mPreviewRequestBuilder[id].setTag(id); try { - mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] - .build(), mCaptureCallback, mCameraHandler); + if(id == MONO_ID && !canStartMonoPreview()) { + mCaptureSession[id].capture(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } else { + mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } } catch (CameraAccessException e) { e.printStackTrace(); } @@ -1300,8 +1317,13 @@ public class CaptureModule implements CameraModule, PhotoController, mState[id] = STATE_PREVIEW; mControlAFMode = CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE; setAFModeToPreview(id, mControlAFMode); - mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id].build(), - mCaptureCallback, mCameraHandler); + if(id == MONO_ID && !canStartMonoPreview()) { + mCaptureSession[id].capture(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } else { + mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id].build(), + mCaptureCallback, mCameraHandler); + } mTakingPicture[id] = false; mActivity.runOnUiThread(new Runnable() { @Override @@ -2625,8 +2647,13 @@ public class CaptureModule implements CameraModule, PhotoController, private void applyZoomAndUpdate(int id) { applyZoom(mPreviewRequestBuilder[id], id); try { - mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] - .build(), mCaptureCallback, mCameraHandler); + if(id == MONO_ID && !canStartMonoPreview()) { + mCaptureSession[id].capture(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } else { + mCaptureSession[id].setRepeatingRequest(mPreviewRequestBuilder[id] + .build(), mCaptureCallback, mCameraHandler); + } } catch (CameraAccessException e) { e.printStackTrace(); } @@ -2961,8 +2988,13 @@ public class CaptureModule implements CameraModule, PhotoController, } if (updatePreviewMono) { try { - mCaptureSession[MONO_ID].setRepeatingRequest(mPreviewRequestBuilder[MONO_ID] - .build(), mCaptureCallback, mCameraHandler); + if(canStartMonoPreview()) { + mCaptureSession[MONO_ID].setRepeatingRequest(mPreviewRequestBuilder[MONO_ID] + .build(), mCaptureCallback, mCameraHandler); + } else { + mCaptureSession[MONO_ID].capture(mPreviewRequestBuilder[MONO_ID] + .build(), mCaptureCallback, mCameraHandler); + } } catch (CameraAccessException e) { e.printStackTrace(); } |