SDK target set to 6 since google have said that 2.0 will be totaly replaced the 1st 2010
authorNikita Kozlov <nikita@mbdsys.com>
Tue, 29 Dec 2009 17:23:34 +0100
changeset 607 52e24c3386f3
parent 606 3697d163c2bd
child 608 e99a4b625dd1
SDK target set to 6 since google have said that 2.0 will be totaly replaced the 1st 2010 The service is destroyed when all connections are losts.
AndroidManifest.xml
default.properties
src/com/beem/project/beem/BeemService.java
src/com/beem/project/beem/ui/CreateAccount.java
src/com/beem/project/beem/utils/BeemBroadcastReceiver.java
--- a/AndroidManifest.xml	Sat Dec 26 17:52:47 2009 +0100
+++ b/AndroidManifest.xml	Tue Dec 29 17:23:34 2009 +0100
@@ -79,6 +79,6 @@
 	<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
 	<uses-permission android:name="com.beem.project.beem.BEEM_SERVICE"></uses-permission>
 	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
-	<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
+	<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="6" />
 
 </manifest> 
--- a/default.properties	Sat Dec 26 17:52:47 2009 +0100
+++ b/default.properties	Tue Dec 29 17:23:34 2009 +0100
@@ -10,5 +10,5 @@
 # Indicates whether an apk should be generated for each density.
 split.density=false
 # Project target.
-target=android-5
+target=android-6
 apk-configurations=
--- a/src/com/beem/project/beem/BeemService.java	Sat Dec 26 17:52:47 2009 +0100
+++ b/src/com/beem/project/beem/BeemService.java	Tue Dec 29 17:23:34 2009 +0100
@@ -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);
@@ -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");
     }
@@ -239,7 +246,7 @@
 	super.onStart(intent, startId);
 	Log.d(TAG, "onStart");
 	try {
-	    mConnection.connectAsync();
+	    mConnection.connectAsync();	    
 	} catch (RemoteException e) {
 	    e.printStackTrace();
 	}
--- a/src/com/beem/project/beem/ui/CreateAccount.java	Sat Dec 26 17:52:47 2009 +0100
+++ b/src/com/beem/project/beem/ui/CreateAccount.java	Tue Dec 29 17:23:34 2009 +0100
@@ -74,7 +74,6 @@
 
     private static final boolean DEFAULT_BOOLEAN_VALUE = false;
     private static final String DEFAULT_STRING_VALUE = "";
-    private static final int DEFAULT_INT_VALUE = 0;
     private static final int DEFAULT_XMPP_PORT = 5222;
 
     private static final int NOTIFICATION_DURATION = Toast.LENGTH_SHORT;
--- a/src/com/beem/project/beem/utils/BeemBroadcastReceiver.java	Sat Dec 26 17:52:47 2009 +0100
+++ b/src/com/beem/project/beem/utils/BeemBroadcastReceiver.java	Tue Dec 29 17:23:34 2009 +0100
@@ -47,10 +47,12 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.net.ConnectivityManager;
 import android.util.Log;
 import android.widget.Toast;
 
-// TODO: Auto-generated Javadoc
+import com.beem.project.beem.BeemService;
+
 /**
  * Manage broadcast disconnect intent.
  * @author nikita
@@ -76,6 +78,7 @@
 	// start activity if unexpected disconnection
 	// if (!intent.getBooleanExtra("normally", false))
 	// context.startActivity(new Intent(context, Login.class));
+	if (intent.getAction().equals(BEEM_CONNECTION_CLOSED)) {
 	CharSequence message = intent.getCharSequenceExtra("message");
 	Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
 	if (context instanceof Activity) {
@@ -83,5 +86,11 @@
 	    act.finish();
 	    // The service will be unbinded in the destroy of the activity.
 	}
+	} else if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
+	    if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
+		Log.d("Broadcast", "stopService");
+		context.stopService(new Intent(context, BeemService.class));
+	    }
+	}
     }
 }