diff options
author | Dimitar Borisov <dboris@codeaurora.org> | 2014-09-24 17:32:06 +0300 |
---|---|---|
committer | Dimitar Borisov <dboris@codeaurora.org> | 2014-09-30 19:32:14 +0300 |
commit | 19656479581c4cdda53e6af6acfcb3346b97164a (patch) | |
tree | 68fbc150991ca34e6ab77ced2e603c4c0e925fb3 | |
parent | 81b91551dfd0f35380094e3434e5358e8d63f0ba (diff) | |
download | android_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.xml | 48 | ||||
-rw-r--r-- | res/values/qcomstrings.xml | 58 | ||||
-rw-r--r-- | res/xml/camera_preferences.xml | 12 | ||||
-rw-r--r-- | res/xml/video_preferences.xml | 12 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 69 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 44 | ||||
-rwxr-xr-x | src/com/android/camera/PhotoModule.java | 38 | ||||
-rw-r--r-- | src/com/android/camera/VideoMenu.java | 49 | ||||
-rwxr-xr-x | src/com/android/camera/VideoModule.java | 56 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 4 |
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) { |