package ca.uwaterloo.uwfoodservicesutility; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.preference.PreferenceManager; public class NetworkReceiver extends BroadcastReceiver { public final String WIFI = "Wi-Fi Only"; public final String BOTH = "Both Wi-Fi and Data"; public final String DATA = "Data Only"; Context context; public boolean wifiConnected = false; public boolean mobileConnected = false; public boolean dataConnected = false; public String networkPref = null; public boolean cachePref; public String refreshPref = null; SharedPreferences sharedPrefs; public NetworkReceiver(Context context) { this.context = context; sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); networkPref = sharedPrefs.getString("connection_type_preference", "Both Wi-Fi and Data"); } public String getNetworkPref() { return networkPref; } @Override public void onReceive(Context context, Intent intent) { } public void updateConnectedFlags() { ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeInfo = connMgr.getActiveNetworkInfo(); if ((activeInfo != null) && activeInfo.isConnected()) { wifiConnected = activeInfo.getType() == ConnectivityManager.TYPE_WIFI; mobileConnected = activeInfo.getType() == ConnectivityManager.TYPE_MOBILE; } else { wifiConnected = false; mobileConnected = false; } } public boolean isNetwork(){ updateConnectedFlags(); networkPref = sharedPrefs.getString("connection_type_preference", "Both Wi-Fi and Data"); if(((networkPref.equals(BOTH)) && (wifiConnected || mobileConnected)) || ((networkPref.equals(WIFI)) && (wifiConnected)) || ((networkPref.equals(DATA)) && (mobileConnected))){ return true; } else { return false; } } }