summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitar Borisov <dboris@codeaurora.org>2014-09-24 17:32:06 +0300
committerDimitar Borisov <dboris@codeaurora.org>2014-09-30 19:32:14 +0300
commit19656479581c4cdda53e6af6acfcb3346b97164a (patch)
tree68fbc150991ca34e6ab77ced2e603c4c0e925fb3
parent81b91551dfd0f35380094e3434e5358e8d63f0ba (diff)
downloadandroid_packages_apps_Snap-19656479581c4cdda53e6af6acfcb3346b97164a.tar.gz
android_packages_apps_Snap-19656479581c4cdda53e6af6acfcb3346b97164a.tar.bz2
android_packages_apps_Snap-19656479581c4cdda53e6af6acfcb3346b97164a.zip
SnapdragonCamera: Add support for CDS and TNR settings
Add support for CDS and TNR settings - CDS and TNR can be controlled in photo mode and video mode. - CDS is set to off and cannot be set to other value when TNR is enabled - CDS value is restored when TNR is disabled again CRs-Fixed: 715042 Change-Id: Idf08403e38d0e3e634b047a955f2328b4237e691
-rw-r--r--res/values/qcomarrays.xml48
-rw-r--r--res/values/qcomstrings.xml58
-rw-r--r--res/xml/camera_preferences.xml12
-rw-r--r--res/xml/video_preferences.xml12
-rw-r--r--src/com/android/camera/CameraSettings.java69
-rw-r--r--src/com/android/camera/PhotoMenu.java44
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java38
-rw-r--r--src/com/android/camera/VideoMenu.java49
-rwxr-xr-xsrc/com/android/camera/VideoModule.java56
-rw-r--r--src/com/android/camera/VideoUI.java4
10 files changed, 385 insertions, 5 deletions
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml
index 39f177adf..9f879ceed 100644
--- a/res/values/qcomarrays.xml
+++ b/res/values/qcomarrays.xml
@@ -609,6 +609,54 @@
<item>@string/pref_camera_auto_hdr_value_disable</item>
</string-array>
+ <!-- CDS dialog box entries -->
+ <string-array name="pref_camera_cds_entries" translatable="false">
+ <item>@string/pref_camera_cds_entry_off</item>
+ <item>@string/pref_camera_cds_entry_on</item>
+ <item>@string/pref_camera_cds_entry_auto</item>
+ </string-array>
+
+ <string-array name="pref_camera_cds_entryvalues" translatable="false">
+ <item>@string/pref_camera_cds_value_off</item>
+ <item>@string/pref_camera_cds_value_on</item>
+ <item>@string/pref_camera_cds_value_auto</item>
+ </string-array>
+
+ <!-- video CDS dialog box entries -->
+ <string-array name="pref_camera_video_cds_entries" translatable="false">
+ <item>@string/pref_camera_video_cds_entry_off</item>
+ <item>@string/pref_camera_video_cds_entry_on</item>
+ <item>@string/pref_camera_video_cds_entry_auto</item>
+ </string-array>
+
+ <string-array name="pref_camera_video_cds_entryvalues" translatable="false">
+ <item>@string/pref_camera_video_cds_value_off</item>
+ <item>@string/pref_camera_video_cds_value_on</item>
+ <item>@string/pref_camera_video_cds_value_auto</item>
+ </string-array>
+
+ <!-- TNR dialog box entries -->
+ <string-array name="pref_camera_tnr_entries" translatable="false">
+ <item>@string/pref_camera_tnr_entry_disable</item>
+ <item>@string/pref_camera_tnr_entry_enable</item>
+ </string-array>
+
+ <string-array name="pref_camera_tnr_entryvalues" translatable="false">
+ <item>@string/pref_camera_tnr_value_off</item>
+ <item>@string/pref_camera_tnr_value_on</item>
+ </string-array>
+
+ <!-- video TNR dialog box entries -->
+ <string-array name="pref_camera_video_tnr_entries" translatable="false">
+ <item>@string/pref_camera_video_tnr_entry_disable</item>
+ <item>@string/pref_camera_video_tnr_entry_enable</item>
+ </string-array>
+
+ <string-array name="pref_camera_video_tnr_entryvalues" translatable="false">
+ <item>@string/pref_camera_video_tnr_value_off</item>
+ <item>@string/pref_camera_video_tnr_value_on</item>
+ </string-array>
+
<!-- Camera Preferences Selectable HDR modes dialog box entries -->
<string-array name="pref_camera_hdr_mode_entries" translatable="false">
<item>@string/pref_camera_hdr_mode_entry_sensor</item>
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index 9c5865942..9cd10d24f 100644
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -175,11 +175,69 @@
<string name="pref_camera_video_hdr_value_off">off</string>
<string name="pref_camera_video_hdr_value_on">on</string>
+ <!-- Settings screen, CDS location dialog choices -->
+ <string name="pref_camera_cds_entry_off">Off</string>
+ <string name="pref_camera_cds_entry_on">On</string>
+ <string name="pref_camera_cds_entry_auto">Auto</string>
+
+ <string name="pref_camera_cds_value_off">off</string>
+ <string name="pref_camera_cds_value_on">on</string>
+ <string name="pref_camera_cds_value_auto">auto</string>
+
+ <!-- Settings screen, video CDS location dialog choices -->
+ <string name="pref_camera_video_cds_entry_off">Off</string>
+ <string name="pref_camera_video_cds_entry_on">On</string>
+ <string name="pref_camera_video_cds_entry_auto">Auto</string>
+
+ <string name="pref_camera_video_cds_value_off">off</string>
+ <string name="pref_camera_video_cds_value_on">on</string>
+ <string name="pref_camera_video_cds_value_auto">auto</string>
+
+ <!-- Settings screen, TNR location dialog choices -->
+ <string name="pref_camera_tnr_entry_disable">Disable</string>
+ <string name="pref_camera_tnr_entry_enable">Enable</string>
+
+ <!-- Settings screen, TNR location dialog choices -->
+ <string name="pref_camera_tnr_value_off">off</string>
+ <string name="pref_camera_tnr_value_on">on</string>
+
+ <!-- Settings screen, video TNR location dialog choices -->
+ <string name="pref_camera_video_tnr_entry_disable">Disable</string>
+ <string name="pref_camera_video_tnr_entry_enable">Enable</string>
+
+ <!-- Settings screen, video TNR location dialog choices -->
+ <string name="pref_camera_video_tnr_value_off">off</string>
+ <string name="pref_camera_video_tnr_value_on">on</string>
+
<!-- Settings screen, setting title text for Video HDR-->
<string name="pref_camera_video_hdr_title">Video HDR</string>
<string name="pref_camera_video_hdr_default" translatable="false">off</string>
+ <!-- Settings menu, setting title text for cds mode-->
+ <string name="pref_camera_cds_title">CDS mode</string>
+
+ <!-- Settings menu, setting title text for video cds mode-->
+ <string name="pref_camera_video_cds_title">Video CDS mode</string>
+
+ <!-- Default cds mode setting-->
+ <string name="pref_camera_cds_default" translatable="false">on</string>
+
+ <!-- Default video cds mode setting-->
+ <string name="pref_camera_video_cds_default" translatable="false">on</string>
+
+ <!-- Settings menu, setting title text for tnr mode-->
+ <string name="pref_camera_tnr_title">TNR mode</string>
+
+ <!-- Settings menu, setting title text for video tnr mode-->
+ <string name="pref_camera_video_tnr_title">Video TNR mode</string>
+
+ <!-- Default tnr mode setting-->
+ <string name="pref_camera_tnr_default" translatable="false">off</string>
+
+ <!-- Default video tnr mode setting-->
+ <string name="pref_camera_video_tnr_default" translatable="false">off</string>
+
<!-- Default face detection setting. -->
<string name="pref_camera_facedetection_default" translatable="false">on</string>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index d7f245343..4052b9634 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -74,6 +74,18 @@
camera:title="@string/pref_camera_ae_bracket_hdr_title"
camera:entries="@array/pref_camera_ae_bracket_hdr_entries"
camera:entryValues="@array/pref_camera_ae_bracket_hdr_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_cds_mode_key"
+ camera:defaultValue="@string/pref_camera_cds_default"
+ camera:title="@string/pref_camera_cds_title"
+ camera:entries="@array/pref_camera_cds_entries"
+ camera:entryValues="@array/pref_camera_cds_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_tnr_mode_key"
+ camera:defaultValue="@string/pref_camera_tnr_default"
+ camera:title="@string/pref_camera_tnr_title"
+ camera:entries="@array/pref_camera_tnr_entries"
+ camera:entryValues="@array/pref_camera_tnr_entryvalues" />
<IconListPreference
camera:key="pref_camera_id_key"
camera:defaultValue="@string/pref_camera_id_default"
diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml
index 2bb99d992..c9b84d2d2 100644
--- a/res/xml/video_preferences.xml
+++ b/res/xml/video_preferences.xml
@@ -36,6 +36,18 @@
camera:entries="@array/pref_camera_audioencoder_entries"
camera:entryValues="@array/pref_camera_audioencoder_entryvalues" />
<ListPreference
+ camera:key="pref_camera_video_cds_mode_key"
+ camera:defaultValue="@string/pref_camera_video_cds_default"
+ camera:title="@string/pref_camera_video_cds_title"
+ camera:entries="@array/pref_camera_video_cds_entries"
+ camera:entryValues="@array/pref_camera_video_cds_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_video_tnr_mode_key"
+ camera:defaultValue="@string/pref_camera_video_tnr_default"
+ camera:title="@string/pref_camera_video_tnr_title"
+ camera:entries="@array/pref_camera_video_tnr_entries"
+ camera:entryValues="@array/pref_camera_video_tnr_entryvalues" />
+ <ListPreference
camera:key="pref_camera_video_duration_key"
camera:defaultValue="@string/pref_camera_video_duration_default"
camera:title="@string/pref_camera_video_duration_title"
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 1232d09ac..2859d1acd 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -93,6 +93,10 @@ public class CameraSettings {
public static final String KEY_HISTOGRAM = "pref_camera_histogram_key";
public static final String KEY_DENOISE = "pref_camera_denoise_key";
public static final String KEY_REDEYE_REDUCTION = "pref_camera_redeyereduction_key";
+ public static final String KEY_CDS_MODE = "pref_camera_cds_mode_key";
+ public static final String KEY_VIDEO_CDS_MODE = "pref_camera_video_cds_mode_key";
+ public static final String KEY_TNR_MODE = "pref_camera_tnr_mode_key";
+ public static final String KEY_VIDEO_TNR_MODE = "pref_camera_video_tnr_mode_key";
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";
@@ -117,6 +121,10 @@ public class CameraSettings {
private static final String KEY_QC_SUPPORTED_OZ_MODES = "opti-zoom-values";
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_QC_SUPPORTED_CDS_MODES = "cds-mode-values";
+ private static final String KEY_QC_SUPPORTED_VIDEO_CDS_MODES = "video-cds-mode-values";
+ private static final String KEY_QC_SUPPORTED_TNR_MODES = "tnr-mode-values";
+ private static final String KEY_QC_SUPPORTED_VIDEO_TNR_MODES = "video-tnr-mode-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";
@@ -128,6 +136,10 @@ public class CameraSettings {
public static final String KEY_QC_OPTI_ZOOM = "opti-zoom";
public static final String KEY_QC_FACE_RECOGNITION = "face-recognition";
public static final String KEY_QC_DIS_MODE = "dis";
+ public static final String KEY_QC_CDS_MODE = "cds-mode";
+ public static final String KEY_QC_VIDEO_CDS_MODE = "video-cds-mode";
+ public static final String KEY_QC_TNR_MODE = "tnr-mode";
+ public static final String KEY_QC_VIDEO_TNR_MODE = "video-tnr-mode";
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";
@@ -276,6 +288,38 @@ public class CameraSettings {
return split(str);
}
+ public static List<String> getSupportedCDSModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_CDS_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+ public static List<String> getSupportedVideoCDSModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_VIDEO_CDS_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+ public static List<String> getSupportedTNRModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_TNR_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
+ public static List<String> getSupportedVideoTNRModes(Parameters params) {
+ String str = params.get(KEY_QC_SUPPORTED_VIDEO_TNR_MODES);
+ if (str == null) {
+ return null;
+ }
+ return split(str);
+ }
+
public static List<String> getSupportedHDRModes(Parameters params) {
String str = params.get(KEY_SNAPCAM_SUPPORTED_HDR_MODES);
if (str == null) {
@@ -392,6 +436,10 @@ public class CameraSettings {
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);
+ ListPreference cds_mode = group.findPreference(KEY_CDS_MODE);
+ ListPreference video_cds_mode = group.findPreference(KEY_VIDEO_CDS_MODE);
+ ListPreference tnr_mode = group.findPreference(KEY_TNR_MODE);
+ ListPreference video_tnr_mode = group.findPreference(KEY_VIDEO_TNR_MODE);
if (hdr_need_1x != null) {
filterUnsupportedOptions(group,
@@ -402,6 +450,27 @@ public class CameraSettings {
filterUnsupportedOptions(group,
hdr_mode, getSupportedHDRModes(mParameters));
}
+
+ if (cds_mode != null) {
+ filterUnsupportedOptions(group,
+ cds_mode, getSupportedCDSModes(mParameters));
+ }
+
+ if (video_cds_mode != null) {
+ filterUnsupportedOptions(group,
+ video_cds_mode, getSupportedVideoCDSModes(mParameters));
+ }
+
+ if (tnr_mode != null) {
+ filterUnsupportedOptions(group,
+ tnr_mode, getSupportedTNRModes(mParameters));
+ }
+
+ if (video_tnr_mode != null) {
+ filterUnsupportedOptions(group,
+ video_tnr_mode, getSupportedVideoTNRModes(mParameters));
+ }
+
ListPreference videoRotation = group.findPreference(KEY_VIDEO_ROTATION);
if (touchAfAec != null) {
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index 78ab98c5d..c4e8f8350 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -60,6 +60,9 @@ public class PhotoMenu extends PieController
private int popupNum = 0;
private PieItem mHdrItem = null;
private PieItem mHdrPlusItem = null;
+ private String mPrevSavedCDS;
+ private boolean mIsTNREnabled = false;
+ private boolean mIsCDSUpdated = false;
public PhotoMenu(CameraActivity activity, PhotoUI ui, PieRenderer pie) {
super(activity, pie);
@@ -106,7 +109,9 @@ public class PhotoMenu extends PieController
CameraSettings.KEY_LONGSHOT,
CameraSettings.KEY_AUTO_HDR,
CameraSettings.KEY_HDR_MODE,
- CameraSettings.KEY_HDR_NEED_1X
+ CameraSettings.KEY_HDR_NEED_1X,
+ CameraSettings.KEY_CDS_MODE,
+ CameraSettings.KEY_TNR_MODE
};
mOtherKeys2 = new String[] {
@@ -213,10 +218,43 @@ public class PhotoMenu extends PieController
onSettingChanged(pref);
}
- @Override
+ @Override
public void overrideSettings(final String ... keyvalues) {
+ if (mPopup1 != null) {
+ ListPreference pref_tnr = mPreferenceGroup.findPreference(CameraSettings.KEY_TNR_MODE);
+ ListPreference pref_cds = mPreferenceGroup.findPreference(CameraSettings.KEY_CDS_MODE);
+
+ String tnr = (pref_tnr != null) ? pref_tnr.getValue() : null;
+ String cds = (pref_cds != null) ? pref_cds.getValue() : null;
+
+ if (mPrevSavedCDS == null && cds != null) {
+ mPrevSavedCDS = cds;
+ }
+
+ if ((tnr != null) && !mActivity.getString(R.string.
+ pref_camera_tnr_default).equals(tnr)) {
+ mPopup1.setPreferenceEnabled(CameraSettings.KEY_CDS_MODE, false);
+ mPopup1.overrideSettings(CameraSettings.KEY_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_cds_value_off));
+ mIsTNREnabled = true;
+ if (!mIsCDSUpdated) {
+ if (cds != null) {
+ mPrevSavedCDS = cds;
+ }
+ mIsCDSUpdated = true;
+ }
+ } else if (tnr != null) {
+ mPopup1.setPreferenceEnabled(CameraSettings.KEY_CDS_MODE, true);
+ if (mIsTNREnabled && mPrevSavedCDS != cds) {
+ mPopup1.overrideSettings(CameraSettings.KEY_CDS_MODE, mPrevSavedCDS);
+ mIsTNREnabled = false;
+ mIsCDSUpdated = false;
+ }
+ }
+ }
+
super.overrideSettings(keyvalues);
- if ((mPopup1 == null) && (mPopup2 == null) && (mPopup3 == null)) initializePopup();
+ if ((mPopup1 == null) && (mPopup2 == null) && (mPopup3 == null)) initializePopup();
mPopup1.overrideSettings(keyvalues);
mPopup2.overrideSettings(keyvalues);
mPopup3.overrideSettings(keyvalues);
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index b81e96f0f..8f1fa89ed 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -190,6 +190,8 @@ public class PhotoModule
// The degrees of the device rotated clockwise from its natural orientation.
private int mOrientation = OrientationEventListener.ORIENTATION_UNKNOWN;
private ComboPreferences mPreferences;
+ private String mPrevSavedCDS;
+ private boolean isTNREnabled;
private static final String sTempCropFilename = "crop-temp";
@@ -2629,6 +2631,42 @@ public class PhotoModule
mParameters.set(CameraSettings.KEY_QC_AE_BRACKETING, aeBracketing);
}
+ // Set CDS
+ String cds = mPreferences.getString(
+ CameraSettings.KEY_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_cds_default));
+ if ((mPrevSavedCDS == null) && (cds != null)) {
+ mPrevSavedCDS = cds;
+ }
+ if (CameraUtil.isSupported(cds,
+ CameraSettings.getSupportedCDSModes(mParameters))) {
+ mParameters.set(CameraSettings.KEY_QC_CDS_MODE, cds);
+ }
+
+ // Set TNR
+ String tnr = mPreferences.getString(
+ CameraSettings.KEY_TNR_MODE,
+ mActivity.getString(R.string.pref_camera_tnr_default));
+ if (CameraUtil.isSupported(tnr,
+ CameraSettings.getSupportedTNRModes(mParameters))) {
+ if (!tnr.equals(mActivity.getString(R.string.
+ pref_camera_tnr_value_off))) {
+ mParameters.set(CameraSettings.KEY_QC_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_cds_value_off));
+ mUI.overrideSettings(CameraSettings.KEY_QC_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_cds_value_off));
+ if (cds != null) {
+ mPrevSavedCDS = cds;
+ }
+ isTNREnabled = true;
+ } else if (isTNREnabled) {
+ mParameters.set(CameraSettings.KEY_QC_CDS_MODE, mPrevSavedCDS);
+ mUI.overrideSettings(CameraSettings.KEY_QC_CDS_MODE, mPrevSavedCDS);
+ isTNREnabled = false;
+ }
+ mParameters.set(CameraSettings.KEY_QC_TNR_MODE, tnr);
+ }
+
// Set hdr mode
String hdrMode = mPreferences.getString(
CameraSettings.KEY_HDR_MODE,
diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java
index 85e77dda7..33fc569bd 100644
--- a/src/com/android/camera/VideoMenu.java
+++ b/src/com/android/camera/VideoMenu.java
@@ -48,6 +48,9 @@ public class VideoMenu extends PieController
private int mPopupStatus;
private int popupNum;
private CameraActivity mActivity;
+ private String mPrevSavedVideoCDS;
+ private boolean mIsVideoTNREnabled = false;
+ private boolean mIsVideoCDSUpdated = false;
public VideoMenu(CameraActivity activity, VideoUI ui, PieRenderer pie) {
super(activity, pie);
@@ -83,7 +86,9 @@ public class VideoMenu extends PieController
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE,
CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE,
- CameraSettings.KEY_VIDEO_ROTATION
+ CameraSettings.KEY_VIDEO_ROTATION,
+ CameraSettings.KEY_VIDEO_CDS_MODE,
+ CameraSettings.KEY_VIDEO_TNR_MODE
};
PieItem item1 = makeItem(R.drawable.ic_settings_holo_light_01);
@@ -169,8 +174,49 @@ public class VideoMenu extends PieController
}
}
+ public void overrideCDSMode() {
+ if (mPopup2 != null) {
+ ListPreference pref_tnr = mPreferenceGroup.
+ findPreference(CameraSettings.KEY_VIDEO_TNR_MODE);
+ ListPreference pref_cds = mPreferenceGroup.
+ findPreference(CameraSettings.KEY_VIDEO_CDS_MODE);
+ String tnr = (pref_tnr != null) ? pref_tnr.getValue() : null;
+ String cds = (pref_cds != null) ? pref_cds.getValue() : null;
+
+ if (mPrevSavedVideoCDS == null && cds != null) {
+ mPrevSavedVideoCDS = cds;
+ }
+
+ if ((tnr != null) && !mActivity.getString(R.string.
+ pref_camera_video_tnr_default).equals(tnr)) {
+ ((MoreSettingPopup) mPopup2).setPreferenceEnabled(
+ CameraSettings.KEY_VIDEO_CDS_MODE,false);
+ ((MoreSettingPopup) mPopup2).overrideSettings(
+ CameraSettings.KEY_VIDEO_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_video_cds_value_off));
+ mIsVideoTNREnabled = true;
+ if (!mIsVideoCDSUpdated) {
+ if (cds != null) {
+ mPrevSavedVideoCDS = cds;
+ }
+ mIsVideoCDSUpdated = true;
+ }
+ } else if (tnr != null) {
+ ((MoreSettingPopup) mPopup2).setPreferenceEnabled(
+ CameraSettings.KEY_VIDEO_CDS_MODE,true);
+ if (mIsVideoTNREnabled) {
+ ((MoreSettingPopup) mPopup2).overrideSettings(
+ CameraSettings.KEY_VIDEO_CDS_MODE, mPrevSavedVideoCDS);
+ mIsVideoTNREnabled = false;
+ mIsVideoCDSUpdated = false;
+ }
+ }
+ }
+ }
+
@Override
public void overrideSettings(final String ... keyvalues) {
+ overrideCDSMode();
super.overrideSettings(keyvalues);
if (((mPopup1 == null) && (mPopup2 == null)) || mPopupStatus != POPUP_FIRST_LEVEL) {
mPopupStatus = POPUP_FIRST_LEVEL;
@@ -212,6 +258,7 @@ public class VideoMenu extends PieController
popup2.setSettingChangedListener(this);
popup2.initialize(mPreferenceGroup, mOtherKeys2);
mPopup2 = popup2;
+ overrideCDSMode();
}
public void popupDismissed(boolean topPopupOnly) {
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 8223fadf4..226e50398 100755
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -187,6 +187,11 @@ public class VideoModule implements CameraModule,
private boolean mStopRecPending = false;
private boolean mStartPrevPending = false;
private boolean mStopPrevPending = false;
+ private String mPrevSavedVideoCDS = null;
+ private String mTempVideoCDS = null;
+ private boolean mIsVideoTNREnabled;
+ private boolean mIsVideoCDSUpdated = false;
+ private boolean mOverrideCDS = false;
// The preview window is on focus
private boolean mPreviewFocused = false;
@@ -2096,6 +2101,57 @@ public class VideoModule implements CameraModule,
mParameters.set(CameraSettings.KEY_QC_SNAPSHOT_PICTURE_FLIP, picture_flip);
}
+ // Set video CDS
+ String video_cds = mPreferences.getString(
+ CameraSettings.KEY_VIDEO_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_video_cds_default));
+
+ if ((mPrevSavedVideoCDS == null) && (video_cds != null)) {
+ mPrevSavedVideoCDS = video_cds;
+ }
+
+ if (mOverrideCDS) {
+ video_cds = mPrevSavedVideoCDS;
+ mOverrideCDS = false;
+ }
+
+ if (CameraUtil.isSupported(video_cds,
+ CameraSettings.getSupportedVideoCDSModes(mParameters))) {
+ mParameters.set(CameraSettings.KEY_QC_VIDEO_CDS_MODE, video_cds);
+ }
+
+ // Set video TNR
+ String video_tnr = mPreferences.getString(
+ CameraSettings.KEY_VIDEO_TNR_MODE,
+ mActivity.getString(R.string.pref_camera_video_tnr_default));
+ if (CameraUtil.isSupported(video_tnr,
+ CameraSettings.getSupportedVideoTNRModes(mParameters))) {
+ if (!video_tnr.equals(mActivity.getString(R.string.
+ pref_camera_video_tnr_value_off))) {
+ mParameters.set(CameraSettings.KEY_QC_VIDEO_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_video_cds_value_off));
+ mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_CDS_MODE,
+ mActivity.getString(R.string.pref_camera_video_cds_value_off));
+ if (!mIsVideoCDSUpdated) {
+ if (video_cds != null) {
+ mPrevSavedVideoCDS = mTempVideoCDS;
+ }
+ mIsVideoTNREnabled = true;
+ mIsVideoCDSUpdated = true;
+ }
+ } else if (mIsVideoTNREnabled) {
+ mParameters.set(CameraSettings.KEY_QC_VIDEO_CDS_MODE, mPrevSavedVideoCDS);
+ mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_CDS_MODE, mPrevSavedVideoCDS);
+ mIsVideoTNREnabled = false;
+ mIsVideoCDSUpdated = false;
+ mOverrideCDS = true;
+ } else {
+ mTempVideoCDS = video_cds;
+ }
+ mParameters.set(CameraSettings.KEY_QC_VIDEO_TNR_MODE, video_tnr);
+ mUI.overrideSettings(CameraSettings.KEY_QC_VIDEO_CDS_MODE, video_tnr);
+ }
+
// Set Video HDR.
String videoHDR = mPreferences.getString(
CameraSettings.KEY_VIDEO_HDR,
diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java
index 328645a30..8de713adf 100644
--- a/src/com/android/camera/VideoUI.java
+++ b/src/com/android/camera/VideoUI.java
@@ -438,7 +438,9 @@ public class VideoUI implements PieRenderer.PieListener,
}
public void overrideSettings(final String... keyvalues) {
- mVideoMenu.overrideSettings(keyvalues);
+ if (mVideoMenu != null) {
+ mVideoMenu.overrideSettings(keyvalues);
+ }
}
public void setOrientationIndicator(int orientation, boolean animation) {