diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2013-12-13 15:53:38 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-12-13 15:53:38 -0800 |
commit | a8d2b889238deff6e815cc9d9f5cfa9f66d5425b (patch) | |
tree | bf96588aea47efc67dc54858b747034317018ae7 /src/com/android/camera | |
parent | 079ee4cd575b6c53c0e97ba110cdeca55cab0190 (diff) | |
parent | 3091b029ab7e72a4883deedcb96cba440603dfde (diff) | |
download | android_packages_apps_Snap-a8d2b889238deff6e815cc9d9f5cfa9f66d5425b.tar.gz android_packages_apps_Snap-a8d2b889238deff6e815cc9d9f5cfa9f66d5425b.tar.bz2 android_packages_apps_Snap-a8d2b889238deff6e815cc9d9f5cfa9f66d5425b.zip |
Merge "Camera: Overrides the focus mode for ZSL"
Diffstat (limited to 'src/com/android/camera')
-rw-r--r-- | src/com/android/camera/FocusOverlayManager.java | 14 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 9 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 18 |
3 files changed, 39 insertions, 2 deletions
diff --git a/src/com/android/camera/FocusOverlayManager.java b/src/com/android/camera/FocusOverlayManager.java index 9558944c0..77cfcc5f8 100644 --- a/src/com/android/camera/FocusOverlayManager.java +++ b/src/com/android/camera/FocusOverlayManager.java @@ -91,6 +91,7 @@ public class FocusOverlayManager { private boolean mPreviousMoving; private boolean mFocusDefault; private boolean mZslEnabled = false; //QCom Parameter to disable focus for ZSL + private boolean mTouchAFRunning = false; private FocusUI mUI; private final Rect mPreviewRect = new Rect(0, 0, 0, 0); @@ -381,6 +382,10 @@ public class FocusOverlayManager { // Use margin to set the focus indicator to the touched area. mUI.setFocusPosition(x, y); + if (mZslEnabled) { + mTouchAFRunning = true; + } + // Stop face detection because we want to specify focus and metering area. mListener.stopFaceDetection(); @@ -533,6 +538,10 @@ public class FocusOverlayManager { resetMeteringAreas(); } mFocusDefault = true; + if (mTouchAFRunning && mZslEnabled) { + mTouchAFRunning = false; + mListener.setFocusParameters(); + } } private void calculateTapArea(int x, int y, float areaMultiple, Rect rect) { @@ -599,4 +608,9 @@ public class FocusOverlayManager { public boolean isZslEnabled() { return mZslEnabled; } + + public boolean isTouch() { + return mTouchAFRunning; + } + } diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 0f4d3b74a..a82abb9a8 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -95,7 +95,6 @@ public class PhotoMenu extends PieController CameraSettings.KEY_RECORD_LOCATION, CameraSettings.KEY_PICTURE_SIZE, CameraSettings.KEY_HISTOGRAM, - CameraSettings.KEY_FOCUS_MODE, CameraSettings.KEY_PICTURE_FORMAT, CameraSettings.KEY_JPEG_QUALITY, CameraSettings.KEY_ZSL, @@ -122,6 +121,7 @@ public class PhotoMenu extends PieController CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, CameraSettings.KEY_FLASH_MODE, + CameraSettings.KEY_FOCUS_MODE, CameraSettings.KEY_REDEYE_REDUCTION, CameraSettings.KEY_AE_BRACKET_HDR }; @@ -243,14 +243,19 @@ public class PhotoMenu extends PieController String sceneMode = (pref != null) ? pref.getValue() : null; pref = mPreferenceGroup.findPreference(CameraSettings.KEY_FACE_DETECTION); String faceDetection = (pref != null) ? pref.getValue() : null; + pref = mPreferenceGroup.findPreference(CameraSettings.KEY_ZSL); + String zsl = (pref != null) ? pref.getValue() : null; if ((sceneMode != null) && !Parameters.SCENE_MODE_AUTO.equals(sceneMode)){ - popup1.setPreferenceEnabled(CameraSettings.KEY_FOCUS_MODE,false); + popup3.setPreferenceEnabled(CameraSettings.KEY_FOCUS_MODE,false); popup2.setPreferenceEnabled(CameraSettings.KEY_AUTOEXPOSURE,false); popup2.setPreferenceEnabled(CameraSettings.KEY_TOUCH_AF_AEC,false); popup3.setPreferenceEnabled(CameraSettings.KEY_FLASH_MODE,false); popup3.setPreferenceEnabled(CameraSettings.KEY_WHITE_BALANCE,false); popup3.setPreferenceEnabled(CameraSettings.KEY_EXPOSURE,false); } + if ((zsl != null) && Parameters.ZSL_ON.equals(zsl)) { + popup3.setPreferenceEnabled(CameraSettings.KEY_FOCUS_MODE,false); + } if ((faceDetection != null) && !Parameters.FACE_DETECTION_ON.equals(faceDetection)){ popup2.setPreferenceEnabled(CameraSettings.KEY_FACE_RECOGNITION,false); } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 128c8b876..65b9f8242 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1350,6 +1350,9 @@ public class PhotoModule mParameters.getWhiteBalance(), mParameters.getFocusMode(), Integer.toString(mParameters.getExposureCompensation()), mCurrTouchAfAec, mParameters.getAutoExposure()); + } else if (mFocusManager.isZslEnabled()) { + overrideCameraSettings(null, null, mParameters.getFocusMode(), + null, null, null); } else { overrideCameraSettings(null, null, null, null, null, null); } @@ -2286,6 +2289,19 @@ public class PhotoModule editor.putString(CameraSettings.KEY_PICTURE_FORMAT, mActivity.getString(R.string.pref_camera_picture_format_value_jpeg)); editor.apply(); + //Try to set CAF for ZSL + if(CameraUtil.isSupported(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE, + mParameters.getSupportedFocusModes()) && !mFocusManager.isTouch()) { + mFocusManager.overrideFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); + mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); + } else if (mFocusManager.isTouch()) { + mFocusManager.overrideFocusMode(null); + mParameters.setFocusMode(mFocusManager.getFocusMode()); + } else { + // If not supported use the current mode + mFocusManager.overrideFocusMode(mFocusManager.getFocusMode()); + } + if(!pictureFormat.equals(PIXEL_FORMAT_JPEG)) { mActivity.runOnUiThread(new Runnable() { public void run() { @@ -2307,6 +2323,8 @@ public class PhotoModule mSnapshotMode = CameraInfo.CAMERA_SUPPORT_MODE_NONZSL; mParameters.setCameraMode(0); mFocusManager.setZslEnable(false); + mFocusManager.overrideFocusMode(null); + mParameters.setFocusMode(mFocusManager.getFocusMode()); } // Set face detetction parameter. String faceDetection = mPreferences.getString( |