New setting: Automatic app list updates only on wifi (fixes: #380)
This commit is contained in:
parent
f16234e084
commit
d6f0fbca98
@ -22,6 +22,7 @@
|
|||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
|
||||||
|
@ -9,19 +9,21 @@
|
|||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="n_versions_available">%d versions available</string>
|
<string name="n_versions_available">%d versions available</string>
|
||||||
<string name="n_version_available">%d version available</string>
|
<string name="n_version_available">%d version available</string>
|
||||||
<string name="notify">Notify</string>
|
|
||||||
<string name="cache_downloaded">Cache downloaded apps</string>
|
<string name="cache_downloaded">Cache downloaded apps</string>
|
||||||
<string name="keep_downloaded">Keep downloaded apk files on SD card</string>
|
<string name="keep_downloaded">Keep downloaded apk files on SD card</string>
|
||||||
<string name="updates">Updates</string>
|
<string name="updates">Updates</string>
|
||||||
<string name="other">Other</string>
|
<string name="other">Other</string>
|
||||||
<string name="notify_updates_available">Notify when new updates are available</string>
|
|
||||||
<string name="update_apps_list">Update app list from repositories automatically
|
|
||||||
</string>
|
|
||||||
<string name="update_history">Update history</string>
|
|
||||||
<string name="update_history_desc">Days to show new/updated apps</string>
|
|
||||||
<string name="last_update_check">Last repo scan: %s</string>
|
<string name="last_update_check">Last repo scan: %s</string>
|
||||||
<string name="never">never</string>
|
<string name="never">never</string>
|
||||||
|
|
||||||
<string name="automatic_repo_scan">Automatic repo scan</string>
|
<string name="automatic_repo_scan">Automatic repo scan</string>
|
||||||
|
<string name="update_apps_list">Update app list from repositories automatically</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="notify">Notify</string>
|
||||||
|
<string name="notify_updates_available">Notify when new updates are available</string>
|
||||||
|
<string name="update_history">Update history</string>
|
||||||
|
<string name="update_history_desc">Days to show new/updated apps</string>
|
||||||
|
|
||||||
<string name="search_results">Search Results</string>
|
<string name="search_results">Search Results</string>
|
||||||
<string name="app_details">App Details</string>
|
<string name="app_details">App Details</string>
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
android:summary="@string/update_apps_list" android:key="updateInterval"
|
android:summary="@string/update_apps_list" android:key="updateInterval"
|
||||||
android:defaultValue="24" android:entries="@array/updateIntervalNames"
|
android:defaultValue="24" android:entries="@array/updateIntervalNames"
|
||||||
android:entryValues="@array/updateIntervalValues" />
|
android:entryValues="@array/updateIntervalValues" />
|
||||||
|
<CheckBoxPreference android:title="@string/automatic_scan_wifi"
|
||||||
|
android:defaultValue="false" android:summary="@string/automatic_scan_wifi_desc"
|
||||||
|
android:key="updateOnWifiOnly" />
|
||||||
<CheckBoxPreference android:title="@string/notify"
|
<CheckBoxPreference android:title="@string/notify"
|
||||||
android:defaultValue="true" android:summary="@string/notify_updates_available"
|
android:defaultValue="true" android:summary="@string/notify_updates_available"
|
||||||
android:key="updateNotify" />
|
android:key="updateNotify" />
|
||||||
|
@ -22,7 +22,9 @@ import android.content.Intent;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
|
import android.preference.ListPreference;
|
||||||
|
import android.preference.CheckBoxPreference;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import android.support.v4.app.NavUtils;
|
import android.support.v4.app.NavUtils;
|
||||||
@ -30,7 +32,7 @@ import android.support.v4.app.NavUtils;
|
|||||||
import org.fdroid.fdroid.compat.ActionBarCompat;
|
import org.fdroid.fdroid.compat.ActionBarCompat;
|
||||||
|
|
||||||
public class PreferencesActivity extends PreferenceActivity implements
|
public class PreferencesActivity extends PreferenceActivity implements
|
||||||
OnPreferenceClickListener {
|
OnPreferenceChangeListener {
|
||||||
|
|
||||||
Intent ret;
|
Intent ret;
|
||||||
|
|
||||||
@ -39,10 +41,14 @@ public class PreferencesActivity extends PreferenceActivity implements
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
ActionBarCompat.create(this).setDisplayHomeAsUpEnabled(true);
|
ActionBarCompat.create(this).setDisplayHomeAsUpEnabled(true);
|
||||||
addPreferencesFromResource(R.xml.preferences);
|
addPreferencesFromResource(R.xml.preferences);
|
||||||
//for (String prefkey : new String[] { }) {
|
for (String prefkey : new String[] { "updateInterval" }) {
|
||||||
//Preference pref = findPreference(prefkey);
|
Preference pref = findPreference(prefkey);
|
||||||
//pref.setOnPreferenceClickListener(this);
|
pref.setOnPreferenceChangeListener(this);
|
||||||
//}
|
CheckBoxPreference onlyOnWifi = (CheckBoxPreference)
|
||||||
|
findPreference("updateOnWifiOnly");
|
||||||
|
onlyOnWifi.setEnabled(Integer.parseInt(
|
||||||
|
((ListPreference)pref).getValue()) > 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -56,13 +62,16 @@ public class PreferencesActivity extends PreferenceActivity implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
// Currently no actions are returned
|
String key = preference.getKey();
|
||||||
//String key = preference.getKey();
|
if (key.equals("updateInterval")) {
|
||||||
//if (key.equals("...")) {
|
int interval = Integer.parseInt(newValue.toString());
|
||||||
Intent ret = new Intent();
|
CheckBoxPreference onlyOnWifi = (CheckBoxPreference)
|
||||||
setResult(RESULT_OK, ret);
|
findPreference("updateOnWifiOnly");
|
||||||
return true;
|
onlyOnWifi.setEnabled(interval > 0);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ import android.content.Intent;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.Editor;
|
import android.content.SharedPreferences.Editor;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.ResultReceiver;
|
import android.os.ResultReceiver;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
@ -137,6 +139,18 @@ public class UpdateService extends IntentService implements ProgressListener {
|
|||||||
+ "ms ago, interval is " + interval + " hours");
|
+ "ms ago, interval is " + interval + " hours");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we are to update the repos only on wifi, make sure that
|
||||||
|
// connection is active
|
||||||
|
if (prefs.getBoolean("updateOnWifiOnly", false)) {
|
||||||
|
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
NetworkInfo.State wifi = conMan.getNetworkInfo(1).getState();
|
||||||
|
if (wifi != NetworkInfo.State.CONNECTED &&
|
||||||
|
wifi != NetworkInfo.State.CONNECTING) {
|
||||||
|
Log.d("FDroid", "Skipping update - wifi not available");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d("FDroid", "Unscheduled (manually requested) update");
|
Log.d("FDroid", "Unscheduled (manually requested) update");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user