From 846dc6ad1013a28d60aa883ce3d219bf01167e86 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 --- res/drawable-hdpi/ic_scene_mode_optizoom.png | Bin 0 -> 4076 bytes res/drawable-hdpi/ic_settings_chromaflash.png | Bin 0 -> 3041 bytes res/drawable-xhdpi/ic_scene_mode_optizoom.png | Bin 0 -> 5520 bytes res/drawable-xhdpi/ic_settings_chromaflash.png | Bin 0 -> 4055 bytes res/drawable-xxhdpi/ic_scene_mode_optizoom.png | Bin 0 -> 8137 bytes res/drawable-xxhdpi/ic_settings_chromaflash.png | Bin 0 -> 5787 bytes res/values/arrays.xml | 13 +++++++++++++ res/values/strings.xml | 2 ++ res/xml/camera_preferences.xml | 7 +++++++ src/com/android/camera/CameraSettings.java | 19 +++++++++++++++++++ src/com/android/camera/PhotoMenu.java | 13 +++++++++++++ src/com/android/camera/PhotoModule.java | 17 ++++++++++++++++- 12 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 res/drawable-hdpi/ic_scene_mode_optizoom.png create mode 100644 res/drawable-hdpi/ic_settings_chromaflash.png create mode 100644 res/drawable-xhdpi/ic_scene_mode_optizoom.png create mode 100644 res/drawable-xhdpi/ic_settings_chromaflash.png create mode 100644 res/drawable-xxhdpi/ic_scene_mode_optizoom.png create mode 100644 res/drawable-xxhdpi/ic_settings_chromaflash.png diff --git a/res/drawable-hdpi/ic_scene_mode_optizoom.png b/res/drawable-hdpi/ic_scene_mode_optizoom.png new file mode 100644 index 000000000..bdf3d634a Binary files /dev/null and b/res/drawable-hdpi/ic_scene_mode_optizoom.png differ diff --git a/res/drawable-hdpi/ic_settings_chromaflash.png b/res/drawable-hdpi/ic_settings_chromaflash.png new file mode 100644 index 000000000..a58bc00bf Binary files /dev/null and b/res/drawable-hdpi/ic_settings_chromaflash.png differ diff --git a/res/drawable-xhdpi/ic_scene_mode_optizoom.png b/res/drawable-xhdpi/ic_scene_mode_optizoom.png new file mode 100644 index 000000000..8a4fc3614 Binary files /dev/null and b/res/drawable-xhdpi/ic_scene_mode_optizoom.png differ diff --git a/res/drawable-xhdpi/ic_settings_chromaflash.png b/res/drawable-xhdpi/ic_settings_chromaflash.png new file mode 100644 index 000000000..b21a5a086 Binary files /dev/null and b/res/drawable-xhdpi/ic_settings_chromaflash.png differ diff --git a/res/drawable-xxhdpi/ic_scene_mode_optizoom.png b/res/drawable-xxhdpi/ic_scene_mode_optizoom.png new file mode 100644 index 000000000..e41b3ac23 Binary files /dev/null and b/res/drawable-xxhdpi/ic_scene_mode_optizoom.png differ diff --git a/res/drawable-xxhdpi/ic_settings_chromaflash.png b/res/drawable-xxhdpi/ic_settings_chromaflash.png new file mode 100644 index 000000000..d46fc49c6 Binary files /dev/null and b/res/drawable-xxhdpi/ic_settings_chromaflash.png differ diff --git a/res/values/arrays.xml b/res/values/arrays.xml index d2c549481..b3f2d94dc 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -470,11 +470,22 @@ @drawable/ic_indicator_wb_cloudy + + @string/setting_off + @string/setting_on + + + + @string/pref_camera_advanced_feature_value_chromaflash_off + @string/pref_camera_advanced_feature_value_chromaflash_on + + @string/pref_camera_scenemode_entry_auto @string/pref_camera_scenemode_entry_hdr @string/pref_camera_scenemode_entry_refocus + @string/pref_camera_scenemode_entry_optizoom @string/pref_camera_scenemode_entry_action @string/pref_camera_scenemode_entry_antimotionblur @string/pref_camera_scenemode_entry_aqua @@ -531,6 +542,7 @@ @drawable/ic_scene_mode_auto @drawable/ic_scene_mode_hdr @drawable/ic_scene_mode_refocus + @drawable/ic_scene_mode_optizoom @drawable/ic_scene_mode_action @drawable/ic_scene_mode_entry_antimotionblur @drawable/ic_scene_mode_entry_aqua @@ -603,6 +615,7 @@ auto hdr @string/pref_camera_advanced_feature_value_refocus_on + @string/pref_camera_advanced_feature_value_optizoom_on action anti-motion-blur aqua diff --git a/res/values/strings.xml b/res/values/strings.xml index 409bca714..247e1b873 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -354,6 +354,8 @@ Party + Opti-Zoom + NONE diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml index 3f5df1e4e..bde5a52d0 100644 --- a/res/xml/camera_preferences.xml +++ b/res/xml/camera_preferences.xml @@ -50,6 +50,13 @@ camera:entries="@array/pref_camera_whitebalance_entries" camera:entryValues="@array/pref_camera_whitebalance_entryvalues" camera:labelList="@array/pref_camera_whitebalance_labels" /> + 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 = @@ -938,6 +950,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 8556a2319..35d721d3e 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -153,6 +153,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_FOCUS_TIME, CameraSettings.KEY_SHUTTER_SPEED, @@ -180,6 +181,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_FOCUS_TIME, CameraSettings.KEY_SHUTTER_SPEED, @@ -1155,6 +1157,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 133d73dd7..4208ca7a9 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1867,7 +1867,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. @@ -3682,6 +3686,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)) { @@ -3699,6 +3705,11 @@ public class PhotoModule mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, refocusOn); } 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) { @@ -4415,6 +4426,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