summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2016-01-05 21:39:36 +0100
committerChippa-a <vusal1372@gmail.com>2019-10-25 15:55:25 +0300
commit48f1034a84683a07b5e529d469b369839387fce6 (patch)
tree52932a09fce7995516726c0511e920ec6e3be4ae
parent9b6c61fa48e571e740beb4822f4696af0109b672 (diff)
downloadandroid_packages_apps_Snap-48f1034a84683a07b5e529d469b369839387fce6.tar.gz
android_packages_apps_Snap-48f1034a84683a07b5e529d469b369839387fce6.tar.bz2
android_packages_apps_Snap-48f1034a84683a07b5e529d469b369839387fce6.zip
add support for non-standard iso keys and values
Change-Id: I3a948495cdf84dae3c1734d50ff91b4a5d3d9fc0
-rw-r--r--res/values/config.xml10
-rwxr-xr-xsrc/com/android/camera/CameraSettings.java66
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java14
3 files changed, 82 insertions, 8 deletions
diff --git a/res/values/config.xml b/res/values/config.xml
index 7ada8d775..b9a6294d1 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -27,4 +27,14 @@
<!-- This value may be changed to true to enable the warped pano preview overlayed on top
of the fullscreen pano preview. -->
<bool name="enable_warped_pano_preview">true</bool>
+
+ <!-- Use following iso parameter.
+ Example: lg-iso
+ lg-iso-values -->
+ <string name="key_iso">iso</string>
+ <string name="key_iso_values">iso-values</string>
+
+ <!-- ISO values use numbers.
+ Example: 50 instead of ISO50 -->
+ <bool name="iso_values_use_numbers">false</bool>
</resources>
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 7a6c4ac96..cf91b9a7d 100755
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -286,6 +286,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>();
public static final HashMap<String, Integer>
@@ -457,6 +461,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()) {
+ mKeyIsoValues = "iso-values";
+ } else {
+ Log.d(TAG, "Using key for iso-values: " + mKeyIsoValues);
+ }
}
public PreferenceGroup getPreferenceGroup(int preferenceRes) {
@@ -467,6 +487,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
@@ -753,6 +795,22 @@ public class CameraSettings {
return supported;
}
+ 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);
@@ -803,6 +861,12 @@ public class CameraSettings {
}
}
+ // 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 (bokehMode != null) {
if (!isBokehModeSupported(mParameters)) {
removePreference(group, bokehMode.getKey());
@@ -879,7 +943,7 @@ public class CameraSettings {
if (mIso != null) {
filterUnsupportedOptions(group,
- mIso, ParametersWrapper.getSupportedIsoValues(mParameters));
+ mIso, getSupportedIsoValues(mParameters));
}
if (redeyeReduction != null) {
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index a17b59921..2d0422a2c 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1852,7 +1852,7 @@ public class PhotoModule
mUI.overrideSettings(CameraSettings.KEY_LONGSHOT, null);
}
- String isoMode = ParametersWrapper.getISOValue(mParameters);
+ String isoMode = CameraSettings.getISOValue(mParameters);
final String isoManual = CameraSettings.KEY_MANUAL_ISO;
if (isoMode.equals(isoManual)) {
final String isoPref = mPreferences.getString(
@@ -3260,8 +3260,8 @@ public class PhotoModule
CameraSettings.KEY_ISO,
mActivity.getString(R.string.pref_camera_iso_default));
if (CameraUtil.isSupported(iso,
- ParametersWrapper.getSupportedIsoValues(mParameters))) {
- ParametersWrapper.setISOValue(mParameters, iso);
+ CameraSettings.getSupportedIsoValues(mParameters))) {
+ CameraSettings.setISOValue(mParameters, iso);
}
}
// Set color effect parameter.
@@ -4623,7 +4623,7 @@ public class PhotoModule
mParameters = mCameraDevice.getParameters();
final int minISO = mParameters.getInt(CameraSettings.KEY_MIN_ISO);
final int maxISO = mParameters.getInt(CameraSettings.KEY_MAX_ISO);
- String isoMode = ParametersWrapper.getISOValue(mParameters);
+ String isoMode = CameraSettings.getISOValue(mParameters);
final String isoManual = CameraSettings.KEY_MANUAL_ISO;
String currentISO = mParameters.get(CameraSettings.KEY_CURRENT_ISO);
if (currentISO != null) {
@@ -4665,7 +4665,7 @@ public class PhotoModule
if (newISO <= maxISO && newISO >= minISO) {
Log.v(TAG, "Setting ISO : " + newISO);
mManual3AEnabled |= MANUAL_EXPOSURE;
- ParametersWrapper.setISOValue(mParameters, isoManual);
+ CameraSettings.setISOValue(mParameters, isoManual);
mParameters.set(CameraSettings.KEY_CONTINUOUS_ISO, newISO);
mParameters.set(CameraSettings.KEY_EXPOSURE_TIME, "0");
updateCommonManual3ASettings();
@@ -4701,7 +4701,7 @@ public class PhotoModule
Log.v(TAG, "Setting Exposure time : " + newExpTime);
mManual3AEnabled |= MANUAL_EXPOSURE;
mParameters.set(CameraSettings.KEY_EXPOSURE_TIME, expTime);
- ParametersWrapper.setISOValue(mParameters, ParametersWrapper.ISO_AUTO);
+ CameraSettings.setISOValue(mParameters, Parameters.ISO_AUTO);
mUI.setPreference(CameraSettings.KEY_ISO, ParametersWrapper.ISO_AUTO);
mUI.overrideSettings(CameraSettings.KEY_ISO, null);
updateCommonManual3ASettings();
@@ -4753,7 +4753,7 @@ public class PhotoModule
newExpTime >= Double.parseDouble(minExpTime)) {
mManual3AEnabled |= MANUAL_EXPOSURE;
Log.v(TAG, "Setting ISO : " + newISO);
- ParametersWrapper.setISOValue(mParameters, isoManual);
+ CameraSettings.setISOValue(mParameters, isoManual);
mParameters.set(CameraSettings.KEY_CONTINUOUS_ISO, newISO);
Log.v(TAG, "Setting Exposure time : " + newExpTime);
mParameters.set(CameraSettings.KEY_EXPOSURE_TIME, expTime);