debug
authorNikita Kozlov <nikita@beem-project.com>
Fri, 25 Sep 2009 18:25:17 +0200
changeset 392 73f7707528f0
parent 391 6dd5e802c6fb
child 393 571b95fa452c
child 399 fe0cd5cc89b9
debug
AndroidManifest.xml
src/com/beem/project/beem/ui/ChangeStatus.java
src/com/beem/project/beem/ui/ContactList.java
src/com/beem/project/beem/ui/EditSettings.java
--- a/AndroidManifest.xml	Fri Sep 25 17:57:55 2009 +0200
+++ b/AndroidManifest.xml	Fri Sep 25 18:25:17 2009 +0200
@@ -35,7 +35,12 @@
 			</intent-filter>
 		</activity>
 		<activity android:name=".ui.Subscription" android:label="@string/app_name" />
-		<activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name" />
+		<activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name">
+			<intent-filter android:label="Beem Connection">
+				<action
+					android:name="com.beem.project.beem.service.XmppConnectionAdapter.CONNECTION_CLOSED" />
+			</intent-filter>
+		</activity>
 		<activity android:name=".ui.CreateAccount" android:label="@string/create_account_name" />
 		<activity android:name=".ui.ContactList" android:label="@string/contact_list_name"
 			android:launchMode="singleTask">
@@ -44,7 +49,8 @@
 					android:name="com.beem.project.beem.service.XmppConnectionAdapter.CONNECTION_CLOSED" />
 			</intent-filter>
 		</activity>
-		<activity android:name=".jingle.demo.JingleCallActivity" android:label="JingleDemoCall">
+		<activity android:name=".jingle.demo.JingleCallActivity"
+			android:label="JingleDemoCall">
 			<intent-filter>
 				<action android:name="android.intent.action.MAIN" />
 				<category android:name="android.intent.category.LAUNCHER" />
--- a/src/com/beem/project/beem/ui/ChangeStatus.java	Fri Sep 25 17:57:55 2009 +0200
+++ b/src/com/beem/project/beem/ui/ChangeStatus.java	Fri Sep 25 18:25:17 2009 +0200
@@ -1,8 +1,11 @@
 package com.beem.project.beem.ui;
 
 import android.app.Activity;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
@@ -19,6 +22,7 @@
 
 import com.beem.project.beem.BeemService;
 import com.beem.project.beem.R;
+import com.beem.project.beem.service.XmppConnectionAdapter;
 import com.beem.project.beem.service.aidl.IXmppFacade;
 import com.beem.project.beem.utils.Status;
 
@@ -43,7 +47,13 @@
     private ArrayAdapter<String> mAdapter;
     private IXmppFacade mXmppFacade = null;
     private final ServiceConnection mServConn = new BeemServiceConnection();
-    private final OnClickListener mOnClickOk = new MyOnClickListener();
+    private final OnClickListener mOnClickOk = new MyOnClickListener();    
+    private BroadcastReceiver mReceiver;
+
+    private static final Intent SERVICE_INTENT = new Intent();
+    static {
+	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
+    }
 
     private int getPreferenceStatusIndex() {
 	return mSettings.getInt(getString(R.string.PreferenceStatus), 0);
@@ -80,6 +90,9 @@
 	return res;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
 	super.onCreate(savedInstanceState);
@@ -97,19 +110,36 @@
 	mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 	mSpinner.setAdapter(mAdapter);
 	mToast = Toast.makeText(this, R.string.ChangeStatusOk, Toast.LENGTH_LONG);
+	mReceiver = new BeemBroadcastReceiver();
 	showSettings();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onDestroy() {
 	super.onDestroy();
 	unbindService(mServConn);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onResume() {
 	super.onResume();
 	bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
+	this.registerReceiver(mReceiver, new IntentFilter(XmppConnectionAdapter.BEEM_CONNECTION_CLOSED));
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void onPause() {
+	super.onPause();
+	this.unregisterReceiver(mReceiver);
     }
 
     private void showSettings() {
@@ -170,4 +200,12 @@
 	}
     }
 
+    private class BeemBroadcastReceiver extends BroadcastReceiver {
+	@Override
+	public void onReceive(Context context, Intent intent) {
+	    stopService(SERVICE_INTENT);
+	    finish();
+	}
+    }
+    
 }
--- a/src/com/beem/project/beem/ui/ContactList.java	Fri Sep 25 17:57:55 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Fri Sep 25 18:25:17 2009 +0200
@@ -78,6 +78,9 @@
 
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onCreate(Bundle saveBundle) {
 	super.onCreate(saveBundle);
@@ -87,12 +90,18 @@
 	mReceiver = new BeemBroadcastReceiver();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onResume() {
 	super.onResume();
 	this.registerReceiver(mReceiver, new IntentFilter(XmppConnectionAdapter.BEEM_CONNECTION_CLOSED));
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void onPause() {
 	super.onPause();
--- a/src/com/beem/project/beem/ui/EditSettings.java	Fri Sep 25 17:57:55 2009 +0200
+++ b/src/com/beem/project/beem/ui/EditSettings.java	Fri Sep 25 18:25:17 2009 +0200
@@ -3,7 +3,11 @@
 import java.util.ArrayList;
 
 import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.util.Log;
@@ -21,6 +25,7 @@
 import android.widget.Toast;
 
 import com.beem.project.beem.R;
+import com.beem.project.beem.service.XmppConnectionAdapter;
 
 /**
  * This class represents an activity which allows the user to change his account or proxy parameters.
@@ -56,6 +61,12 @@
     private EditText mProxyPortField;
     private EditText mProxyUsernameField;
     private EditText mProxyPasswordField;
+    private BroadcastReceiver mReceiver;
+
+    private static final Intent SERVICE_INTENT = new Intent();
+    static {
+	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
+    }
 
     /**
      * Constructor.
@@ -356,6 +367,7 @@
 	initTabbedWindow();
 	initFields();
 	mSettings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
+	mReceiver = new BeemBroadcastReceiver();
     }
 
     /**
@@ -380,6 +392,7 @@
 		startActivity(i);
 		return true;
 	    case R.id.settings_menu_login:
+		setResult(69);
 		finish();
 		return true;
 	    default:
@@ -393,6 +406,7 @@
     @Override
     public void onResume() {
 	super.onResume();
+	this.registerReceiver(mReceiver, new IntentFilter(XmppConnectionAdapter.BEEM_CONNECTION_CLOSED));
 	refreshAccountTabFields();
 	refreshXMPPTabFields();
 	refreshProxyTabFields();
@@ -400,6 +414,14 @@
 	if (!mProxyUseCheckBox.isChecked())
 	    disableProxyParameters();
     }
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void onPause() {
+	super.onPause();
+	this.unregisterReceiver(mReceiver);
+    }
 
     /**
      * {@inheritDoc}
@@ -525,4 +547,11 @@
 	    Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
 	}
     }
+    
+    private class BeemBroadcastReceiver extends BroadcastReceiver {
+	@Override
+	public void onReceive(Context context, Intent intent) {
+	    stopService(SERVICE_INTENT);
+	}
+    }
 }