Merge "SnapdragonCamera: Add HDR need 1x menu selection"
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml
index f7d1279..39f177a 100644
--- a/res/values/qcomarrays.xml
+++ b/res/values/qcomarrays.xml
@@ -620,5 +620,16 @@
         <item>@string/pref_hdr_mode_value_multi_frame</item>
     </string-array>
 
+    <!-- Camera Preferences Selectable HDR need 1x frame -->
+    <string-array name="pref_camera_hdr_need_1x_entries" translatable="false">
+        <item>@string/pref_camera_hdr_need_1x_entry_false</item>
+        <item>@string/pref_camera_hdr_need_1x_entry_true</item>
+    </string-array>
+
+    <string-array name="pref_camera_hdr_need_1x_entryvalues" translatable="false">
+        <item>@string/pref_hdr_need_1x_value_false</item>
+        <item>@string/pref_hdr_need_1x_value_true</item>
+    </string-array>
+
 </resources>
 
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index c9bbaaa..9c58659 100644
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -698,9 +698,23 @@
     <string name="pref_camera_hdr_mode_entry_sensor">Sensor HDR</string>
     <string name="pref_camera_hdr_mode_entry_multi_frame">Multi-frame HDR</string>
 
-     <!-- HDR mode entry values. Do not translate. -->
-     <string name="pref_hdr_mode_value_sensor">hdr-mode-sensor</string>
-     <string name="pref_hdr_mode_value_multi_frame">hdr-mode-multiframe</string>
+    <!-- HDR mode entry values. Do not translate. -->
+    <string name="pref_hdr_mode_value_sensor">hdr-mode-sensor</string>
+    <string name="pref_hdr_mode_value_multi_frame">hdr-mode-multiframe</string>
+
+    <!-- Settings screen, Selectable HDR need 1x frame default value -->
+    <string name="pref_camera_hdr_need_1x_default">true</string>
+
+    <!-- Settings screen, Selectable HDR need 1x frame title -->
+    <string name="pref_camera_hdr_need_1x_title">HDR need 1x frame</string>
+
+    <!-- Settings screen, Selectable HDR need 1x frame radio button choices -->
+    <string name="pref_camera_hdr_need_1x_entry_false">False</string>
+    <string name="pref_camera_hdr_need_1x_entry_true">True</string>
+
+    <!-- HDR need 1x frame entry values. Do not translate. -->
+    <string name="pref_hdr_need_1x_value_false">false</string>
+    <string name="pref_hdr_need_1x_value_true">true</string>
 
     <!--Default video rotation setting-->
     <string name="pref_camera_video_rotation_default" translatable="false">0</string>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index ab1e340..d7f2453 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -263,4 +263,11 @@
             camera:title="@string/pref_camera_hdr_mode_title"
             camera:entries="@array/pref_camera_hdr_mode_entries"
             camera:entryValues="@array/pref_camera_hdr_mode_entryvalues" />
+
+    <ListPreference
+            camera:key="pref_camera_hdr_need_1x_key"
+            camera:defaultValue="@string/pref_camera_hdr_need_1x_default"
+            camera:title="@string/pref_camera_hdr_need_1x_title"
+            camera:entries="@array/pref_camera_hdr_need_1x_entries"
+            camera:entryValues="@array/pref_camera_hdr_need_1x_entryvalues" />
 </PreferenceGroup>
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index c0c8a40..1232d09 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -96,6 +96,7 @@
     public static final String KEY_AE_BRACKET_HDR = "pref_camera_ae_bracket_hdr_key";
     public static final String KEY_ADVANCED_FEATURES = "pref_camera_advanced_features_key";
     public static final String KEY_HDR_MODE = "pref_camera_hdr_mode_key";
+    public static final String KEY_HDR_NEED_1X = "pref_camera_hdr_need_1x_key";
 
     public static final String KEY_VIDEO_SNAPSHOT_SIZE = "pref_camera_videosnapsize_key";
     public static final String KEY_VIDEO_HIGH_FRAME_RATE = "pref_camera_hfr_key";
@@ -117,6 +118,7 @@
     private static final String KEY_QC_SUPPORTED_FACE_RECOGNITION_MODES = "face-recognition-values";
     private static final String KEY_QC_SUPPORTED_DIS_MODES = "dis-values";
     private static final String KEY_SNAPCAM_SUPPORTED_HDR_MODES = "hdr-mode-values";
+    private static final String KEY_SNAPCAM_SUPPORTED_HDR_NEED_1X = "hdr-need-1x-values";
     public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr";
     public static final String KEY_QC_AF_BRACKETING = "af-bracket";
     public static final String KEY_QC_RE_FOCUS = "re-focus";
@@ -127,6 +129,7 @@
     public static final String KEY_QC_FACE_RECOGNITION = "face-recognition";
     public static final String KEY_QC_DIS_MODE = "dis";
     public static final String KEY_SNAPCAM_HDR_MODE = "hdr-mode";
+    public static final String KEY_SNAPCAM_HDR_NEED_1X = "hdr-need-1x";
     public static final String KEY_VIDEO_HSR = "video-hsr";
 
     public static final String KEY_INTERNAL_PREVIEW_RESTART = "internal-restart";
@@ -281,6 +284,14 @@
         return split(str);
     }
 
+    public static List<String> getSupportedHDRNeed1x(Parameters params) {
+        String str = params.get(KEY_SNAPCAM_SUPPORTED_HDR_NEED_1X);
+        if (str == null) {
+            return null;
+        }
+        return split(str);
+    }
+
     public List<String> getSupportedAdvancedFeatures(Parameters params) {
         String str = params.get(KEY_QC_SUPPORTED_AF_BRACKETING_MODES);
         str += ',' + params.get(KEY_QC_SUPPORTED_CF_MODES);
@@ -380,6 +391,12 @@
         ListPreference longShot = group.findPreference(KEY_LONGSHOT);
         ListPreference auto_hdr = group.findPreference(KEY_AUTO_HDR);
         ListPreference hdr_mode = group.findPreference(KEY_HDR_MODE);
+        ListPreference hdr_need_1x = group.findPreference(KEY_HDR_NEED_1X);
+
+        if (hdr_need_1x != null) {
+            filterUnsupportedOptions(group,
+                    hdr_need_1x, getSupportedHDRNeed1x(mParameters));
+        }
 
         if (hdr_mode != null) {
             filterUnsupportedOptions(group,
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index ebafd0f..78ab98c 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -105,7 +105,8 @@
                 CameraSettings.KEY_CAMERA_SAVEPATH,
                 CameraSettings.KEY_LONGSHOT,
                 CameraSettings.KEY_AUTO_HDR,
-                CameraSettings.KEY_HDR_MODE
+                CameraSettings.KEY_HDR_MODE,
+                CameraSettings.KEY_HDR_NEED_1X
         };
 
         mOtherKeys2 = new String[] {
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index b5208e7..b81e96f 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2639,6 +2639,16 @@
             mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, hdrMode);
         }
 
+        // Set hdr need 1x
+        String hdrNeed1x = mPreferences.getString(
+                CameraSettings.KEY_HDR_NEED_1X,
+                mActivity.getString(R.string.pref_camera_hdr_need_1x_default));
+        Log.v(TAG, "HDR need 1x value =" + hdrNeed1x);
+        if (CameraUtil.isSupported(hdrNeed1x,
+                CameraSettings.getSupportedHDRNeed1x(mParameters))) {
+            mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_NEED_1X, hdrNeed1x);
+        }
+
         // Set Advanced features.
         String advancedFeature = mPreferences.getString(
                 CameraSettings.KEY_ADVANCED_FEATURES,