diff --git a/res/values/strings.xml b/res/values/strings.xml index 37463c918..aba793a53 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -156,8 +156,8 @@ Display a list of permissions an app needs You don\'t have any available app that can handle %s Compact Layout - Show icons at regular size - Show icons at a smaller size + Show icons at a smaller size + Show icons at regular size Theme diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 0125bc87f..4ac1365d6 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -21,6 +21,7 @@ package org.fdroid.fdroid; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; @@ -39,6 +40,15 @@ public class PreferencesActivity extends PreferenceActivity implements public static final int RESULT_RESTART = 4; private int result = 0; + private static String[] summariesToUpdate = { + Preferences.PREF_UPD_INTERVAL, + Preferences.PREF_UPD_WIFI_ONLY, + Preferences.PREF_ROOTED, + Preferences.PREF_INCOMP_VER, + Preferences.PREF_THEME, + Preferences.PREF_COMPACT_LAYOUT, + Preferences.PREF_IGN_TOUCH }; + @Override protected void onCreate(Bundle savedInstanceState) { ((FDroidApp) getApplication()).applyTheme(this); @@ -47,31 +57,96 @@ public class PreferencesActivity extends PreferenceActivity implements addPreferencesFromResource(R.xml.preferences); } + protected void updateSummary(String key) { + + if (key.equals(Preferences.PREF_UPD_INTERVAL)) { + ListPreference pref = (ListPreference)findPreference( + Preferences.PREF_UPD_INTERVAL); + int interval = Integer.parseInt(pref.getValue().toString()); + Preference onlyOnWifi = findPreference( + Preferences.PREF_UPD_WIFI_ONLY); + onlyOnWifi.setEnabled(interval > 0); + if (interval == 0) { + pref.setSummary(R.string.update_interval_zero); + } else { + pref.setSummary(pref.getEntry()); + } + return; + } + + if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_UPD_WIFI_ONLY); + if (pref.isChecked()) { + pref.setSummary(R.string.automatic_scan_wifi_on); + } else { + pref.setSummary(R.string.automatic_scan_wifi_off); + } + return; + } + + if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_COMPACT_LAYOUT); + if (pref.isChecked()) { + pref.setSummary(R.string.compactlayout_on); + } else { + pref.setSummary(R.string.compactlayout_off); + } + return; + } + + if (key.equals(Preferences.PREF_INCOMP_VER)) { + result ^= RESULT_RELOAD; + setResult(result); + return; + } + + if (key.equals(Preferences.PREF_ROOTED)) { + result ^= RESULT_REFILTER; + setResult(result); + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_ROOTED); + if (pref.isChecked()) { + pref.setSummary(R.string.rooted_on); + } else { + pref.setSummary(R.string.rooted_off); + } + return; + } + + if (key.equals(Preferences.PREF_IGN_TOUCH)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_IGN_TOUCH); + if (pref.isChecked()) { + pref.setSummary(R.string.ignoreTouch_on); + } else { + pref.setSummary(R.string.ignoreTouch_off); + } + return; + } + + if (key.equals(Preferences.PREF_THEME)) { + result |= RESULT_RESTART; + setResult(result); + ListPreference theme = (ListPreference)findPreference( + Preferences.PREF_THEME); + theme.setSummary(theme.getEntry()); + return; + } + } + @Override protected void onResume() { + super.onResume(); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener( (OnSharedPreferenceChangeListener)this); - ListPreference updateInterval = (ListPreference)findPreference( - Preferences.PREF_UPD_INTERVAL); - - int interval = Integer.parseInt(updateInterval.getValue().toString()); - - Preference onlyOnWifi = findPreference( - Preferences.PREF_UPD_WIFI_ONLY); - onlyOnWifi.setEnabled(interval > 0); - - if (interval == 0) { - updateInterval.setSummary(R.string.update_interval_zero); - } else { - updateInterval.setSummary(updateInterval.getEntry()); + for (String key : summariesToUpdate) { + updateSummary(key); } - - ListPreference theme = (ListPreference)findPreference( - Preferences.PREF_THEME); - theme.setSummary(theme.getEntry()); } @Override @@ -95,85 +170,7 @@ public class PreferencesActivity extends PreferenceActivity implements public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { - if (key.equals(Preferences.PREF_UPD_INTERVAL)) { - ListPreference pref = (ListPreference)findPreference( - Preferences.PREF_UPD_INTERVAL); - int interval = Integer.parseInt(pref.getValue().toString()); - Preference onlyOnWifi = findPreference( - Preferences.PREF_UPD_WIFI_ONLY); - onlyOnWifi.setEnabled(interval > 0); - if (interval == 0) { - pref.setSummary(R.string.update_interval_zero); - } else { - pref.setSummary(pref.getEntry()); - } - return; - } - - if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { - Preference pref = findPreference(Preferences.PREF_UPD_WIFI_ONLY); - if (sharedPreferences.getBoolean( - Preferences.PREF_UPD_WIFI_ONLY, false)) { - pref.setSummary(R.string.automatic_scan_wifi_on); - } else { - pref.setSummary(R.string.automatic_scan_wifi_off); - } - return; - } - - if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { - Preference pref = findPreference(Preferences.PREF_COMPACT_LAYOUT); - if (sharedPreferences.getBoolean( - Preferences.PREF_COMPACT_LAYOUT, false)) { - pref.setSummary(R.string.compactlayout_on); - } else { - pref.setSummary(R.string.compactlayout_off); - } - return; - } - - if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { - return; - } - - if (key.equals(Preferences.PREF_INCOMP_VER)) { - result ^= RESULT_RELOAD; - setResult(result); - return; - } - - if (key.equals(Preferences.PREF_ROOTED)) { - result ^= RESULT_REFILTER; - setResult(result); - Preference pref = findPreference(Preferences.PREF_ROOTED); - if (sharedPreferences.getBoolean( - Preferences.PREF_ROOTED, true)) { - pref.setSummary(R.string.rooted_on); - } else { - pref.setSummary(R.string.rooted_off); - } - return; - } - - if (key.equals(Preferences.PREF_IGN_TOUCH)) { - Preference pref = findPreference(Preferences.PREF_IGN_TOUCH); - if (sharedPreferences.getBoolean( - Preferences.PREF_IGN_TOUCH, false)) { - pref.setSummary(R.string.ignoreTouch_on); - } else { - pref.setSummary(R.string.ignoreTouch_off); - } - return; - } - - if (key.equals(Preferences.PREF_THEME)) { - result |= RESULT_RESTART; - setResult(result); - ListPreference theme = (ListPreference)findPreference( - Preferences.PREF_THEME); - theme.setSummary(theme.getEntry()); - return; - } + updateSummary(key); } }