summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraSettings.java
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2016-01-05 21:39:36 +0100
committercodeworkx <codeworkx@cyanogenmod.org>2016-01-05 23:41:58 +0100
commitc544747c2892b3984357a86b4116e1faa2be2210 (patch)
treeb5413db5a3dc897ad91bf7c9ae0bbbc4aa1945ef /src/com/android/camera/CameraSettings.java
parent185bfd4a342125b91cffe533f12917dd214f7d1e (diff)
downloadandroid_packages_apps_Snap-c544747c2892b3984357a86b4116e1faa2be2210.tar.gz
android_packages_apps_Snap-c544747c2892b3984357a86b4116e1faa2be2210.tar.bz2
android_packages_apps_Snap-c544747c2892b3984357a86b4116e1faa2be2210.zip
add support for non-standard iso keys and values
Change-Id: I3a948495cdf84dae3c1734d50ff91b4a5d3d9fc0
Diffstat (limited to 'src/com/android/camera/CameraSettings.java')
-rw-r--r--src/com/android/camera/CameraSettings.java66
1 files changed, 65 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index e8d1a9945..ac45bf14f 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -244,6 +244,10 @@ public class CameraSettings {
private final Parameters mParameters;
private final CameraInfo[] mCameraInfo;
private final int mCameraId;
+
+ public static String mKeyIso = null;
+ public static String mKeyIsoValues = null;
+
private static final HashMap<Integer, String>
VIDEO_ENCODER_TABLE = new HashMap<Integer, String>();
@@ -260,6 +264,22 @@ public class CameraSettings {
mParameters = parameters;
mCameraId = cameraId;
mCameraInfo = cameraInfo;
+
+ // ISO
+ mKeyIso = mContext.getResources().getString(R.string.key_iso);
+ mKeyIsoValues = mContext.getResources().getString(R.string.key_iso_values);
+
+ if (mKeyIso == null || mKeyIso.isEmpty()) {
+ mKeyIso = "iso";
+ } else {
+ Log.d(TAG, "Using key for iso: " + mKeyIso);
+ }
+
+ if (mKeyIsoValues == null || mKeyIsoValues.isEmpty()) {
+ mKeyIso = "iso-values";
+ } else {
+ Log.d(TAG, "Using key for iso-values: " + mKeyIsoValues);
+ }
}
public PreferenceGroup getPreferenceGroup(int preferenceRes) {
@@ -270,6 +290,28 @@ public class CameraSettings {
return group;
}
+ public static List<String> getSupportedIsoValues(Parameters params) {
+ String isoValues = params.get(mKeyIsoValues);
+ if (isoValues == null) {
+ return null;
+ }
+ Log.d(TAG, "Supported iso values: " + isoValues);
+ return split(isoValues);
+ }
+
+ public static String getISOValue(Parameters params) {
+ String iso = params.get(mKeyIso);
+
+ if (iso == null) {
+ return null;
+ }
+ return iso;
+ }
+
+ public static void setISOValue(Parameters params, String iso) {
+ params.set(mKeyIso, iso);
+ }
+
public static String getSupportedHighestVideoQuality(
int cameraId, Parameters parameters) {
// When launching the camera app first time, we will set the video quality
@@ -527,6 +569,22 @@ public class CameraSettings {
}
+ private static ListPreference removeLeadingISO(ListPreference pref) {
+ CharSequence entryValues[] = pref.getEntryValues();
+ if (entryValues.length > 0) {
+ CharSequence modEntryValues[] = new CharSequence[entryValues.length];
+ for (int i = 0, len = entryValues.length; i < len; i++) {
+ String isoValue = entryValues[i].toString();
+ if (isoValue.startsWith("ISO") && !isoValue.startsWith("ISO_")) {
+ isoValue = isoValue.replaceAll("ISO", "");
+ }
+ modEntryValues[i] = isoValue;
+ }
+ pref.setEntryValues(modEntryValues);
+ }
+ return pref;
+ }
+
private void qcomInitPreferences(PreferenceGroup group){
//Qcom Preference add here
ListPreference powerMode = group.findPreference(KEY_POWER_MODE);
@@ -565,6 +623,12 @@ public class CameraSettings {
ListPreference manualExposure = group.findPreference(KEY_MANUAL_EXPOSURE);
ListPreference manualWB = group.findPreference(KEY_MANUAL_WB);
+ // Remove leading ISO from iso-values
+ boolean isoValuesUseNumbers = mContext.getResources().getBoolean(R.bool.iso_values_use_numbers);
+ if (isoValuesUseNumbers && mIso != null) {
+ mIso = removeLeadingISO(mIso);
+ }
+
if (hdr_need_1x != null) {
filterUnsupportedOptions(group,
hdr_need_1x, getSupportedHDRNeed1x(mParameters));
@@ -628,7 +692,7 @@ public class CameraSettings {
if (mIso != null) {
filterUnsupportedOptions(group,
- mIso, mParameters.getSupportedIsoValues());
+ mIso, getSupportedIsoValues(mParameters));
}
if (redeyeReduction != null) {