summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJayant Chowdhary <jchowdhary@google.com>2019-02-15 10:31:54 -0800
committerMichael Bestas <mkbestas@lineageos.org>2019-12-11 20:06:32 +0200
commit9771aed88abcd175f21c8d0a988194c7a088504b (patch)
treee5b37bc41b6c8d03d256fc883669a43b5ade7030
parent684b6dc38480717603b3412f1622ea22868a0492 (diff)
downloadandroid_packages_apps_Camera2-9771aed88abcd175f21c8d0a988194c7a088504b.tar.gz
android_packages_apps_Camera2-9771aed88abcd175f21c8d0a988194c7a088504b.tar.bz2
android_packages_apps_Camera2-9771aed88abcd175f21c8d0a988194c7a088504b.zip
BasicCameraFactory: check if continuous picture af is available before requesting it.
Bug: 119284303 Test: Click a picture on a device without AF on front camera. Change-Id: I5133d56d69f7a1f6e01d6682fff91202aaa9be17 Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
-rw-r--r--src/com/android/camera/one/OneCameraCharacteristics.java5
-rw-r--r--src/com/android/camera/one/v1/OneCameraCharacteristicsImpl.java5
-rw-r--r--src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java14
-rw-r--r--src/com/android/camera/one/v2/common/BasicCameraFactory.java8
4 files changed, 30 insertions, 2 deletions
diff --git a/src/com/android/camera/one/OneCameraCharacteristics.java b/src/com/android/camera/one/OneCameraCharacteristics.java
index 24584da45..27504a243 100644
--- a/src/com/android/camera/one/OneCameraCharacteristics.java
+++ b/src/com/android/camera/one/OneCameraCharacteristics.java
@@ -135,6 +135,11 @@ public interface OneCameraCharacteristics {
public boolean isAutoFocusSupported();
/**
+ * @return true if this camera supports continuous picture autofocus.
+ */
+ public boolean isContinuousPictureAutoFocusSupported();
+
+ /**
* @return true if this camera supports custom AutoExposure regions.
*/
public boolean isAutoExposureSupported();
diff --git a/src/com/android/camera/one/v1/OneCameraCharacteristicsImpl.java b/src/com/android/camera/one/v1/OneCameraCharacteristicsImpl.java
index b14e66ec1..c525b572d 100644
--- a/src/com/android/camera/one/v1/OneCameraCharacteristicsImpl.java
+++ b/src/com/android/camera/one/v1/OneCameraCharacteristicsImpl.java
@@ -176,6 +176,11 @@ public class OneCameraCharacteristicsImpl implements OneCameraCharacteristics {
}
@Override
+ public boolean isContinuousPictureAutoFocusSupported() {
+ return getCameraDirection() == Facing.BACK;
+ }
+
+ @Override
public boolean isAutoExposureSupported() {
// Custom AE is only supported on the back camera for legacy devices.
return getCameraDirection() == Facing.BACK;
diff --git a/src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java b/src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java
index f7a2b7e17..77e9a8173 100644
--- a/src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java
@@ -244,6 +244,20 @@ public class OneCameraCharacteristicsImpl implements OneCameraCharacteristics {
}
@Override
+ public boolean isContinuousPictureAutoFocusSupported() {
+ int[] availableAfModes =
+ mCameraCharacteristics.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES);
+ boolean continuousPictureAfModeAvailable = false;
+ for (int i = 0; i < availableAfModes.length; i++) {
+ if (availableAfModes[i] == CameraCharacteristics.CONTROL_AF_MODE_CONTINUOUS_PICTURE) {
+ continuousPictureAfModeAvailable = true;
+ break;
+ }
+ }
+ return isAutoFocusSupported() && continuousPictureAfModeAvailable;
+ }
+
+ @Override
public boolean isAutoExposureSupported() {
Integer maxAeRegions = mCameraCharacteristics.get(
CameraCharacteristics.CONTROL_MAX_REGIONS_AE);
diff --git a/src/com/android/camera/one/v2/common/BasicCameraFactory.java b/src/com/android/camera/one/v2/common/BasicCameraFactory.java
index 2cd40984f..c9ed57f12 100644
--- a/src/com/android/camera/one/v2/common/BasicCameraFactory.java
+++ b/src/com/android/camera/one/v2/common/BasicCameraFactory.java
@@ -87,8 +87,12 @@ public class BasicCameraFactory {
Observable<Boolean> hdrSceneSetting,
int templateType) {
RequestTemplate requestTemplate = new RequestTemplate(rootTemplate);
- requestTemplate.setParam(
- CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
+ if (cameraCharacteristics.isContinuousPictureAutoFocusSupported()) {
+ requestTemplate.setParam(
+ CaptureRequest.CONTROL_AF_MODE,
+ CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
+ }
+
requestTemplate.setParam(
CaptureRequest.CONTROL_AE_MODE, new FlashBasedAEMode(flash, hdrSceneSetting));
requestTemplate.setParam(