diff options
Diffstat (limited to 'src/com/android/camera/CameraSettings.java')
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index f5963f84b..ccf374eb8 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -1045,7 +1045,7 @@ public class CameraSettings { if (chromaFlash != null) { List<String> supportedAdvancedFeatures = getSupportedAdvancedFeatures(mParameters); - if (!CameraUtil.isSupported( + if (hasChromaFlashScene(mContext) || !CameraUtil.isSupported( mContext.getString(R.string .pref_camera_advanced_feature_value_chromaflash_on), supportedAdvancedFeatures)) { @@ -1071,6 +1071,13 @@ public class CameraSettings { supportedSceneModes.add(mContext.getString(R.string .pref_camera_advanced_feature_value_optizoom_on)); } + if (hasChromaFlashScene(mContext) && CameraUtil.isSupported( + mContext.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on), + supportedAdvancedFeatures)) { + supportedSceneModes.add(mContext.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on)); + } filterUnsupportedOptions(group, sceneMode, supportedSceneModes); } if (flashMode != null) { @@ -1749,4 +1756,16 @@ public class CameraSettings { pictureSize.setEntries(entries.toArray(new String[entries.size()])); pictureSize.setEntryValues(entryValues.toArray(new String[entryValues.size()])); } + + public static boolean hasChromaFlashScene(Context context) { + String[] sceneModes = context.getResources().getStringArray( + R.array.pref_camera_scenemode_entryvalues); + for (String mode : sceneModes) { + if (mode.equals(context.getResources().getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on))) { + return true; + } + } + return false; + } } |