summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/PhotoModule.java39
1 files changed, 30 insertions, 9 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index b2e67ed7d..8db4d2e5c 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -92,6 +92,7 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Arrays;
import java.util.List;
import java.util.Vector;
import java.util.HashMap;
@@ -1116,6 +1117,11 @@ public class PhotoModule
for (int i =0;i<3;i++) {
metadata[i] = byteToInt( (byte []) data, i*4);
}
+ if (metadata[0] != 3) {
+ Log.d(TAG, "Unhandled metadata callback: [" +
+ Arrays.toString(metadata) + "]");
+ return;
+ }
final boolean autoHdrEnabled = metadata[2] == 1;
mActivity.runOnUiThread(new Runnable() {
@Override
@@ -3388,15 +3394,6 @@ public class PhotoModule
String zsl = mPreferences.getString(CameraSettings.KEY_ZSL,
mActivity.getString(R.string.pref_camera_zsl_default));
- String auto_hdr = mPreferences.getString(CameraSettings.KEY_AUTO_HDR,
- mActivity.getString(R.string.pref_camera_auto_hdr_default));
- if (CameraUtil.isAutoHDRSupported(mParameters)) {
- mParameters.set("auto-hdr-enable",auto_hdr);
- if (auto_hdr.equals("enable")) {
- mParameters.setSceneMode("asd");
- mCameraDevice.setMetadataCb(mMetaDataCallback);
- }
- }
mParameters.setZSLMode(zsl);
if(zsl.equals("on")) {
//Switch on ZSL Camera mode
@@ -3445,6 +3442,8 @@ public class PhotoModule
}
}
+ updateAutoHDR();
+
//Set Histogram
String histogram = mPreferences.getString(
CameraSettings.KEY_HISTOGRAM,
@@ -3494,6 +3493,28 @@ public class PhotoModule
}
}
+ private void updateAutoHDR() {
+ String autoHdr = mPreferences.getString(CameraSettings.KEY_AUTO_HDR,
+ mActivity.getString(R.string.pref_camera_auto_hdr_default));
+ String advancedFeature = mPreferences.getString(
+ CameraSettings.KEY_ADVANCED_FEATURES,
+ mActivity.getString(R.string.pref_camera_advanced_feature_default));
+
+ if (CameraUtil.isAutoHDRSupported(mParameters)) {
+ if (autoHdr.equals("enable") &&
+ ("asd".equals(mSceneMode) || "auto".equals(mSceneMode)) &&
+ CameraUtil.isSupported("asd", mParameters.getSupportedSceneModes()) &&
+ (advancedFeature == null || "none".equals(advancedFeature))) {
+ mParameters.setSceneMode(Parameters.SCENE_MODE_ASD);
+ mCameraDevice.setMetadataCb(mMetaDataCallback);
+ mParameters.set("auto-hdr-enable", "enable");
+ return;
+ }
+ mCameraDevice.setMetadataCb(null);
+ mParameters.set("auto-hdr-enable", "disable");
+ }
+ }
+
private void setFlipValue() {
// Read Flip mode from adb command
//value: 0(default) - FLIP_MODE_OFF