From 19656479581c4cdda53e6af6acfcb3346b97164a Mon Sep 17 00:00:00 2001 From: Dimitar Borisov Date: Wed, 24 Sep 2014 17:32:06 +0300 Subject: 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 --- src/com/android/camera/VideoMenu.java | 49 ++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'src/com/android/camera/VideoMenu.java') 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) { -- cgit v1.2.3