summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/SettingsManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rw-r--r--src/com/android/camera/SettingsManager.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 7909541ae..57dc62479 100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -103,6 +103,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_VIDEO_ROTATION = "pref_camera2_video_rotation_key";
public static final String KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL =
"pref_camera2_video_time_lapse_frame_interval_key";
+ public static final String KEY_FACE_DETECTION = "pref_camera2_facedetection_key";
private static final String TAG = "SnapCam_SettingsManager";
private static SettingsManager sInstance;
@@ -464,6 +465,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
ListPreference audioEncoder = mPreferenceGroup.findPreference(KEY_AUDIO_ENCODER);
ListPreference noiseReduction = mPreferenceGroup.findPreference(KEY_NOISE_REDUCTION);
ListPreference videoFlash = mPreferenceGroup.findPreference(KEY_VIDEO_FLASH_MODE);
+ ListPreference faceDetection = mPreferenceGroup.findPreference(KEY_FACE_DETECTION);
if (whiteBalance != null) {
CameraSettings.filterUnsupportedOptions(mPreferenceGroup,
@@ -534,6 +536,11 @@ public class SettingsManager implements ListMenu.SettingsListener {
if (!isFlashAvailable(cameraId))
removePreference(mPreferenceGroup, KEY_VIDEO_FLASH_MODE);
}
+
+ if (faceDetection != null) {
+ if (!isFaceDetectionSupported(cameraId))
+ removePreference(mPreferenceGroup, KEY_FACE_DETECTION);
+ }
}
private void buildExposureCompensation(int cameraId) {
@@ -682,6 +689,21 @@ public class SettingsManager implements ListMenu.SettingsListener {
}
}
+ public boolean isFaceDetectionSupported(int id) {
+ int[] faceDetection = mCharacteristics.get(id).get
+ (CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES);
+ for (int value: faceDetection) {
+ if (value == CameraMetadata.STATISTICS_FACE_DETECT_MODE_SIMPLE)
+ return true;
+ }
+ return false;
+ }
+
+ public boolean isFacingFront(int id) {
+ int facing = mCharacteristics.get(id).get(CameraCharacteristics.LENS_FACING);
+ return facing == CameraCharacteristics.LENS_FACING_FRONT;
+ }
+
public boolean isFlashSupported(int id) {
return mCharacteristics.get(id).get(CameraCharacteristics.FLASH_INFO_AVAILABLE) &&
mValuesMap.get(KEY_FLASH_MODE) != null;