From 6292011e9bd8aaaf6eeb4b587360aec253e2c33a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot=20=28=40U-Exp=29?= Date: Fri, 12 Dec 2014 15:22:02 +0100 Subject: [PATCH] Event: connectivity changed: prepare a handler when data conn become available --- AndroidManifest.xml | 1 + .../ConnectivityChanged.java | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) 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(); }