summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CaptureModule.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-07-14 17:08:47 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-07-26 10:44:41 -0700
commitb3f7fcacc6cf08b15aa61686a44a612b7ed2ee6f (patch)
tree9dbba7e1b3c653c3579281107fce7e181c77dcd7 /src/com/android/camera/CaptureModule.java
parent9f65ee95c61d70d6f7c34cd8bedea61ff1cdf2d1 (diff)
downloadandroid_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
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rw-r--r--src/com/android/camera/CaptureModule.java52
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();
}