diff options
author | Ajit Singh Solanki <ajits@codeaurora.org> | 2013-11-07 01:56:47 -0800 |
---|---|---|
committer | Sunid Wilson <sunidw@codeaurora.org> | 2013-12-13 10:59:43 -0800 |
commit | 2e1e3f96100551feed54b507e7ad1dad52b637f1 (patch) | |
tree | a97263b237f0f41abf15ec78d65059b801eb33a4 | |
parent | 1c7734057201ffd1b6d165d9e24793ef3d213043 (diff) | |
download | android_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.tar.gz android_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.tar.bz2 android_packages_apps_Snap-2e1e3f96100551feed54b507e7ad1dad52b637f1.zip |
Camera: Add support for UbiFocus, ChromaFlash and OptiZoom.
- Add UI option in App to enable/disable UbiFocus,
ChromaFlash and OptiZoom
- App shows UI options for these features only
when supported in HAL
Change-Id: I924f97b2b510b351d9a8cb48a0aac6a4dc24ca10
-rw-r--r-- | res/values/qcomarrays.xml | 16 | ||||
-rw-r--r-- | res/values/qcomstrings.xml | 20 | ||||
-rw-r--r-- | res/xml/camera_preferences.xml | 6 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 45 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 51 |
6 files changed, 138 insertions, 1 deletions
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml index 3d08bab1f..4bafc660a 100644 --- a/res/values/qcomarrays.xml +++ b/res/values/qcomarrays.xml @@ -561,5 +561,21 @@ <item>@string/pref_camera_video_hdr_value_off</item> <item>@string/pref_camera_video_hdr_value_on</item> </string-array> + + <!-- Camera Preferences Selectable Advanced features dialog box entries --> + <string-array name="pref_camera_advanced_features_entries" translatable="false"> + <item>@string/pref_camera_advanced_feature_entry_none</item> + <item>@string/pref_camera_advanced_feature_entry_ubifocus</item> + <item>@string/pref_camera_advanced_feature_entry_chromaflash</item> + <item>@string/pref_camera_advanced_feature_entry_optizoom</item> + </string-array> + + <string-array name="pref_camera_advanced_features_entryvalues" translatable="false"> + <item>@string/pref_camera_advanced_feature_value_none</item> + <item>@string/pref_camera_advanced_feature_value_ubifocus_on</item> + <item>@string/pref_camera_advanced_feature_value_chromaflash_on</item> + <item>@string/pref_camera_advanced_feature_value_optizoom_on</item> + </string-array> + </resources> diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml index 05eec50a5..c63f30b6f 100644 --- a/res/values/qcomstrings.xml +++ b/res/values/qcomstrings.xml @@ -133,6 +133,26 @@ <string name="pref_camera_selectablezoneaf_value_centerweighted">center-weighted</string> <string name="pref_camera_selectablezoneaf_value_frameaverage">frame-average</string> + <string name="pref_camera_advanced_feature_default">none</string> + + <!-- Settings screen, Selectable advanced features title --> + <string name="pref_camera_advanced_features_title">Advanced Features</string> + + <!-- Settings screen, Selectable Zone Af dialog radio button choices --> + <string name="pref_camera_advanced_feature_entry_none">None</string> + <string name="pref_camera_advanced_feature_entry_ubifocus">Ubi Focus</string> + <string name="pref_camera_advanced_feature_entry_chromaflash">Chroma Flash</string> + <string name="pref_camera_advanced_feature_entry_optizoom">Opti Zoom</string> + + <!-- Auto exposure entry values. Do not translate. --> + <string name="pref_camera_advanced_feature_value_none">af-bracket-off</string> + <string name="pref_camera_advanced_feature_value_ubifocus_on">af-bracket-on</string> + <string name="pref_camera_advanced_feature_value_chromaflash_on">chroma-flash-on</string> + <string name="pref_camera_advanced_feature_value_optizoom_on">opti-zoom-on</string> + <string name="pref_camera_advanced_feature_value_ubifocus_off">af-bracket-off</string> + <string name="pref_camera_advanced_feature_value_chromaflash_off">chroma-flash-off</string> + <string name="pref_camera_advanced_feature_value_optizoom_off">opti-zoom-off</string> + <!-- Settings screen, ZSL location dialog choices --> <string name="pref_camera_zsl_entry_off">Off</string> <string name="pref_camera_zsl_entry_on">On</string> diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml index 36165abc0..c6ac85929 100644 --- a/res/xml/camera_preferences.xml +++ b/res/xml/camera_preferences.xml @@ -230,4 +230,10 @@ camera:defaultValue="@string/pref_camera_videosnapsize_default" camera:entries="@array/pref_camera_picturesize_entries" camera:entryValues="@array/pref_camera_picturesize_entryvalues" /> + <ListPreference + camera:key="pref_camera_advanced_features_key" + camera:defaultValue="@string/pref_camera_advanced_feature_default" + camera:title="@string/pref_camera_advanced_features_title" + camera:entries="@array/pref_camera_advanced_features_entries" + camera:entryValues="@array/pref_camera_advanced_features_entryvalues" /> </PreferenceGroup> diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 243f1e35d..4a2bed5c0 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -93,6 +93,7 @@ public class CameraSettings { public static final String KEY_DENOISE = "pref_camera_denoise_key"; public static final String KEY_REDEYE_REDUCTION = "pref_camera_redeyereduction_key"; public static final String KEY_AE_BRACKET_HDR = "pref_camera_ae_bracket_hdr_key"; + public static final String KEY_ADVANCED_FEATURES = "pref_camera_advanced_features_key"; public static final String KEY_VIDEO_SNAPSHOT_SIZE = "pref_camera_videosnapsize_key"; public static final String KEY_VIDEO_HIGH_FRAME_RATE = "pref_camera_hfr_key"; @@ -105,9 +106,15 @@ public class CameraSettings { public static final String KEY_DIS = "pref_camera_dis_key"; private static final String KEY_QC_SUPPORTED_AE_BRACKETING_MODES = "ae-bracket-hdr-values"; + private static final String KEY_QC_SUPPORTED_AF_BRACKETING_MODES = "af-bracket-values"; + private static final String KEY_QC_SUPPORTED_CF_MODES = "chroma-flash-values"; + private static final String KEY_QC_SUPPORTED_OZ_MODES = "opti-zoom-values"; private static final String KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES = "face-recognition-values"; private static final String KEY_QC_SUPPORTED_DIS_MODES = "dis-values"; public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr"; + public static final String KEY_QC_AF_BRACKETING = "af-bracket"; + public static final String KEY_QC_CHROMA_FLASH = "chroma-flash"; + public static final String KEY_QC_OPTI_ZOOM = "opti-zoom"; public static final String KEY_QC_FACE_RECOGNITION = "face-recognition"; public static final String KEY_QC_DIS_MODE = "dis"; @@ -246,6 +253,38 @@ public class CameraSettings { return split(str); } + public static List<String> getSupportedAdvancedFeatures(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_AF_BRACKETING_MODES); + str += ',' + params.get(KEY_QC_SUPPORTED_CF_MODES); + str += ',' + params.get(KEY_QC_SUPPORTED_OZ_MODES); + return split(str); + } + + public static List<String> getSupportedAFBracketingModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_AF_BRACKETING_MODES); + if (str == null) { + return null; + } + return split(str); + } + + public static List<String> getSupportedChromaFlashModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_CF_MODES); + if (str == null) { + return null; + } + return split(str); + } + + public static List<String> getSupportedOptiZoomModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_OZ_MODES); + if (str == null) { + return null; + } + return split(str); + } + + // Splits a comma delimited string to an ArrayList of String. // Return null if the passing string is null or the size is 0. private static ArrayList<String> split(String str) { @@ -294,6 +333,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 advancedFeatures = group.findPreference(KEY_ADVANCED_FEATURES); ListPreference faceRC = group.findPreference(KEY_FACE_RECOGNITION); ListPreference jpegQuality = group.findPreference(KEY_JPEG_QUALITY); ListPreference videoSnapSize = group.findPreference(KEY_VIDEO_SNAPSHOT_SIZE); @@ -376,7 +416,10 @@ public class CameraSettings { filterUnsupportedOptions(group, pictureFormat, getSupportedPictureFormatLists()); } - + if(advancedFeatures != null) { + filterUnsupportedOptions(group, + advancedFeatures, getSupportedAdvancedFeatures(mParameters)); + } } private void initPreference(PreferenceGroup group) { ListPreference videoQuality = group.findPreference(KEY_VIDEO_QUALITY); diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 0f4d3b74a..26039d906 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -119,6 +119,7 @@ public class PhotoMenu extends PieController CameraSettings.KEY_ANTIBANDING, CameraSettings.KEY_ISO, CameraSettings.KEY_DENOISE, + CameraSettings.KEY_ADVANCED_FEATURES, CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, CameraSettings.KEY_FLASH_MODE, diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 176885ce4..a64b0056c 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2068,6 +2068,22 @@ public class PhotoModule return mRestartPreview; } + private void qcomUpdateAdvancedFeatures(String ubiFocus, + String chromaFlash, + String optiZoom) { + if (CameraUtil.isSupported(ubiFocus, + CameraSettings.getSupportedAFBracketingModes(mParameters))) { + mParameters.set(CameraSettings.KEY_QC_AF_BRACKETING, ubiFocus); + } + if (CameraUtil.isSupported(chromaFlash, + CameraSettings.getSupportedChromaFlashModes(mParameters))) { + mParameters.set(CameraSettings.KEY_QC_CHROMA_FLASH, chromaFlash); + } + if (CameraUtil.isSupported(optiZoom, + CameraSettings.getSupportedOptiZoomModes(mParameters))) { + mParameters.set(CameraSettings.KEY_QC_OPTI_ZOOM, optiZoom); + } + } private void qcomUpdateCameraParametersPreference() { //qcom Related Parameter update //Set Brightness. @@ -2205,6 +2221,41 @@ public class PhotoModule CameraSettings.getSupportedAEBracketingModes(mParameters))) { mParameters.set(CameraSettings.KEY_QC_AE_BRACKETING, aeBracketing); } + // Set Advanced features. + String advancedFeature = mPreferences.getString( + CameraSettings.KEY_ADVANCED_FEATURES, + mActivity.getString(R.string.pref_camera_advanced_feature_default)); + Log.v(TAG, " advancedFeature value =" + advancedFeature); + + if(advancedFeature != null) { + String ubiFocusOff = mActivity.getString(R.string. + pref_camera_advanced_feature_value_ubifocus_off); + String chromaFlashOff = mActivity.getString(R.string. + pref_camera_advanced_feature_value_chromaflash_off); + String optiZoomOff = mActivity.getString(R.string. + pref_camera_advanced_feature_value_optizoom_off); + + if (advancedFeature.equals(mActivity.getString(R.string. + pref_camera_advanced_feature_value_ubifocus_on))) { + qcomUpdateAdvancedFeatures(advancedFeature, + chromaFlashOff, + optiZoomOff); + } else if (advancedFeature.equals(mActivity.getString(R.string. + pref_camera_advanced_feature_value_chromaflash_on))) { + qcomUpdateAdvancedFeatures(ubiFocusOff, + advancedFeature, + optiZoomOff); + } else if (advancedFeature.equals(mActivity.getString(R.string. + pref_camera_advanced_feature_value_optizoom_on))) { + qcomUpdateAdvancedFeatures(ubiFocusOff, + chromaFlashOff, + advancedFeature); + } else { + qcomUpdateAdvancedFeatures(ubiFocusOff, + chromaFlashOff, + optiZoomOff); + } + } // Set auto exposure parameter. String autoExposure = mPreferences.getString( CameraSettings.KEY_AUTOEXPOSURE, |