diff options
author | Alok Kediya <kediya@codeaurora.org> | 2013-09-28 16:23:35 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2013-10-31 19:39:24 -0600 |
commit | c862c8b5005e9325acc3f7511cb6136e7b77f720 (patch) | |
tree | ae7990832322dbeb98b8e405a08da09986f14a50 | |
parent | e111d53de4f9b40ef024deb8af7a0dc0f20e5398 (diff) | |
download | android_packages_apps_Snap-c862c8b5005e9325acc3f7511cb6136e7b77f720.tar.gz android_packages_apps_Snap-c862c8b5005e9325acc3f7511cb6136e7b77f720.tar.bz2 android_packages_apps_Snap-c862c8b5005e9325acc3f7511cb6136e7b77f720.zip |
Camera: Add support for setting AE Bracketing.
- This modification re-enables the AE bracketing UI
option and adds the necessary logic for parsing
and filtering the supported AE bracketing modes by
the camera.
(cherrypicked from commit 0b2b18f2a6b89da004db8c36420fc61f0e884290)
Change-Id: I5aea466eed9a3de4a899cced1e03c5177e57104b
Conflicts:
src/com/android/camera/CameraSettings.java
Conflicts:
src/com/android/camera/CameraSettings.java
(cherry picked from commit 8cd8e6797ed3ce856bb4d7771085e1678bea7f25)
(cherry picked from commit 24b84fd5855235b8710a625e42a0f2879cc1d898)
-rw-r--r-- | res/xml/camera_preferences.xml | 6 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 34 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 3 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 9 |
4 files changed, 47 insertions, 5 deletions
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml index 558194fc0..36165abc0 100644 --- a/res/xml/camera_preferences.xml +++ b/res/xml/camera_preferences.xml @@ -68,6 +68,12 @@ camera:entries="@array/pref_camera_focusmode_entries" camera:labelList="@array/pref_camera_focusmode_labels" camera:entryValues="@array/pref_camera_focusmode_entryvalues" /> + <ListPreference + camera:key="pref_camera_ae_bracket_hdr_key" + camera:defaultValue="@string/pref_camera_ae_bracket_hdr_default" + camera:title="@string/pref_camera_ae_bracket_hdr_title" + camera:entries="@array/pref_camera_ae_bracket_hdr_entries" + camera:entryValues="@array/pref_camera_ae_bracket_hdr_entryvalues" /> <IconListPreference camera:key="pref_camera_id_key" camera:defaultValue="@string/pref_camera_id_default" diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 1049e54f9..e619c2aff 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -1,5 +1,4 @@ -/* - * Copyright (C) 2009 The Android Open Source Project +/* Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,6 +38,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; import android.os.Build; +import java.util.StringTokenizer; /** * Provides utilities and keys for Camera settings. @@ -98,7 +98,8 @@ 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"; - + private static final String KEY_QC_SUPPORTED_AE_BRACKETING_MODES = "ae-bracket-hdr-values"; + public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr"; private static final String VIDEO_QUALITY_HIGH = "high"; private static final String VIDEO_QUALITY_MMS = "mms"; private static final String VIDEO_QUALITY_YOUTUBE = "youtube"; @@ -197,7 +198,27 @@ public class CameraSettings { } return duration; } + public static List<String> getSupportedAEBracketingModes(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_AE_BRACKETING_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) { + if (str == null) return null; + + // Use StringTokenizer because it is faster than split. + StringTokenizer tokenizer = new StringTokenizer(str, ","); + ArrayList<String> substrings = new ArrayList<String>(); + while (tokenizer.hasMoreElements()) { + substrings.add(tokenizer.nextToken()); + } + return substrings; + } private void qcomInitPreferences(PreferenceGroup group){ //Qcom Preference add here ListPreference powerMode = group.findPreference(KEY_POWER_MODE); @@ -216,7 +237,7 @@ public class CameraSettings { ListPreference histogram = group.findPreference(KEY_HISTOGRAM); ListPreference denoise = group.findPreference(KEY_DENOISE); ListPreference redeyeReduction = group.findPreference(KEY_REDEYE_REDUCTION); - ListPreference hdr = group.findPreference(KEY_AE_BRACKET_HDR); + ListPreference aeBracketing = group.findPreference(KEY_AE_BRACKET_HDR); ListPreference jpegQuality = group.findPreference(KEY_JPEG_QUALITY); ListPreference videoSnapSize = group.findPreference(KEY_VIDEO_SNAPSHOT_SIZE); ListPreference videoHdr = group.findPreference(KEY_VIDEO_HDR); @@ -257,6 +278,11 @@ public class CameraSettings { colorEffect, mParameters.getSupportedColorEffects()); } + if (aeBracketing != null) { + filterUnsupportedOptions(group, + aeBracketing, getSupportedAEBracketingModes(mParameters)); + } + if (antiBanding != null) { filterUnsupportedOptions(group, antiBanding, mParameters.getSupportedAntibanding()); diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 2e521d715..0f35e3699 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -136,7 +136,8 @@ public class PhotoMenu extends PieController CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, CameraSettings.KEY_FLASH_MODE, - CameraSettings.KEY_REDEYE_REDUCTION + CameraSettings.KEY_REDEYE_REDUCTION, + CameraSettings.KEY_AE_BRACKET_HDR }; PieItem item1 = makeItem(R.drawable.ic_settings_holo_light); diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index ac29d54e9..1e7795c60 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 AE Bracketing + String aeBracketing = mPreferences.getString( + CameraSettings.KEY_AE_BRACKET_HDR, + mActivity.getString(R.string.pref_camera_ae_bracket_hdr_default)); + Log.v(TAG, "AE Bracketing value =" + aeBracketing); + if (CameraUtil.isSupported(aeBracketing, + CameraSettings.getSupportedAEBracketingModes(mParameters))) { + mParameters.set(CameraSettings.KEY_QC_AE_BRACKETING, aeBracketing); + } // Set auto exposure parameter. String autoExposure = mPreferences.getString( CameraSettings.KEY_AUTOEXPOSURE, |