summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlok Kediya <kediya@codeaurora.org>2013-09-28 16:23:35 +0530
committerLinux Build Service Account <lnxbuild@localhost>2013-10-31 19:39:24 -0600
commitc862c8b5005e9325acc3f7511cb6136e7b77f720 (patch)
treeae7990832322dbeb98b8e405a08da09986f14a50
parente111d53de4f9b40ef024deb8af7a0dc0f20e5398 (diff)
downloadandroid_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.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,