diff options
-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, |