--- a/src/com/beem/project/beem/BeemService.java Wed Dec 23 03:14:56 2009 +0100
+++ b/src/com/beem/project/beem/BeemService.java Tue Dec 29 20:48:16 2009 +0100
@@ -40,7 +40,7 @@
Flavien Astraud, November 26, 2009
Head of the EIP Laboratory.
-*/
+ */
package com.beem.project.beem;
import org.jivesoftware.smack.ConnectionConfiguration;
@@ -82,8 +82,10 @@
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
+import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
+import android.net.ConnectivityManager;
import android.os.IBinder;
import android.os.RemoteException;
import android.preference.PreferenceManager;
@@ -93,8 +95,9 @@
import com.beem.project.beem.service.XmppConnectionAdapter;
import com.beem.project.beem.service.XmppFacade;
import com.beem.project.beem.service.aidl.IXmppFacade;
+import com.beem.project.beem.utils.BeemBroadcastReceiver;
+import com.beem.project.beem.utils.BeemConnectivity;
-// TODO: Auto-generated Javadoc
/**
* This class is for the Beem service. The connection to the xmpp server will be made asynchronously when the service
* will start.
@@ -123,6 +126,8 @@
private boolean mUseProxy;
private IXmppFacade.Stub mBind;
+ private BeemBroadcastReceiver mReceiver = new BeemBroadcastReceiver();
+
/**
* Constructor.
*/
@@ -188,8 +193,8 @@
*/
@Override
public void onCreate() {
-
super.onCreate();
+ registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
mSettings = PreferenceManager.getDefaultSharedPreferences(this);
String tmpJid = mSettings.getString("settings_key_account_username", "");
mLogin = StringUtils.parseName(tmpJid);
@@ -215,7 +220,7 @@
Roster.setDefaultSubscriptionMode(SubscriptionMode.manual);
mJingle = new JingleService(mConnection.getAdaptee());
- mBind = new XmppFacade(mConnection, this, mJingle);
+ mBind = new XmppFacade(mConnection, mJingle);
Log.d(TAG, "ONCREATE");
}
@@ -225,8 +230,10 @@
@Override
public void onDestroy() {
super.onDestroy();
+ Log.d("Service", "onDestroy");
mNotificationManager.cancelAll();
- if (mConnection.isAuthentificated())
+ unregisterReceiver(mReceiver);
+ if (mConnection.isAuthentificated() && BeemConnectivity.isConnected(this))
mConnection.disconnect();
Log.d(TAG, "ONDESTROY");
}
@@ -316,8 +323,8 @@
// Chat State
pm.addExtensionProvider("active", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());
pm
- .addExtensionProvider("composing", "http://jabber.org/protocol/chatstates",
- new ChatStateExtension.Provider());
+ .addExtensionProvider("composing", "http://jabber.org/protocol/chatstates",
+ new ChatStateExtension.Provider());
pm.addExtensionProvider("paused", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());
pm.addExtensionProvider("inactive", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());
pm.addExtensionProvider("gone", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());