diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d5d6721..f49a081 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -13,6 +13,7 @@ + diff --git a/src/fr/unix_experience/owncloud_sms/broadcast_receivers/ConnectivityChanged.java b/src/fr/unix_experience/owncloud_sms/broadcast_receivers/ConnectivityChanged.java index 72026c6..335d970 100644 --- a/src/fr/unix_experience/owncloud_sms/broadcast_receivers/ConnectivityChanged.java +++ b/src/fr/unix_experience/owncloud_sms/broadcast_receivers/ConnectivityChanged.java @@ -1,18 +1,34 @@ package fr.unix_experience.owncloud_sms.broadcast_receivers; -import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.net.ConnectivityManager; import android.util.Log; public class ConnectivityChanged extends BroadcastReceiver { @Override - public void onReceive(Context context, Intent intent) { - Log.d(TAG,"ConnectivityChanged.onReceive"); - (new OCSMSNotificationManager(context)).setDebugMsg("ConnectivityChanged"); + public void onReceive(Context context, Intent intent) { + // Check the connectivity + final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + + final android.net.NetworkInfo niWiFi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); + final android.net.NetworkInfo niMobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + + // If data is available and previous dataConnectionState was false, then we need to sync + if ((niWiFi.isAvailable() || niMobile.isAvailable()) && dataConnectionAvailable == false) { + dataConnectionAvailable = true; + Log.d(TAG,"ConnectivityChanged.onReceive, data conn available"); + // @TODO: check if last message is last synced msg (shared preference) + } + // No data available and previous dataConnectionState was true + else if (dataConnectionAvailable == true && !niWiFi.isAvailable() && !niMobile.isAvailable()) { + dataConnectionAvailable = false; + } } + private static boolean dataConnectionAvailable = false; + private static final String TAG = ConnectivityChanged.class.getSimpleName(); }