summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/xml/camera_preferences.xml6
-rw-r--r--src/com/android/camera/CameraSettings.java34
-rw-r--r--src/com/android/camera/PhotoMenu.java3
-rw-r--r--src/com/android/camera/PhotoModule.java9
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,