ability to disable prefetch on metered networks

This commit is contained in:
dosiecki 2016-11-14 18:09:16 -08:00
parent f0c422664a
commit 206de51d39
3 changed files with 14 additions and 3 deletions

View file

@ -188,16 +188,19 @@
<string name="menu_network_select">Download Using</string>
<string name="menu_network_select_sum">Restrict background data to chosen networks</string>
<string name="menu_network_select_opt_any">Any Network</string>
<string name="menu_network_select_opt_nomo">Wifi and Ethernet Only</string>
<string name="menu_network_select_opt_nomo">Any Wifi or Ethernet</string>
<string name="menu_network_select_opt_nomononme">Unmetered Wifi or Ethernet Only</string>
<string-array name="default_network_select_entries">
<item>@string/menu_network_select_opt_any</item>
<item>@string/menu_network_select_opt_nomo</item>
<item>@string/menu_network_select_opt_nomononme</item>
</string-array>
<string-array name="default_network_select_values">
<item>ANY</item>
<item>NOMO</item>
<item>NOMONONME</item>
</string-array>
<string name="default_network_select_value">NOMO</string>
<string name="default_network_select_value">NOMONONME</string>
<string name="settings_cat_story_list">Story List</string>

View file

@ -61,6 +61,7 @@ public class PrefConstants {
public static final String NETWORK_SELECT_ANY = "ANY";
public static final String NETWORK_SELECT_NOMO = "NOMO";
public static final String NETWORK_SELECT_NOMONONME = "NOMONONME";
public static final String THEME = "theme";

View file

@ -538,7 +538,7 @@ public class PrefsUtils {
*/
public static boolean isBackgroundNetworkAllowed(Context context) {
SharedPreferences prefs = context.getSharedPreferences(PrefConstants.PREFERENCES, 0);
String mode = prefs.getString(PrefConstants.NETWORK_SELECT, PrefConstants.NETWORK_SELECT_NOMO);
String mode = prefs.getString(PrefConstants.NETWORK_SELECT, PrefConstants.NETWORK_SELECT_NOMONONME);
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
@ -552,6 +552,13 @@ public class PrefsUtils {
if (! ((type == ConnectivityManager.TYPE_WIFI) || (type == ConnectivityManager.TYPE_ETHERNET))) {
return false;
}
} else if (mode.equals(PrefConstants.NETWORK_SELECT_NOMONONME)) {
if (! ((type == ConnectivityManager.TYPE_WIFI) || (type == ConnectivityManager.TYPE_ETHERNET))) {
return false;
}
if (connMgr.isActiveNetworkMetered()) {
return false;
}
}
return true;