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 195863260..ebab3fb8a 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -1132,7 +1132,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)) { @@ -1160,6 +1160,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) { @@ -1819,4 +1826,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; + } } |