diff options
author | Camera Software Integration <camswint@localhost> | 2016-11-28 22:18:10 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-28 22:18:10 -0800 |
commit | a336eeca2ed3235ddffd66cec3cf5e220ddd6641 (patch) | |
tree | 5667eeaecc1d90133bf606396d563bf8edcbb763 | |
parent | e8cefc2dccb9145e1db7ea207fd39adb9eb9c9bc (diff) | |
parent | 99531a0cef9b846134802940de64174696703778 (diff) | |
download | android_packages_apps_Snap-a336eeca2ed3235ddffd66cec3cf5e220ddd6641.tar.gz android_packages_apps_Snap-a336eeca2ed3235ddffd66cec3cf5e220ddd6641.tar.bz2 android_packages_apps_Snap-a336eeca2ed3235ddffd66cec3cf5e220ddd6641.zip |
Merge "SnapdragonCamera: Selfie mirror doesn't work when open the Continuous shot" into camera.lnx.1.0-dev.1.0
-rw-r--r-- | src/com/android/camera/SettingsActivity.java | 37 | ||||
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 4 |
2 files changed, 35 insertions, 6 deletions
diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java index 503927904..e97073f58 100644 --- a/src/com/android/camera/SettingsActivity.java +++ b/src/com/android/camera/SettingsActivity.java @@ -89,6 +89,20 @@ public class SettingsActivity extends PreferenceActivity { } }; + private SettingsManager.Listener mListener = new SettingsManager.Listener(){ + @Override + public void onSettingsChanged(List<SettingsManager.SettingState> settings){ + Map<String, SettingsManager.Values> map = mSettingsManager.getValuesMap(); + for( SettingsManager.SettingState state : settings) { + SettingsManager.Values values = map.get(state.key); + boolean enabled = values.overriddenValue == null; + Preference pref = findPreference(state.key); + if (pref != null) { + pref.setEnabled(enabled); + } + } + } + }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -102,6 +116,7 @@ public class SettingsActivity extends PreferenceActivity { finish(); return; } + mSettingsManager.registerListener(mListener); addPreferencesFromResource(R.xml.setting_menu_preferences); mSharedPreferences = getPreferenceManager().getSharedPreferences(); @@ -207,12 +222,16 @@ public class SettingsActivity extends PreferenceActivity { private void updatePreferenceButton(String key) { Preference pref = findPreference(key); - if (pref != null && pref instanceof ListPreference) { - ListPreference pref2 = (ListPreference) pref; - if (pref2.getEntryValues().length == 1) { - pref2.setEnabled(false); - } else { - pref2.setEnabled(true); + if (pref != null ) { + if( pref instanceof ListPreference) { + ListPreference pref2 = (ListPreference) pref; + if (pref2.getEntryValues().length == 1) { + pref2.setEnabled(false); + } else { + pref2.setEnabled(true); + } + }else { + pref.setEnabled(false); } } } @@ -243,6 +262,12 @@ public class SettingsActivity extends PreferenceActivity { finish(); } + @Override + protected void onDestroy() { + super.onDestroy(); + mSettingsManager.unregisterListener(mListener); + } + private void setShowInLockScreen() { // Change the window flags so that secure camera can show when locked Window win = getWindow(); diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 359781266..520a247f6 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -422,6 +422,10 @@ public class SettingsManager implements ListMenu.SettingsListener { mListeners.add(listener); } + public void unregisterListener(Listener listener) { + mListeners.remove(listener); + } + private void notifyListeners(List<SettingState> changes) { for (Listener listener : mListeners) { listener.onSettingsChanged(changes); |