diff options
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index f3a228562..3a5f6f705 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -36,6 +36,7 @@ import android.graphics.Rect; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraManager; +import android.hardware.camera2.CameraMetadata; import android.hardware.camera2.params.StreamConfigurationMap; import android.util.Log; import android.util.Range; @@ -491,6 +492,7 @@ public class SettingsManager implements ListMenu.SettingsListener { ListPreference clearsight = mPreferenceGroup.findPreference(KEY_CLEARSIGHT); ListPreference monoPreview = mPreferenceGroup.findPreference(KEY_MONO_PREVIEW); ListPreference monoOnly = mPreferenceGroup.findPreference(KEY_MONO_ONLY); + ListPreference redeyeReduction = mPreferenceGroup.findPreference(KEY_REDEYE_REDUCTION); if (whiteBalance != null) { CameraSettings.filterUnsupportedOptions(mPreferenceGroup, @@ -529,7 +531,11 @@ public class SettingsManager implements ListMenu.SettingsListener { if (clearsight != null) removePreference(mPreferenceGroup, KEY_CLEARSIGHT); if (monoPreview != null) removePreference(mPreferenceGroup, KEY_MONO_PREVIEW); if (monoOnly != null) removePreference(mPreferenceGroup, KEY_MONO_ONLY); + } + if (redeyeReduction != null) { + CameraSettings.filterUnsupportedOptions(mPreferenceGroup, + redeyeReduction, getSupportedRedeyeReduction(cameraId)); } } @@ -682,6 +688,20 @@ public class SettingsManager implements ListMenu.SettingsListener { return res; } + private List<String> getSupportedRedeyeReduction(int cameraId) { + int[] flashModes = mCharacteristics.get(cameraId).get(CameraCharacteristics + .CONTROL_AE_AVAILABLE_MODES); + List<String> modes = new ArrayList<>(); + for (int i = 0; i < flashModes.length; i++) { + if (flashModes[i] == CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE) { + modes.add("disable"); + modes.add("enable"); + break; + } + } + return modes; + } + private List<String> getSupportedWhiteBalanceModes(int cameraId) { int[] whiteBalanceModes = mCharacteristics.get(cameraId).get(CameraCharacteristics .CONTROL_AWB_AVAILABLE_MODES); |