From 36cfd9c72b8ed4ddce7625cc01641f2235bb473c Mon Sep 17 00:00:00 2001 From: Likai Ding Date: Wed, 27 May 2015 15:59:04 +0800 Subject: SnapdragonCamera: implement optizoom and chromaflash UI add scene mode for optizoom and preference entry for chromaflash Change-Id: I859a42e3273d340a7dda7e24c6cb2e08ddb0f7bf --- src/com/android/camera/CameraSettings.java | 19 +++++++++++++++++++ src/com/android/camera/PhotoMenu.java | 13 +++++++++++++ src/com/android/camera/PhotoModule.java | 17 ++++++++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) (limited to 'src/com/android') diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index b5c264b96..7aa96d52d 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -740,6 +740,7 @@ public class CameraSettings { ListPreference timeLapseInterval = group.findPreference(KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL); ListPreference pictureSize = group.findPreference(KEY_PICTURE_SIZE); ListPreference whiteBalance = group.findPreference(KEY_WHITE_BALANCE); + ListPreference chromaFlash = group.findPreference(KEY_QC_CHROMA_FLASH); ListPreference sceneMode = group.findPreference(KEY_SCENE_MODE); ListPreference flashMode = group.findPreference(KEY_FLASH_MODE); ListPreference focusMode = group.findPreference(KEY_FOCUS_MODE); @@ -789,6 +790,17 @@ public class CameraSettings { whiteBalance, mParameters.getSupportedWhiteBalance()); } + if (chromaFlash != null) { + List supportedAdvancedFeatures = + getSupportedAdvancedFeatures(mParameters); + if (!CameraUtil.isSupported( + mContext.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on), + supportedAdvancedFeatures)) { + removePreference(group, chromaFlash.getKey()); + } + } + if (sceneMode != null) { List supportedSceneModes = mParameters.getSupportedSceneModes(); List supportedAdvancedFeatures = @@ -800,6 +812,13 @@ public class CameraSettings { supportedSceneModes.add(mContext.getString(R.string .pref_camera_advanced_feature_value_refocus_on)); } + if (CameraUtil.isSupported( + mContext.getString(R.string + .pref_camera_advanced_feature_value_optizoom_on), + supportedAdvancedFeatures)) { + supportedSceneModes.add(mContext.getString(R.string + .pref_camera_advanced_feature_value_optizoom_on)); + } filterUnsupportedOptions(group, sceneMode, supportedSceneModes); } if (flashMode != null) { diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index a70efdbad..b2ddc028a 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -179,6 +179,7 @@ public class PhotoMenu extends MenuController CameraSettings.KEY_ISO, CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, + CameraSettings.KEY_QC_CHROMA_FLASH, CameraSettings.KEY_FOCUS_MODE, CameraSettings.KEY_REDEYE_REDUCTION }; @@ -195,6 +196,7 @@ public class PhotoMenu extends MenuController CameraSettings.KEY_ISO, CameraSettings.KEY_EXPOSURE, CameraSettings.KEY_WHITE_BALANCE, + CameraSettings.KEY_QC_CHROMA_FLASH, CameraSettings.KEY_FOCUS_MODE, CameraSettings.KEY_REDEYE_REDUCTION, CameraSettings.KEY_AUTO_HDR, @@ -1370,6 +1372,17 @@ public class PhotoMenu extends MenuController mActivity.getString(R.string.pref_camera_advanced_feature_default)); } } + + String optizoomOn = mActivity.getString(R.string + .pref_camera_advanced_feature_value_optizoom_on); + if (notSame(pref, CameraSettings.KEY_SCENE_MODE, optizoomOn)) { + ListPreference lp = mPreferenceGroup + .findPreference(CameraSettings.KEY_ADVANCED_FEATURES); + if (lp != null && optizoomOn.equals(lp.getValue())) { + setPreference(CameraSettings.KEY_ADVANCED_FEATURES, + mActivity.getString(R.string.pref_camera_advanced_feature_default)); + } + } updateFilterModeIcon(pref, pref); super.onSettingChanged(pref); } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 966fade3e..cc443e334 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1734,7 +1734,11 @@ public class PhotoModule (fssr != null && fssr.equals(fssrOn)) || (truePortrait != null && truePortrait.equals(truPortraitOn)) || (stillMore != null && stillMore.equals(stillMoreOn))) { - mSceneMode = sceneMode = Parameters.SCENE_MODE_AUTO; + if (optiZoom != null && optiZoom.equals(optiZoomOn)) { + sceneMode = null; + } else { + mSceneMode = sceneMode = Parameters.SCENE_MODE_AUTO; + } flashMode = Parameters.FLASH_MODE_OFF; focusMode = Parameters.FOCUS_MODE_INFINITY; redeyeReduction = mActivity.getString(R.string. @@ -3475,6 +3479,8 @@ public class PhotoModule String refocusOn = mActivity.getString(R.string .pref_camera_advanced_feature_value_refocus_on); + String optizoomOn = mActivity.getString(R.string + .pref_camera_advanced_feature_value_optizoom_on); if (CameraUtil.isSupported(mSceneMode, mParameters.getSupportedSceneModes())) { if (!mParameters.getSceneMode().equals(mSceneMode)) { @@ -3493,6 +3499,11 @@ public class PhotoModule mUI.showRefocusDialog(); } catch (NullPointerException e) { } + } else if (optizoomOn.equals(mSceneMode)) { + try { + mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, optizoomOn); + } catch (NullPointerException e) { + } } else { mSceneMode = mParameters.getSceneMode(); if (mSceneMode == null) { @@ -4162,6 +4173,10 @@ public class PhotoModule updateRemainingPhotos(); } + if (CameraSettings.KEY_QC_CHROMA_FLASH.equals(pref.getKey())) { + mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, pref.getValue()); + } + //call generic onSharedPreferenceChanged onSharedPreferenceChanged(); } -- cgit v1.2.3