diff options
author | Emilian Peev <epeevs@codeaurora.org> | 2013-12-17 17:16:36 +0200 |
---|---|---|
committer | Emilian Peev <epeevs@codeaurora.org> | 2013-12-18 16:11:59 +0200 |
commit | bfd8f3100c123c391749bdd934993f05784b2a24 (patch) | |
tree | 9f549dbbce0735dc532a6dcd88145bdb73b3a4ed | |
parent | 079ee4cd575b6c53c0e97ba110cdeca55cab0190 (diff) | |
download | android_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.java | 15 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 11 |
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. |