summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-01-11 01:52:54 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2014-01-11 01:52:54 -0800
commit4fa5b46ba5ba7872a6815d869ab1d4c72a588dc9 (patch)
treeb4d49a6d7f968467d600f68203e20c6ca73d6c6c
parent9379ef8a3b98f648179576fe7f72cdeda3d8f760 (diff)
parentbfd8f3100c123c391749bdd934993f05784b2a24 (diff)
downloadandroid_packages_apps_Snap-4fa5b46ba5ba7872a6815d869ab1d4c72a588dc9.tar.gz
android_packages_apps_Snap-4fa5b46ba5ba7872a6815d869ab1d4c72a588dc9.tar.bz2
android_packages_apps_Snap-4fa5b46ba5ba7872a6815d869ab1d4c72a588dc9.zip
Merge "Camera: Avoid preview restart after capture if possible"
-rw-r--r--src/com/android/camera/CameraSettings.java15
-rw-r--r--src/com/android/camera/PhotoModule.java11
2 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 859117714..48775041c 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -118,6 +118,10 @@ public class CameraSettings {
public static final String KEY_QC_FACE_RECOGNITION = "face-recognition";
public static final String KEY_QC_DIS_MODE = "dis";
+ public static final String KEY_INTERNAL_PREVIEW_RESTART = "internal-restart";
+ private static final String TRUE = "true";
+ private static final String FALSE = "false";
+
//for flip
public static final String KEY_QC_PREVIEW_FLIP = "preview-flip";
public static final String KEY_QC_VIDEO_FLIP = "video-flip";
@@ -862,4 +866,15 @@ public class CameraSettings {
}
return DEFAULT_VIDEO_DURATION * 1000;
}
+
+ public static boolean isInternalPreviewSupported(Parameters params) {
+ boolean ret = false;
+ if (null != params) {
+ String val = params.get(KEY_INTERNAL_PREVIEW_RESTART);
+ if ((null != val) && (TRUE.equals(val))) {
+ ret = true;
+ }
+ }
+ return ret;
+ }
}
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 15b72a0ac..26cdcffdb 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -192,6 +192,7 @@ public class PhotoModule
private static final String PERSIST_LONG_ENABLE = "persist.camera.longshot.enable";
private static final String PERSIST_LONG_SAVE = "persist.camera.longshot.save";
+ private static final String PERSIST_PREVIEW_RESTART = "persist.camera.feature.restart";
private static final int MINIMUM_BRIGHTNESS = 0;
private static final int MAXIMUM_BRIGHTNESS = 6;
@@ -214,6 +215,8 @@ public class PhotoModule
private TextView RightValue;
private TextView Title;
+ private boolean mPreviewRestartSupport = false;
+
// mCropValue and mSaveUri are used only if isImageCaptureIntent() is true.
private String mCropValue;
private Uri mSaveUri;
@@ -983,6 +986,7 @@ public class PhotoModule
mFocusManager.updateFocusUI(); // Ensure focus indicator is hidden.
boolean needRestartPreview = !mIsImageCaptureIntent
+ && !mPreviewRestartSupport
&& (mCameraState != LONGSHOT)
&& (mSnapshotMode != CameraInfo.CAMERA_SUPPORT_MODE_ZSL)
&& (mReceivedSnapNum == mBurstSnapNum);
@@ -1285,6 +1289,13 @@ public class PhotoModule
mBurstSnapNum = mParameters.getInt("num-snaps-per-shutter");
mReceivedSnapNum = 0;
+ mPreviewRestartSupport = SystemProperties.getBoolean(
+ PERSIST_PREVIEW_RESTART, false);
+ mPreviewRestartSupport &= CameraSettings.isInternalPreviewSupported(
+ mParameters);
+ mPreviewRestartSupport &= (mBurstSnapNum == 1);
+ mPreviewRestartSupport &= PIXEL_FORMAT_JPEG.equalsIgnoreCase(
+ pictureFormat);
// We don't want user to press the button again while taking a
// multi-second HDR photo.