src/com/beem/project/beem/BeemService.java
changeset 613 58b8abc8719b
parent 609 47e559a5410a
child 614 38f529f0df86
--- 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());