mirror of
https://github.com/nerzhul/ownCloud-SMS-App.git
synced 2026-08-23 22:32:59 +00:00
Add a new preference to select on which network synchronize
This commit is contained in:
@@ -16,8 +16,13 @@ package fr.unix_experience.owncloud_sms.engine;
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
import fr.unix_experience.owncloud_sms.defines.DefaultPrefs;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
public class ConnectivityMonitor {
|
||||
public ConnectivityMonitor(Context context) {
|
||||
@@ -28,13 +33,48 @@ public class ConnectivityMonitor {
|
||||
public boolean isValid() {
|
||||
if (_cMgr == null) {
|
||||
_cMgr = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
}
|
||||
}
|
||||
|
||||
final android.net.NetworkInfo niWiFi = _cMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
||||
final android.net.NetworkInfo niMobile = _cMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
|
||||
|
||||
if (niWiFi.isAvailable() || niMobile.isAvailable()) {
|
||||
return true;
|
||||
// Load the connectivity manager to determine on which network we are connected
|
||||
NetworkInfo netInfo = _cMgr.getActiveNetworkInfo();
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(_context);
|
||||
|
||||
// Check
|
||||
switch (netInfo.getType()) {
|
||||
case ConnectivityManager.TYPE_WIFI:
|
||||
return prefs.getBoolean("sync_wifi", DefaultPrefs.syncWifi);
|
||||
case ConnectivityManager.TYPE_MOBILE:
|
||||
switch (netInfo.getSubtype()) {
|
||||
case TelephonyManager.NETWORK_TYPE_EDGE:
|
||||
case TelephonyManager.NETWORK_TYPE_CDMA:
|
||||
case TelephonyManager.NETWORK_TYPE_1xRTT:
|
||||
case TelephonyManager.NETWORK_TYPE_IDEN:
|
||||
return prefs.getBoolean("sync_2g", DefaultPrefs.sync2G);
|
||||
case TelephonyManager.NETWORK_TYPE_GPRS:
|
||||
return prefs.getBoolean("sync_gprs", DefaultPrefs.syncGPRS);
|
||||
case TelephonyManager.NETWORK_TYPE_HSDPA:
|
||||
case TelephonyManager.NETWORK_TYPE_HSPA:
|
||||
case TelephonyManager.NETWORK_TYPE_HSUPA:
|
||||
case TelephonyManager.NETWORK_TYPE_UMTS:
|
||||
case TelephonyManager.NETWORK_TYPE_EHRPD:
|
||||
case TelephonyManager.NETWORK_TYPE_EVDO_B:
|
||||
case TelephonyManager.NETWORK_TYPE_HSPAP:
|
||||
return prefs.getBoolean("sync_3g", DefaultPrefs.sync3G);
|
||||
case TelephonyManager.NETWORK_TYPE_LTE:
|
||||
return prefs.getBoolean("sync_4g", DefaultPrefs.sync3G);
|
||||
default:
|
||||
return prefs.getBoolean("sync_others", DefaultPrefs.syncOthers);
|
||||
}
|
||||
default:
|
||||
return prefs.getBoolean("sync_others", DefaultPrefs.syncOthers);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user