summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]res/xml/capture_preferences.xml7
-rw-r--r--src/com/android/camera/CaptureModule.java11
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/SettingsManager.java7
-rw-r--r--src/com/android/camera/imageprocessor/PostProcessor.java2
4 files changed, 27 insertions, 0 deletions
diff --git a/res/xml/capture_preferences.xml b/res/xml/capture_preferences.xml
index dc8191ba3..a92f8490e 100644..100755
--- a/res/xml/capture_preferences.xml
+++ b/res/xml/capture_preferences.xml
@@ -330,6 +330,13 @@
camera:title="@string/pref_camera2_histogram_title" />
<ListPreference
+ camera:defaultValue="@string/pref_camera2_auto_hdr_default"
+ camera:entries="@array/pref_camera2_auto_hdr_entries"
+ camera:entryValues="@array/pref_camera2_auto_hdr_entryvalues"
+ camera:key="pref_camera2_auto_hdr_key"
+ camera:title="@string/pref_camera2_auto_hdr_title" />
+
+ <ListPreference
camera:defaultValue="@string/pref_camera2_hdr_default"
camera:entries="@array/pref_camera2_hdr_entries"
camera:entryValues="@array/pref_camera2_hdr_entryvalues"
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index db9feffb8..a3090277d 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -239,6 +239,8 @@ public class CaptureModule implements CameraModule, PhotoController,
new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.histogram.max_count", Integer.class);
public static CaptureResult.Key<int[]> histogramStats =
new CaptureResult.Key<>("org.codeaurora.qcamera3.histogram.stats", int[].class);
+ public static CameraCharacteristics.Key<Integer> isHdrScene =
+ new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.stats.is_hdr_scene", Integer.class);
private boolean[] mTakingPicture = new boolean[MAX_NUM_CAM];
private int mControlAFMode = CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE;
private int mLastResultAFState = -1;
@@ -4026,8 +4028,16 @@ public class CaptureModule implements CameraModule, PhotoController,
private void applySceneMode(CaptureRequest.Builder request) {
String value = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE);
+ String autoHdr = mSettingsManager.getValue(SettingsManager.KEY_AUTO_HDR);
if (value == null) return;
int mode = Integer.parseInt(value);
+ if (autoHdr != null && "enable".equals(autoHdr) && "0".equals(value)) {
+ if (mSettingsManager.isHdrScene(getMainCameraId())) {
+ request.set(CaptureRequest.CONTROL_SCENE_MODE, CaptureRequest.CONTROL_SCENE_MODE_HDR);
+ request.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_USE_SCENE_MODE);
+ }
+ return;
+ }
if(getPostProcFilterId(mode) != PostProcessor.FILTER_NONE || mCaptureHDRTestEnable) {
request.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_AUTO);
return;
@@ -4301,6 +4311,7 @@ public class CaptureModule implements CameraModule, PhotoController,
updateVideoFlash();
return;
case SettingsManager.KEY_FLASH_MODE:
+ case SettingsManager.KEY_AUTO_HDR:
case SettingsManager.KEY_SAVERAW:
case SettingsManager.KEY_HDR:
if (count == 0) restartSession(false);
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index d9184d579..70a9ddc11 100644..100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -142,6 +142,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_SATURATION_LEVEL = "pref_camera2_saturation_level_key";
public static final String KEY_ANTI_BANDING_LEVEL = "pref_camera2_anti_banding_level_key";
public static final String KEY_HISTOGRAM = "pref_camera2_histogram_key";
+ public static final String KEY_AUTO_HDR = "pref_camera2_auto_hdr_key";
public static final String KEY_HDR = "pref_camera2_hdr_key";
public static final String KEY_SAVERAW = "pref_camera2_saveraw_key";
public static final String KEY_ZOOM = "pref_camera2_zoom_key";
@@ -967,6 +968,12 @@ public class SettingsManager implements ListMenu.SettingsListener {
return maxAfRegions != null && maxAfRegions > 0;
}
+ public boolean isHdrScene(int id) {
+ Integer hdrScene = mCharacteristics.get(id).get(
+ CaptureModule.isHdrScene);
+ return hdrScene != null && hdrScene == 1;
+ }
+
public boolean isFixedFocus(int id) {
Float focusDistance = mCharacteristics.get(id).get(CameraCharacteristics
.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
diff --git a/src/com/android/camera/imageprocessor/PostProcessor.java b/src/com/android/camera/imageprocessor/PostProcessor.java
index da8554cf8..ec38bb705 100644
--- a/src/com/android/camera/imageprocessor/PostProcessor.java
+++ b/src/com/android/camera/imageprocessor/PostProcessor.java
@@ -673,6 +673,8 @@ public class PostProcessor{
mSaveRaw = isSaveRaw;
if(setFilter(postFilterId) || isFlashModeOn || isTrackingFocusOn || isMakeupOn || isSelfieMirrorOn
|| PersistUtil.getCameraZSLDisabled()
+ || "enable".equals(
+ SettingsManager.getInstance().getValue(SettingsManager.KEY_AUTO_HDR))
|| SettingsManager.getInstance().isCamera2HDRSupport()
|| "18".equals(SettingsManager.getInstance().getValue(
SettingsManager.KEY_SCENE_MODE))