diff options
Diffstat (limited to 'src/com/android/camera/SettingsActivity.java')
-rwxr-xr-x | src/com/android/camera/SettingsActivity.java | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java index cdfb9d625..a06dc5c20 100755 --- a/src/com/android/camera/SettingsActivity.java +++ b/src/com/android/camera/SettingsActivity.java @@ -115,7 +115,10 @@ public class SettingsActivity extends PreferenceActivity { Map<String, SettingsManager.Values> map = mSettingsManager.getValuesMap(); for( SettingsManager.SettingState state : settings) { SettingsManager.Values values = map.get(state.key); - boolean enabled = values.overriddenValue == null; + boolean enabled = false; + if (values != null) { + enabled = values.overriddenValue == null; + } Preference pref = findPreference(state.key); if ( pref == null ) return; @@ -143,13 +146,27 @@ public class SettingsActivity extends PreferenceActivity { pref, "Off", "0"); } + if ((pref.getKey().equals(SettingsManager.KEY_ZSL) || + pref.getKey().equals(SettingsManager.KEY_PICTURE_FORMAT)) || + pref.getKey().equals(SettingsManager.KEY_SELFIEMIRROR)) { + updateFormatPreference(); + } + if ( (pref.getKey().equals(SettingsManager.KEY_MANUAL_WB)) ) { updateManualWBSettings(); } + + if (pref.getKey().equals(SettingsManager.KEY_DIS) || + pref.getKey().equals(SettingsManager.KEY_EIS_VALUE)) { + mSettingsManager.filterEISVideQualityOptions(); + updatePreference(SettingsManager.KEY_VIDEO_QUALITY); + } + } } }; + /** * This method is to enable or disable the option which is conflict with changed setting * @param conflictKey key you want to change after setting is changed @@ -169,6 +186,29 @@ public class SettingsActivity extends PreferenceActivity { } } + private void updateFormatPreference() { + ListPreference formatPref = (ListPreference)findPreference(SettingsManager.KEY_PICTURE_FORMAT); + ListPreference ZSLPref = (ListPreference) findPreference(SettingsManager.KEY_ZSL); + ListPreference mfnrPref = (ListPreference) findPreference(SettingsManager.KEY_CAPTURE_MFNR_VALUE); + SwitchPreference selfiePref = (SwitchPreference) findPreference(SettingsManager.KEY_SELFIEMIRROR); + if (formatPref == null) { + return; + } + if((ZSLPref != null && "app-zsl".equals(ZSLPref.getValue())) || + (selfiePref != null && selfiePref.isChecked())){ + formatPref.setValue("0"); + formatPref.setEnabled(false); + if (mfnrPref != null) { + mfnrPref.setEnabled(false); + } + } else { + formatPref.setEnabled(true); + if (mfnrPref != null) { + mfnrPref.setEnabled(true); + } + } + } + private void UpdateManualExposureSettings() { //dismiss all popups first, because we need to show edit dialog int cameraId = mSettingsManager.getCurrentCameraId(); @@ -783,14 +823,14 @@ public class SettingsActivity extends PreferenceActivity { pref.setEntries(mSettingsManager.getEntries(key)); pref.setEntryValues(mSettingsManager.getEntryValues(key)); String values = mSettingsManager.getValue(key); + Set<String> valueSet = new HashSet<String>(); if (values != null) { - Set<String> valueSet = new HashSet<String>(); String[] splitValues = values.split(";"); for (String str : splitValues) { valueSet.add(str); } - pref.setValues(valueSet); } + pref.setValues(valueSet); } } } |