Do on/off and value summaries for auto updates

This commit is contained in:
Daniel Martí 2014-01-01 00:38:47 +01:00
parent 1b6a643b9c
commit 02bac89b17
3 changed files with 42 additions and 13 deletions

View File

@ -14,10 +14,11 @@
<string name="last_update_check">Last repo scan: %s</string>
<string name="never">never</string>
<string name="automatic_repo_scan">Automatic repo scan</string>
<string name="update_apps_list">Update app list from repositories automatically</string>
<string name="update_interval">Automatic update interval</string>
<string name="update_interval_zero">No automatic app list updates</string>
<string name="automatic_scan_wifi">Only on wifi</string>
<string name="automatic_scan_wifi_desc">Update app lists automatically only on wifi</string>
<string name="automatic_scan_wifi_on">Update app lists automatically only on wifi</string>
<string name="automatic_scan_wifi_off">Always update app lists automatically</string>
<string name="notify">Notify</string>
<string name="notify_updates_available">Notify when new updates are available</string>
<string name="update_history">Update history</string>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/updates">
<ListPreference android:title="@string/automatic_repo_scan"
android:summary="@string/update_apps_list" android:key="updateInterval"
<ListPreference android:title="@string/update_interval"
android:summary="@string/update_interval_zero" android:key="updateInterval"
android:defaultValue="24" android:entries="@array/updateIntervalNames"
android:entryValues="@array/updateIntervalValues" />
<CheckBoxPreference android:title="@string/automatic_scan_wifi"
android:defaultValue="false" android:summary="@string/automatic_scan_wifi_desc"
android:defaultValue="false" android:summary="@string/automatic_scan_wifi_off"
android:key="updateOnWifiOnly" />
<CheckBoxPreference android:title="@string/notify"
android:defaultValue="true" android:summary="@string/notify_updates_available"

View File

@ -53,11 +53,21 @@ public class PreferencesActivity extends PreferenceActivity implements
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(Integer.parseInt(((ListPreference)
findPreference(Preferences.PREF_UPD_INTERVAL))
.getValue()) > 0);
onlyOnWifi.setEnabled(interval > 0);
if (interval == 0) {
updateInterval.setSummary(R.string.update_interval_zero);
} else {
updateInterval.setSummary(updateInterval.getEntry());
}
}
@Override
@ -78,14 +88,32 @@ public class PreferencesActivity extends PreferenceActivity implements
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
if (key.equals(Preferences.PREF_UPD_INTERVAL)) {
int interval = Integer.parseInt(
sharedPreferences.getString(key, "").toString());
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;
}
@ -115,7 +143,7 @@ public class PreferencesActivity extends PreferenceActivity implements
setResult(result);
Preference pref = findPreference(Preferences.PREF_ROOTED);
if (sharedPreferences.getBoolean(
Preferences.PREF_ROOTED, false)) {
Preferences.PREF_ROOTED, true)) {
pref.setSummary(R.string.rooted_on);
} else {
pref.setSummary(R.string.rooted_off);