From 7e531098757919768a540f969f9a7929f5c157c5 Mon Sep 17 00:00:00 2001 From: Alok Kediya Date: Sat, 28 Sep 2013 16:30:15 +0530 Subject: Camera: Adds support for Face Recognition enable - This change enables the camera client to configure the face recognition feature depending on the camera support of the lower layers. (cherrypicked from commit 9d469e2a66859fe5070d9651a41d0ca330ccc8cb) Change-Id: I141632e27cbef3bb53ea06a249491eff78b5f13b (cherry picked from commit b420162dd9c1f974628e8e7ff83bc0909c59e272) (cherry picked from commit 9c258ff94e7ce18c7e4072b83203092bd3d4c0d1) --- src/com/android/camera/CameraSettings.java | 18 ++++++++++++++++++ src/com/android/camera/PhotoMenu.java | 1 + src/com/android/camera/PhotoModule.java | 9 +++++++++ 3 files changed, 28 insertions(+) (limited to 'src') diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index e619c2aff..7d90a0689 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -98,8 +98,12 @@ public class CameraSettings { public static final String DEFAULT_VIDEO_QUALITY_VALUE = "custom"; public static final String KEY_SKIN_TONE_ENHANCEMENT = "pref_camera_skinToneEnhancement_key"; public static final String KEY_SKIN_TONE_ENHANCEMENT_FACTOR = "pref_camera_skinToneEnhancement_factor_key"; + + public static final String KEY_FACE_RECOGNITION = "pref_camera_facerc_key"; private static final String KEY_QC_SUPPORTED_AE_BRACKETING_MODES = "ae-bracket-hdr-values"; + private static final String KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES = "face-recognition-values"; public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr"; + public static final String KEY_QC_FACE_RECOGNITION = "face-recognition"; private static final String VIDEO_QUALITY_HIGH = "high"; private static final String VIDEO_QUALITY_MMS = "mms"; private static final String VIDEO_QUALITY_YOUTUBE = "youtube"; @@ -198,6 +202,14 @@ public class CameraSettings { } return duration; } + + public static List getSupportedFaceRecognitionModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES); + if (str == null) { + return null; + } + return split(str); + } public static List getSupportedAEBracketingModes(Parameters params) { String str = params.get(KEY_QC_SUPPORTED_AE_BRACKETING_MODES); if (str == null) { @@ -238,6 +250,7 @@ public class CameraSettings { ListPreference denoise = group.findPreference(KEY_DENOISE); ListPreference redeyeReduction = group.findPreference(KEY_REDEYE_REDUCTION); ListPreference aeBracketing = group.findPreference(KEY_AE_BRACKET_HDR); + ListPreference faceRC = group.findPreference(KEY_FACE_RECOGNITION); ListPreference jpegQuality = group.findPreference(KEY_JPEG_QUALITY); ListPreference videoSnapSize = group.findPreference(KEY_VIDEO_SNAPSHOT_SIZE); ListPreference videoHdr = group.findPreference(KEY_VIDEO_HDR); @@ -288,6 +301,11 @@ public class CameraSettings { antiBanding, mParameters.getSupportedAntibanding()); } + if (faceRC != null) { + filterUnsupportedOptions(group, + faceRC, getSupportedFaceRecognitionModes(mParameters)); + } + if (autoExposure != null) { filterUnsupportedOptions(group, autoExposure, mParameters.getSupportedAutoexposure()); diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 0f35e3699..0f2a94dea 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -121,6 +121,7 @@ public class PhotoMenu extends PieController mOtherKeys2 = new String[] { CameraSettings.KEY_COLOR_EFFECT, CameraSettings.KEY_FACE_DETECTION, + CameraSettings.KEY_FACE_RECOGNITION, CameraSettings.KEY_TOUCH_AF_AEC, CameraSettings.KEY_SELECTABLE_ZONE_AF, CameraSettings.KEY_SATURATION, diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 1e7795c60..c99ed0302 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1945,6 +1945,15 @@ public class PhotoModule if((0 <= sharpness) && (sharpness <= mParameters.getMaxSharpness())){ mParameters.setSharpness(sharpness); } + // Set Face Recognition + String faceRC = mPreferences.getString( + CameraSettings.KEY_FACE_RECOGNITION, + mActivity.getString(R.string.pref_camera_facerc_default)); + Log.v(TAG, "Face Recognition value = " + faceRC); + if (CameraUtil.isSupported(faceRC, + CameraSettings.getSupportedFaceRecognitionModes(mParameters))) { + mParameters.set(CameraSettings.KEY_QC_FACE_RECOGNITION, faceRC); + } // Set AE Bracketing String aeBracketing = mPreferences.getString( CameraSettings.KEY_AE_BRACKET_HDR, -- cgit v1.2.3