summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2013-12-13 15:53:38 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2013-12-13 15:53:38 -0800
commita8d2b889238deff6e815cc9d9f5cfa9f66d5425b (patch)
treebf96588aea47efc67dc54858b747034317018ae7 /src/com/android/camera
parent079ee4cd575b6c53c0e97ba110cdeca55cab0190 (diff)
parent3091b029ab7e72a4883deedcb96cba440603dfde (diff)
downloadandroid_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.java14
-rw-r--r--src/com/android/camera/PhotoMenu.java9
-rw-r--r--src/com/android/camera/PhotoModule.java18
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(