summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilian Peev <epeevs@codeaurora.org>2013-12-17 17:16:36 +0200
committerEmilian Peev <epeevs@codeaurora.org>2013-12-18 16:11:59 +0200
commitbfd8f3100c123c391749bdd934993f05784b2a24 (patch)
tree9f549dbbce0735dc532a6dcd88145bdb73b3a4ed
parent079ee4cd575b6c53c0e97ba110cdeca55cab0190 (diff)
downloadandroid_packages_apps_Snap-bfd8f3100c123c391749bdd934993f05784b2a24.tar.gz
android_packages_apps_Snap-bfd8f3100c123c391749bdd934993f05784b2a24.tar.bz2
android_packages_apps_Snap-bfd8f3100c123c391749bdd934993f05784b2a24.zip
Camera: Avoid preview restart after capture if possible
- If the camera supports implicit preview restart after image capture, then this sequence will be skipped in order to improve KPI. Change-Id: I13b52255f1aa82805a67ad688a9964f84a447d5a
-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 2c205e0b5..92e5de4ff 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -111,6 +111,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";
@@ -819,4 +823,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 128c8b876..3b899f098 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;
@@ -980,6 +983,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);
@@ -1279,6 +1283,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.