diff options
-rw-r--r-- | res/drawable-hdpi/ic_scene_mode_optizoom.png | bin | 0 -> 4076 bytes | |||
-rw-r--r-- | res/drawable-hdpi/ic_settings_chromaflash.png | bin | 0 -> 3041 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_scene_mode_optizoom.png | bin | 0 -> 5520 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_settings_chromaflash.png | bin | 0 -> 4055 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/ic_scene_mode_optizoom.png | bin | 0 -> 8137 bytes | |||
-rw-r--r-- | res/drawable-xxhdpi/ic_settings_chromaflash.png | bin | 0 -> 5787 bytes | |||
-rw-r--r-- | res/values/arrays.xml | 13 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | res/xml/camera_preferences.xml | 7 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 19 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 13 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 17 |
12 files changed, 70 insertions, 1 deletions
diff --git a/res/drawable-hdpi/ic_scene_mode_optizoom.png b/res/drawable-hdpi/ic_scene_mode_optizoom.png Binary files differnew file mode 100644 index 000000000..bdf3d634a --- /dev/null +++ b/res/drawable-hdpi/ic_scene_mode_optizoom.png diff --git a/res/drawable-hdpi/ic_settings_chromaflash.png b/res/drawable-hdpi/ic_settings_chromaflash.png Binary files differnew file mode 100644 index 000000000..a58bc00bf --- /dev/null +++ b/res/drawable-hdpi/ic_settings_chromaflash.png diff --git a/res/drawable-xhdpi/ic_scene_mode_optizoom.png b/res/drawable-xhdpi/ic_scene_mode_optizoom.png Binary files differnew file mode 100644 index 000000000..8a4fc3614 --- /dev/null +++ b/res/drawable-xhdpi/ic_scene_mode_optizoom.png diff --git a/res/drawable-xhdpi/ic_settings_chromaflash.png b/res/drawable-xhdpi/ic_settings_chromaflash.png Binary files differnew file mode 100644 index 000000000..b21a5a086 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_chromaflash.png diff --git a/res/drawable-xxhdpi/ic_scene_mode_optizoom.png b/res/drawable-xxhdpi/ic_scene_mode_optizoom.png Binary files differnew file mode 100644 index 000000000..e41b3ac23 --- /dev/null +++ b/res/drawable-xxhdpi/ic_scene_mode_optizoom.png diff --git a/res/drawable-xxhdpi/ic_settings_chromaflash.png b/res/drawable-xxhdpi/ic_settings_chromaflash.png Binary files differnew file mode 100644 index 000000000..d46fc49c6 --- /dev/null +++ b/res/drawable-xxhdpi/ic_settings_chromaflash.png 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 @@ <item>@drawable/ic_indicator_wb_cloudy</item> </array> + <string-array name="pref_camera_chromaflash_entries" translatable="false"> + <item>@string/setting_off</item> + <item>@string/setting_on</item> + </string-array> + + <array name="pref_camera_chromaflash_entryvalues" translatable="false"> + <item>@string/pref_camera_advanced_feature_value_chromaflash_off</item> + <item>@string/pref_camera_advanced_feature_value_chromaflash_on</item> + </array> + <!-- Camera Preferences Scene Mode dialog box entries --> <string-array name="pref_camera_scenemode_entries" translatable="false"> <item>@string/pref_camera_scenemode_entry_auto</item> <item>@string/pref_camera_scenemode_entry_hdr</item> <item>@string/pref_camera_scenemode_entry_refocus</item> + <item>@string/pref_camera_scenemode_entry_optizoom</item> <item>@string/pref_camera_scenemode_entry_action</item> <item>@string/pref_camera_scenemode_entry_antimotionblur</item> <item>@string/pref_camera_scenemode_entry_aqua</item> @@ -531,6 +542,7 @@ <item>@drawable/ic_scene_mode_auto</item> <item>@drawable/ic_scene_mode_hdr</item> <item>@drawable/ic_scene_mode_refocus</item> + <item>@drawable/ic_scene_mode_optizoom</item> <item>@drawable/ic_scene_mode_action</item> <item>@drawable/ic_scene_mode_entry_antimotionblur</item> <item>@drawable/ic_scene_mode_entry_aqua</item> @@ -603,6 +615,7 @@ <item>auto</item> <item>hdr</item> <item>@string/pref_camera_advanced_feature_value_refocus_on</item> + <item>@string/pref_camera_advanced_feature_value_optizoom_on</item> <item>action</item> <item>anti-motion-blur</item> <item>aqua</item> 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 @@ <!-- Scene mode optimized for taking indoor low-lights pictures. [CHAR LIMIT=16] --> <string name="pref_camera_scenemode_entry_party">Party</string> + <string name="pref_camera_scenemode_entry_optizoom">Opti-Zoom</string> + <!-- Settings menu, scene mode labels [CHAR LIMIT=50] --> <string name="pref_camera_scenemode_label_auto">NONE</string> <!-- Scene mode that takes an image quickly with little motion blur. [CHAR LIMIT=50] --> 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" /> + <IconListPreference + camera:key="chroma-flash" + camera:defaultValue="@string/pref_camera_advanced_feature_value_chromaflash_off" + camera:title="@string/pref_camera_advanced_feature_entry_chromaflash" + camera:singleIcon="@drawable/ic_settings_chromaflash" + camera:entries="@array/pref_camera_chromaflash_entries" + camera:entryValues="@array/pref_camera_chromaflash_entryvalues" /> <RecordLocationPreference camera:key="pref_camera_recordlocation_key" camera:defaultValue="@string/pref_camera_recordlocation_default" diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index ee5ba7b85..66a022b2d 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -881,6 +881,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); @@ -927,6 +928,17 @@ public class CameraSettings { whiteBalance, mParameters.getSupportedWhiteBalance()); } + if (chromaFlash != null) { + List<String> 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<String> supportedSceneModes = mParameters.getSupportedSceneModes(); List<String> 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(); } |