Feature #143
authornikita@localhost
Mon, 22 Jun 2009 15:59:18 +0200
changeset 256 35f81983d351
parent 255 8d0efe92412b
child 260 0ce1e306fdd3
child 261 e082fd525147
Feature #143 Debut de l'implémentation de la feature. D'apres marseille il y a des trucs qui doivent changer au niveau de la connection donc je pause a ce stade la.
AndroidManifest.xml
res/layout/accountcreation.xml
res/layout/create_account.xml
res/values/strings.xml
src/com/beem/project/beem/ui/AccountCreation.java
src/com/beem/project/beem/ui/AddContact.java
src/com/beem/project/beem/ui/ContactDialog.java
src/com/beem/project/beem/ui/ContactDialogAliasDialog.java
src/com/beem/project/beem/ui/CreateAccount.java
src/com/beem/project/beem/ui/EditSettings.java
--- a/AndroidManifest.xml	Sat Jun 20 22:42:26 2009 +0200
+++ b/AndroidManifest.xml	Mon Jun 22 15:59:18 2009 +0200
@@ -16,16 +16,11 @@
 		<activity android:name=".ui.SendIM" android:label="@string/SendIMActTitle"
 			android:launchMode="singleTop" />
 		<activity android:name=".ui.ChangeStatus" android:label="@string/ChangeStatusActTitle" />
-		<activity android:name=".ui.AccountCreation" android:label="@string/app_name" />
 		<activity android:name=".ui.AddContact" android:label="@string/AddCActTitle" />
 		<activity android:name=".ui.Subscription" android:label="@string/app_name" />
-		<activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name">
-		</activity>
-		<activity android:name=".ui.CreateAccount" android:label="@string/create_account_name">
-		</activity>
-		<activity android:name=".ui.ContactList" android:label="@string/contact_list_name"
-			android:launchMode="singleTask">
-		</activity>
+		<activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name" />
+		<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" />
 		<service android:name="BeemService" android:enabled="true"
 			android:label="Beem Service" android:permission="com.beem.project.beem.BEEM_SERVICE">
 			<intent-filter>
@@ -40,6 +35,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.PROCESS_OUTGOING_CALLS"></uses-permission>
-	<uses-sdk android:minSdkVersion="3"></uses-sdk>
+	<uses-sdk android:minSdkVersion="2"></uses-sdk>
 
 </manifest> 
--- a/res/layout/accountcreation.xml	Sat Jun 20 22:42:26 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-	android:orientation="vertical" android:layout_width="fill_parent"
-	android:layout_height="fill_parent">
-	<LinearLayout android:orientation="horizontal"
-		android:layout_width="fill_parent" android:layout_height="wrap_content">
-		<TextView android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:text="@string/ACLogin"
-			android:minWidth="70dp" />
-
-		<EditText android:id="@+id/ac_login" android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:singleLine="true"
-			android:textSize="16sp" android:autoText="false" android:capitalize="none"
-			android:minWidth="150dp" android:scrollHorizontally="true" />
-	</LinearLayout>
-
-	<LinearLayout android:orientation="horizontal"
-		android:layout_width="fill_parent" android:layout_height="wrap_content">
-		<TextView android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:text="@string/ACEmail"
-			android:minWidth="70dp" />
-		<EditText android:id="@+id/ac_email" android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:singleLine="true"
-			android:textSize="16sp" android:autoText="false" android:minWidth="250dp"
-			android:capitalize="none" android:scrollHorizontally="true" />
-	</LinearLayout>
-	<LinearLayout android:orientation="horizontal"
-		android:layout_width="fill_parent" android:layout_height="wrap_content">
-		<TextView android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:text="@string/ACPassword"
-			android:minWidth="70dp" />
-		<EditText android:id="@+id/ac_password" android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:singleLine="true"
-			android:password="true" android:textSize="16sp" android:autoText="false"
-			android:minWidth="250dp" android:capitalize="none"
-			android:scrollHorizontally="true" />
-	</LinearLayout>
-	<LinearLayout android:orientation="horizontal"
-		android:layout_width="fill_parent" android:layout_height="wrap_content">
-		<TextView android:layout_width="wrap_content"
-			android:layout_height="wrap_content" android:text="@string/ACRepeat"
-			android:minWidth="70dp" />
-		<EditText android:id="@+id/ac_password2"
-			android:layout_width="wrap_content" android:layout_height="wrap_content"
-			android:singleLine="true" android:password="true" android:textSize="16sp"
-			android:autoText="false" android:minWidth="250dp" android:capitalize="none"
-			android:scrollHorizontally="true" />
-	</LinearLayout>
-
-	<Button android:id="@+id/ac_ok" android:layout_width="fill_parent"
-		android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
-		android:text="@string/ACOkButton">
-		<requestFocus />
-	</Button>
-</LinearLayout>
\ No newline at end of file
--- a/res/layout/create_account.xml	Sat Jun 20 22:42:26 2009 +0200
+++ b/res/layout/create_account.xml	Mon Jun 22 15:59:18 2009 +0200
@@ -1,48 +1,34 @@
 <?xml version="1.0" encoding="utf-8"?>
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-	android:orientation="vertical"
-   	android:layout_width="fill_parent"
-    android:layout_height="fill_parent">
-	<LinearLayout
-		android:layout_width="fill_parent"
-		android:layout_height="fill_parent"
-		android:orientation="vertical"
+	android:orientation="vertical" android:layout_width="fill_parent"
+	android:layout_height="fill_parent">
+	<LinearLayout android:layout_width="fill_parent"
+		android:layout_height="fill_parent" android:orientation="vertical"
 		android:padding="10dip">
-    	<TextView android:id="@+id/create_account_label_username"
-    		android:layout_width="fill_parent"
-    		android:layout_height="wrap_content"
-  			android:text="@string/create_account_username"
-    		style="@style/Label" />
+		<TextView android:id="@+id/create_account_label_username"
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
+			android:text="@string/create_account_username" style="@style/Label" />
 		<EditText android:id="@+id/create_account_username"
-			android:layout_width="fill_parent"
-			android:layout_height="wrap_content"
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
 			android:singleLine="true" />
-    	<TextView android:id="@+id/create_account_label_password"
-    		android:layout_width="fill_parent"
-    		android:layout_height="wrap_content"
-    		android:text="@string/create_account_password"
-    		style="@style/Label" />
+		<TextView android:id="@+id/create_account_label_password"
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
+			android:text="@string/create_account_password" style="@style/Label" />
 		<EditText android:id="@+id/create_account_password"
-			android:layout_width="fill_parent"
-			android:layout_height="wrap_content"
-			android:password="true"
-			android:singleLine="true" />
-    	<TextView android:id="@+id/create_account_label_confirm_password"
-    		android:layout_width="fill_parent"
-    		android:layout_height="wrap_content"
-    		android:text="@string/create_account_confirm_password"
-    		style="@style/Label" />
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
+			android:password="true" android:singleLine="true" />
+		<TextView android:id="@+id/create_account_label_confirm_password"
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
+			android:text="@string/create_account_confirm_password" style="@style/Label" />
 		<EditText android:id="@+id/create_account_confirm_password"
-			android:layout_width="fill_parent"
-			android:layout_height="wrap_content"
-			android:password="true"
-			android:singleLine="true" />
-    	<View
-    		android:layout_height="21dp"
-    		android:layout_width="fill_parent" />
+			android:layout_width="fill_parent" android:layout_height="wrap_content"
+			android:password="true" android:singleLine="true" />
+		<View android:layout_height="21dp" android:layout_width="fill_parent" />
 		<Button android:id="@+id/create_account_button"
-			android:layout_width="fill_parent"
-			android:layout_height="fill_parent"
+			android:layout_width="fill_parent" android:layout_height="fill_parent"
 			android:text="@string/button_create_account" />
+		<Button android:id="@+id/create_account_login_button"
+			android:layout_width="fill_parent" android:layout_height="fill_parent"
+			android:text="@string/button_create_login_account" />
 	</LinearLayout>
 </ScrollView>
--- a/res/values/strings.xml	Sat Jun 20 22:42:26 2009 +0200
+++ b/res/values/strings.xml	Mon Jun 22 15:59:18 2009 +0200
@@ -65,6 +65,7 @@
 	<string name="ACPassword">Password:</string>
 	<string name="ACRepeat">Repeat:</string>
 	<string name="ACOkButton">Ok</string>
+	<string name="ACOkLoginButton">Log with</string>
 	<string name="ACBadForm">Bad form</string>
 	<string name="ACCreated">Account created</string>
 	
@@ -140,6 +141,7 @@
     <string name="button_login">Login</string>
     <string name="button_save">Save</string>
     <string name="button_create_account">Create this account</string>
+    <string name="button_create_login_account">Create and log</string>
     
     
     <!--
--- a/src/com/beem/project/beem/ui/AccountCreation.java	Sat Jun 20 22:42:26 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/**
- * 
- */
-package com.beem.project.beem.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jivesoftware.smack.AccountManager;
-import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-
-import android.app.Activity;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import com.beem.project.beem.R;
-
-/**
- * @author nikita
- */
-public class AccountCreation extends Activity {
-
-    protected static final String TAG         = "AccountCreation";
-    private SharedPreferences     mSettings;
-    Map<String, String>           mAttributes = new HashMap<String, String>();
-
-    private OnClickListener       mOkListener = new OnClickListener() {
-
-	                                          @Override
-	                                          public void onClick(View v) {
-		                                      boolean valid = true;
-		                                      if (getWidgetText(R.id.ac_login).length() == 0) {
-		                                          valid = false;
-		                                      } else {
-		                                          mAttributes.put("login", getWidgetText(R.id.ac_login));
-		                                          mAttributes.put("name", getWidgetText(R.id.ac_login));
-		                                      }
-		                                      if (getWidgetText(R.id.ac_password).length() == 0
-		                                              || !getWidgetText(R.id.ac_password).contains(
-		                                                      getWidgetText(R.id.ac_password2))) {
-		                                          valid = false;
-
-		                                      } else {
-		                                          mAttributes.put("password", getWidgetText(R.id.ac_password));
-		                                      }
-		                                      if (getWidgetText(R.id.ac_email).length() == 0) {
-		                                          valid = false;
-		                                      } else {
-		                                          mAttributes.put("email", getWidgetText(R.id.ac_email));
-		                                      }
-
-		                                      if (valid) {
-		                                          setResult(RESULT_OK);
-		                                          try {
-			                                      createAccount();
-			                                      Toast
-			                                              .makeText(AccountCreation.this,
-			                                                      getString(R.string.ACCreated),
-			                                                      Toast.LENGTH_SHORT).show();
-			                                      finish();
-		                                          } catch (XMPPException e) {
-			                                      Log.e(TAG, "Account creation failed", e);
-			                                      Toast.makeText(AccountCreation.this, e.getMessage(),
-			                                              Toast.LENGTH_SHORT).show();
-			                                      e.printStackTrace();
-		                                          }
-		                                      } else {
-		                                          Toast.makeText(AccountCreation.this,
-		                                                  getString(R.string.ACBadForm), Toast.LENGTH_SHORT)
-		                                                  .show();
-		                                          setResult(RESULT_CANCELED);
-		                                      }
-
-	                                          }
-	                                      };
-
-    protected void createAccount() throws XMPPException {
-	String mHost = mSettings.getString(getString(R.string.PreferenceHostKey), "");
-	XMPPConnection xmmpCo = new XMPPConnection(new ConnectionConfiguration(mHost));
-	xmmpCo.connect();
-	AccountManager accM = new AccountManager(xmmpCo);
-	accM.createAccount(mAttributes.get("login"), mAttributes.get("password"), mAttributes);
-	xmmpCo.disconnect();
-	SharedPreferences.Editor editor = mSettings.edit();
-
-	editor.putString(getString(R.string.PreferenceLoginKey), mAttributes.get("login"));
-	editor.putString(getString(R.string.PreferencePasswordKey), mAttributes.get("password"));
-	editor.commit();
-    }
-
-    private String getWidgetText(int id) {
-	EditText widget = (EditText) this.findViewById(id);
-	return widget.getText().toString();
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-	super.onCreate(savedInstanceState);
-	setContentView(R.layout.accountcreation);
-	Button ok = (Button) findViewById(R.id.ac_ok);
-	mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE);
-	ok.setOnClickListener(mOkListener);
-    }
-}
--- a/src/com/beem/project/beem/ui/AddContact.java	Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/AddContact.java	Mon Jun 22 15:59:18 2009 +0200
@@ -28,81 +28,81 @@
  */
 public class AddContact extends Activity {
 
-	protected static final String TAG = "AddContact";
-	private String mLogin;
-	private String mAlias;
-	private final List<String> mGroup = new ArrayList<String>();
-	private IXmppFacade xmppFacade;
-	private final ServiceConnection mServConn = new BeemServiceConnection();
+    protected static final String TAG = "AddContact";
+    private String mLogin;
+    private String mAlias;
+    private final List<String> mGroup = new ArrayList<String>();
+    private IXmppFacade xmppFacade;
+    private final ServiceConnection mServConn = new BeemServiceConnection();
 
-	private final OnClickListener mOkListener = new OnClickListener() {
+    private final OnClickListener mOkListener = new OnClickListener() {
 
-		@Override
-		public void onClick(View v) {
-			boolean valid = true;
-			if (getWidgetText(R.id.addc_login).length() == 0) {
-				valid = false;
-			} else {
-				mLogin = getWidgetText(R.id.addc_login);
-			}
-			if (getWidgetText(R.id.addc_alias).length() == 0) {
-				valid = false;
-			} else {
-				mAlias = getWidgetText(R.id.addc_alias);
-			}
-			if (getWidgetText(R.id.addc_group).length() == 0) {
-				valid = false;
-			} else {
-				mGroup.add(getWidgetText(R.id.addc_group));
-			}
-			if (valid) {
-				try {
-					xmppFacade.getRoster().addContact(mLogin, mAlias, mGroup.toArray(new String[mGroup.size()]));
-					Toast.makeText(AddContact.this, getString(R.string.AddCContactAdded), Toast.LENGTH_SHORT).show();
-					finish();
-				} catch (RemoteException e) {
-					Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show();
-					e.printStackTrace();
-				}
-				setResult(RESULT_OK);
-			} else {
-				Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show();
-				setResult(RESULT_CANCELED);
-			}
+	@Override
+	public void onClick(View v) {
+	    boolean valid = true;
+	    if (getWidgetText(R.id.addc_login).length() == 0) {
+		valid = false;
+	    } else {
+		mLogin = getWidgetText(R.id.addc_login);
+	    }
+	    if (getWidgetText(R.id.addc_alias).length() == 0) {
+		valid = false;
+	    } else {
+		mAlias = getWidgetText(R.id.addc_alias);
+	    }
+	    if (getWidgetText(R.id.addc_group).length() == 0) {
+		valid = false;
+	    } else {
+		mGroup.add(getWidgetText(R.id.addc_group));
+	    }
+	    if (valid) {
+		try {
+		    xmppFacade.getRoster().addContact(mLogin, mAlias, mGroup.toArray(new String[mGroup.size()]));
+		    Toast.makeText(AddContact.this, getString(R.string.AddCContactAdded), Toast.LENGTH_SHORT).show();
+		    finish();
+		} catch (RemoteException e) {
+		    Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show();
+		    e.printStackTrace();
+		}
+		setResult(RESULT_OK);
+	    } else {
+		Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show();
+		setResult(RESULT_CANCELED);
+	    }
 
-		}
-	};
+	}
+    };
+
+    private String getWidgetText(int id) {
+	EditText widget = (EditText) this.findViewById(id);
+	return widget.getText().toString();
+    }
 
-	private String getWidgetText(int id) {
-		EditText widget = (EditText) this.findViewById(id);
-		return widget.getText().toString();
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+	super.onCreate(savedInstanceState);
+	setContentView(R.layout.addcontact);
+	Button ok = (Button) findViewById(R.id.addc_ok);
+	ok.setOnClickListener(mOkListener);
+	bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
+    }
+
+    @Override
+    protected void onDestroy() {
+	super.onDestroy();
+	unbindService(mServConn);
+    }
+
+    private class BeemServiceConnection implements ServiceConnection {
+
+	@Override
+	public void onServiceConnected(ComponentName name, IBinder service) {
+	    xmppFacade = IXmppFacade.Stub.asInterface(service);
 	}
 
 	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		setContentView(R.layout.addcontact);
-		Button ok = (Button) findViewById(R.id.addc_ok);
-		ok.setOnClickListener(mOkListener);
-		bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
-	}
-	
-	@Override
-	protected void onDestroy() {
-		super.onDestroy();
-		unbindService(mServConn);
+	public void onServiceDisconnected(ComponentName name) {
+	    xmppFacade = null;
 	}
-
-	private class BeemServiceConnection implements ServiceConnection {
-
-		@Override
-		public void onServiceConnected(ComponentName name, IBinder service) {
-			xmppFacade = IXmppFacade.Stub.asInterface(service);
-		}
-
-		@Override
-		public void onServiceDisconnected(ComponentName name) {
-			xmppFacade = null;
-		}
-	}
+    }
 }
--- a/src/com/beem/project/beem/ui/ContactDialog.java	Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java	Mon Jun 22 15:59:18 2009 +0200
@@ -23,107 +23,107 @@
 
 public class ContactDialog extends Dialog {
 
-	public static final String TAG = "Option Dialog";
-	private final Contact mContact;
-	private final Context mContext;
-	private IXmppFacade xmppFacade = null;
-	private final ServiceConnection mServConn = new BeemServiceConnection();
+    public static final String TAG = "Option Dialog";
+    private final Contact mContact;
+    private final Context mContext;
+    private IXmppFacade xmppFacade = null;
+    private final ServiceConnection mServConn = new BeemServiceConnection();
 
-	public ContactDialog(final Context context, Contact curContact) {
-		super(context);
-		mContext = context;
+    public ContactDialog(final Context context, Contact curContact) {
+	super(context);
+	mContext = context;
+
+	setContentView(R.layout.contactdialog);
+	mContact = curContact;
+	setTitle(curContact.getJID());
 
-		setContentView(R.layout.contactdialog);
-		mContact = curContact;
-		setTitle(curContact.getJID());
+	Button button = (Button) findViewById(R.id.CDChat);
+	button.setOnClickListener(new chatListener());
+	button = (Button) findViewById(R.id.CDAlias);
+	button.setOnClickListener(new aliasListener());
+	button = (Button) findViewById(R.id.CDGroup);
+	button.setOnClickListener(new groupListener());
+	button = (Button) findViewById(R.id.CDResend);
+	button.setOnClickListener(new resendListener());
+	button = (Button) findViewById(R.id.CDInfos);
+	button.setOnClickListener(new infosListener());
 
-		Button button = (Button) findViewById(R.id.CDChat);
-		button.setOnClickListener(new chatListener());
-		button = (Button) findViewById(R.id.CDAlias);
-		button.setOnClickListener(new aliasListener());
-		button = (Button) findViewById(R.id.CDGroup);
-		button.setOnClickListener(new groupListener());
-		button = (Button) findViewById(R.id.CDResend);
-		button.setOnClickListener(new resendListener());
-		button = (Button) findViewById(R.id.CDInfos);
-		button.setOnClickListener(new infosListener());
+	mContext.bindService(new Intent(mContext, BeemService.class), mServConn, Service.BIND_AUTO_CREATE);
+    }
+
+    class aliasListener implements View.OnClickListener {
 
-		mContext.bindService(new Intent(mContext, BeemService.class), mServConn, Service.BIND_AUTO_CREATE);
+	@Override
+	public void onClick(View v) {
+
+	    ContactDialogAliasDialog dialog = new ContactDialogAliasDialog(mContext, mContact);
+	    dialog.setOwnerActivity(ContactDialog.this.getOwnerActivity());
+	    dialog.initService(xmppFacade);
+	    dialog.show();
 	}
 
-	class aliasListener implements View.OnClickListener {
+    }
 
-		@Override
-		public void onClick(View v) {
+    class chatListener implements View.OnClickListener {
 
-			ContactDialogAliasDialog dialog = new ContactDialogAliasDialog(mContext, mContact);
-			dialog.setOwnerActivity(ContactDialog.this.getOwnerActivity());
-			dialog.initService(xmppFacade);
-			dialog.show();
-		}
-
+	@Override
+	public void onClick(View v) {
+	    Activity a = ContactDialog.this.getOwnerActivity();
+	    Intent i = new Intent(mContext, SendIM.class);
+	    i.setData(mContact.toUri());
+	    a.startActivity(i);
+	    dismiss();
 	}
 
-	class chatListener implements View.OnClickListener {
+    }
+
+    class groupListener implements View.OnClickListener {
 
-		@Override
-		public void onClick(View v) {
-			Activity a = ContactDialog.this.getOwnerActivity();
-			Intent i = new Intent(mContext, SendIM.class);
-			i.setData(mContact.toUri());
-			a.startActivity(i);
-			dismiss();
-		}
-
+	@Override
+	public void onClick(View v) {
+	    // TODO Auto-generated method stub
+	    dismiss();
 	}
 
-	class groupListener implements View.OnClickListener {
+    }
+
+    class infosListener implements View.OnClickListener {
 
-		@Override
-		public void onClick(View v) {
-			// TODO Auto-generated method stub
-			dismiss();
-		}
-
+	@Override
+	public void onClick(View v) {
+	    // TODO Auto-generated method stub
+	    dismiss();
 	}
 
-	class infosListener implements View.OnClickListener {
+    }
+
+    class resendListener implements View.OnClickListener {
 
-		@Override
-		public void onClick(View v) {
-			// TODO Auto-generated method stub
-			dismiss();
-		}
-
+	@Override
+	public void onClick(View v) {
+	    Presence presencePacket = new Presence(Presence.Type.subscribe);
+	    presencePacket.setTo(mContact.getJID());
+	    try {
+		xmppFacade.sendPresencePacket(new PresenceAdapter(presencePacket));
+	    } catch (RemoteException e) {
+		Log.e(TAG, "resend subscription error", e);
+	    }
+	    dismiss();
 	}
 
-	class resendListener implements View.OnClickListener {
+    }
+
+    private class BeemServiceConnection implements ServiceConnection {
 
-		@Override
-		public void onClick(View v) {
-			Presence presencePacket = new Presence(Presence.Type.subscribe);
-			presencePacket.setTo(mContact.getJID());
-			try {
-				xmppFacade.sendPresencePacket(new PresenceAdapter(presencePacket));
-			} catch (RemoteException e) {
-				Log.e(TAG, "resend subscription error", e);
-			}
-			dismiss();
-		}
-
+	@Override
+	public void onServiceConnected(ComponentName name, IBinder service) {
+	    xmppFacade = IXmppFacade.Stub.asInterface(service);
 	}
 
-	private class BeemServiceConnection implements ServiceConnection {
-
-		@Override
-		public void onServiceConnected(ComponentName name, IBinder service) {
-			xmppFacade = IXmppFacade.Stub.asInterface(service);
-		}
-
-		@Override
-		public void onServiceDisconnected(ComponentName name) {
-			xmppFacade = null;
-		}
+	@Override
+	public void onServiceDisconnected(ComponentName name) {
+	    xmppFacade = null;
 	}
+    }
 
 }
--- a/src/com/beem/project/beem/ui/ContactDialogAliasDialog.java	Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialogAliasDialog.java	Mon Jun 22 15:59:18 2009 +0200
@@ -20,38 +20,37 @@
  */
 public class ContactDialogAliasDialog extends Dialog {
 
-	protected static final String TAG = "CAlias";
-	//private String      mName;
-	private Contact     mContact;
-	private IXmppFacade mService;
+    protected static final String TAG = "CAlias";
+    private Contact     mContact;
+    private IXmppFacade mService;
 
-	public ContactDialogAliasDialog(Context context, Contact contact) {
-		super(context);
-		setContentView(R.layout.contactdialogaliasdialog);
-		setTitle("Alias");
-		mContact = contact;
-		EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
-		nameText.setText(mContact.getName());
+    public ContactDialogAliasDialog(Context context, Contact contact) {
+	super(context);
+	setContentView(R.layout.contactdialogaliasdialog);
+	setTitle("Alias");
+	mContact = contact;
+	EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
+	nameText.setText(mContact.getName());
 
-		Button ok = (Button) findViewById(R.id.CDAliasDialogOk);
-		ok.setOnClickListener(new View.OnClickListener() {
+	Button ok = (Button) findViewById(R.id.CDAliasDialogOk);
+	ok.setOnClickListener(new View.OnClickListener() {
 
-			@Override
-			public void onClick(View v) {
-				EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
-				try {
-					Log.d(TAG, mContact.getJID() + nameText.getText().toString());
-					mService.getRoster().setContactName(mContact.getJID(), nameText.getText().toString());
-				} catch (RemoteException e) {
-					e.printStackTrace();
-				}
-				dismiss();
-			}
+	    @Override
+	    public void onClick(View v) {
+		EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
+		try {
+		    Log.d(TAG, mContact.getJID() + nameText.getText().toString());
+		    mService.getRoster().setContactName(mContact.getJID(), nameText.getText().toString());
+		} catch (RemoteException e) {
+		    e.printStackTrace();
+		}
+		dismiss();
+	    }
 
-		});
-	}
+	});
+    }
 
-	public void initService(IXmppFacade service) {
-		mService = service;
-	}
+    public void initService(IXmppFacade service) {
+	mService = service;
+    }
 }
--- a/src/com/beem/project/beem/ui/CreateAccount.java	Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/CreateAccount.java	Mon Jun 22 15:59:18 2009 +0200
@@ -38,6 +38,18 @@
     private SharedPreferences    settings              = null;
     private Button               createAccountButton   = null;
 
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+	super.onCreate(savedInstanceState);
+	setContentView(R.layout.create_account);
+	initCreateAccountButton();
+	settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
+    }
+
     /**
      * Check if the fields password and confirm password match
      * 
@@ -46,7 +58,7 @@
     private boolean checkPasswords() {
 	final String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText().toString();
 	final String passwordConfirmFielddValue = ((EditText) findViewById(R.id.create_account_confirm_password))
-	        .getText().toString();
+	.getText().toString();
 
 	if (passwordFieldValue.equals(passwordConfirmFielddValue))
 	    return (true);
@@ -56,13 +68,13 @@
     /**
      * Create an account on the XMPP server specified in settings
      */
-    private void createAccount(String username, String password) {
+    private boolean createAccount(String username, String password) {
 	XMPPConnection xmppConnection = null;
 	ConnectionConfiguration connectionConfiguration = null;
 
 	if (getRegisteredProxy() != null) {
 	    connectionConfiguration = new ConnectionConfiguration(getRegisteredXMPPServer(), getRegisteredXMPPPort(),
-		    getRegisteredProxy());
+		getRegisteredProxy());
 	} else {
 	    connectionConfiguration = new ConnectionConfiguration(getRegisteredXMPPServer(), getRegisteredXMPPPort());
 	}
@@ -75,13 +87,15 @@
 	    AccountManager accountManager = new AccountManager(xmppConnection);
 	    accountManager.createAccount(username, password);
 	    Toast toast = Toast.makeText(getApplicationContext(), "Account " + username + " "
-		    + getString(R.string.create_account_successfull_after), NOTIFICATION_DURATION);
+		+ getString(R.string.create_account_successfull_after), NOTIFICATION_DURATION);
 	    toast.show();
 	} catch (XMPPException e) {
 	    Log.e(getString(R.string.create_account_tag), e.getMessage());
 	    createErrorDialog(e.getMessage());
+	    return false;
 	}
 	xmppConnection.disconnect();
+	return true;
     }
 
     /**
@@ -113,7 +127,7 @@
     private ProxyInfo getRegisteredProxy() {
 	if (getRegisteredProxyUse()) {
 	    ProxyInfo proxyInfo = new ProxyInfo(getRegisteredProxyType(), getRegisteredProxyServer(),
-		    getRegisteredProxyPort(), getRegisteredProxyUsername(), getRegisteredProxyPassword());
+		getRegisteredProxyPort(), getRegisteredProxyUsername(), getRegisteredProxyPassword());
 	    return (proxyInfo);
 	}
 	return (null);
@@ -153,15 +167,15 @@
      */
     private ProxyInfo.ProxyType getRegisteredProxyType() {
 	switch (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE)) {
-	case 0:
-	    return ProxyInfo.ProxyType.HTTP;
-	case 1:
-	    return ProxyInfo.ProxyType.SOCKS4;
-	case 2:
-	    Log.i(getString(R.string.create_account_tag), "SOCKS5 PROXY");
-	    return ProxyInfo.ProxyType.SOCKS5;
-	default:
-	    return ProxyInfo.ProxyType.NONE;
+	    case 0:
+		return ProxyInfo.ProxyType.HTTP;
+	    case 1:
+		return ProxyInfo.ProxyType.SOCKS4;
+	    case 2:
+		Log.i(getString(R.string.create_account_tag), "SOCKS5 PROXY");
+		return ProxyInfo.ProxyType.SOCKS5;
+	    default:
+		return ProxyInfo.ProxyType.NONE;
 	}
     }
 
@@ -216,12 +230,11 @@
     private void initCreateAccountButton() {
 	createAccountButton = (Button) findViewById(R.id.create_account_button);
 	createAccountButton.setOnClickListener(new View.OnClickListener() {
-
 	    public void onClick(View v) {
 		String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
-		        .toString();
+		.toString();
 		String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
-		        .toString();
+		.toString();
 
 		if (!checkPasswords())
 		    createErrorDialog(getString(R.string.create_account_err_passwords));
@@ -229,16 +242,26 @@
 		    createAccount(usernameFieldValue, passwordFieldValue);
 	    }
 	});
-    }
+	Button createAccountLoginButton = (Button) findViewById(R.id.create_account_login_button);
+	createAccountLoginButton.setOnClickListener(new View.OnClickListener() {
+	    public void onClick(View v) {
+		String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
+		.toString();
+		String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
+		.toString();
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-	super.onCreate(savedInstanceState);
-	setContentView(R.layout.create_account);
-	initCreateAccountButton();
-	settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
-    }
+		if (!checkPasswords())
+		    createErrorDialog(getString(R.string.create_account_err_passwords));
+		else {
+		    if (createAccount(usernameFieldValue, passwordFieldValue)) {
+			SharedPreferences.Editor settingsEditor = settings.edit();
+			settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
+			settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
+			settingsEditor.commit();
+			finish();
+		    }
+		}
+	    }
+	});
+    }	
 }
--- a/src/com/beem/project/beem/ui/EditSettings.java	Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/EditSettings.java	Mon Jun 22 15:59:18 2009 +0200
@@ -30,485 +30,485 @@
  */
 public class EditSettings extends Activity {
 
-    private final static String  LOG_MSG_SETTINGS_SAVED              = "Settings saved successfully.";
-    private final static String  LOG_MSG_XMPP_SETTINGS_REGISTERED    = "XMPP Settings has been registered.";
-    private final static String  LOG_MSG_ACCOUNT_SETTINGS_REGISTERED = "Account Settings has been registered.";
-    private final static String  LOG_MSG_PROXY_SETTINGS_REGISTERED   = "Proxy Settings has been registered.";
-
-    private final static boolean DEFAULT_BOOLEAN_VALUE               = false;
-    private final static String  DEFAULT_STRING_VALUE                = "";
-    private final static int     DEFAULT_INT_VALUE                   = 0;
-
-    private final static String  DEFAULT_XMPP_PORT                   = "5222";
+	private final static String  LOG_MSG_SETTINGS_SAVED              = "Settings saved successfully.";
+	private final static String  LOG_MSG_XMPP_SETTINGS_REGISTERED    = "XMPP Settings has been registered.";
+	private final static String  LOG_MSG_ACCOUNT_SETTINGS_REGISTERED = "Account Settings has been registered.";
+	private final static String  LOG_MSG_PROXY_SETTINGS_REGISTERED   = "Proxy Settings has been registered.";
 
-    private final static int     NOTIFICATION_DURATION               = Toast.LENGTH_SHORT;
-
-    private SharedPreferences    settings                            = null;
+	private final static boolean DEFAULT_BOOLEAN_VALUE               = false;
+	private final static String  DEFAULT_STRING_VALUE                = "";
+	private final static int     DEFAULT_INT_VALUE                   = 0;
 
-    private EditText             accUsernameField                    = null;
-    private EditText             accPasswordField                    = null;
-
-    private EditText             xmppServerField                     = null;
-    private EditText             xmppPortField                       = null;
-    private CheckBox             xmppUseTLSCheckBox                  = null;
+	private final static String  DEFAULT_XMPP_PORT                   = "5222";
 
-    private CheckBox             proxyUseCheckBox                    = null;
-    private Spinner              proxyTypeSpinner                    = null;
-    private EditText             proxyServerField                    = null;
-    private EditText             proxyPortField                      = null;
-    private EditText             proxyUsernameField                  = null;
-    private EditText             proxyPasswordField                  = null;
+	private final static int     NOTIFICATION_DURATION               = Toast.LENGTH_SHORT;
+
+	private SharedPreferences    settings                            = null;
 
-    /**
-     * Add a labeled "Account" tab on the tabbed window view passed by parameter
-     * 
-     * @param tHost
-     *            a tabbed window view
-     */
-    private void addAccountTab(TabHost tHost) {
-	TabHost.TabSpec accountTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_account));
-	accountTab.setIndicator(getString(R.string.settings_tab_label_account));
-	accountTab.setContent(R.id.settings_account);
-	tHost.addTab(accountTab);
-    }
+	private EditText             accUsernameField                    = null;
+	private EditText             accPasswordField                    = null;
 
-    /**
-     * Add a labeled "Proxy" tab on the tabbed window view passed by parameter
-     * 
-     * @param tHost
-     *            a tabbed window view
-     */
-    private void addProxyTab(TabHost tHost) {
-	TabHost.TabSpec proxyTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_proxy));
-	proxyTab.setIndicator(getString(R.string.settings_tab_label_proxy));
-	proxyTab.setContent(R.id.settings_proxy);
-	tHost.addTab(proxyTab);
-    }
+	private EditText             xmppServerField                     = null;
+	private EditText             xmppPortField                       = null;
+	private CheckBox             xmppUseTLSCheckBox                  = null;
 
-    /**
-     * Add a labeled "XMPP" tab on the tabbed window view passed by parameter
-     * 
-     * @param tHost
-     *            a tabbed window view
-     */
-    private void addXMPPTab(TabHost tHost) {
-	TabHost.TabSpec personalTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_xmpp));
-	personalTab.setIndicator(getString(R.string.settings_tab_label_xmpp));
-	personalTab.setContent(R.id.settings_xmpp);
-	tHost.addTab(personalTab);
-    }
-
-    /**
-     * Disable proxy parameters fields
-     */
-    private void disableProxyParameters() {
-	proxyTypeSpinner.setEnabled(false);
-	proxyServerField.setEnabled(false);
-	proxyPortField.setEnabled(false);
-	proxyUsernameField.setEnabled(false);
-	proxyPasswordField.setEnabled(false);
-    }
-
-    private void displayNotification(CharSequence msg) {
-	Toast toast = Toast.makeText(getApplicationContext(), msg, NOTIFICATION_DURATION);
-	toast.show();
-    }
+	private CheckBox             proxyUseCheckBox                    = null;
+	private Spinner              proxyTypeSpinner                    = null;
+	private EditText             proxyServerField                    = null;
+	private EditText             proxyPortField                      = null;
+	private EditText             proxyUsernameField                  = null;
+	private EditText             proxyPasswordField                  = null;
 
-    /**
-     * Enable proxy parameters fields
-     */
-    private void enableProxyParameters() {
-	proxyTypeSpinner.setEnabled(true);
-	proxyServerField.setEnabled(true);
-	proxyPortField.setEnabled(true);
-	proxyUsernameField.setEnabled(true);
-	proxyPasswordField.setEnabled(true);
-    }
+	/**
+	 * Add a labeled "Account" tab on the tabbed window view passed by parameter
+	 * 
+	 * @param tHost
+	 *            a tabbed window view
+	 */
+	private void addAccountTab(TabHost tHost) {
+		TabHost.TabSpec accountTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_account));
+		accountTab.setIndicator(getString(R.string.settings_tab_label_account));
+		accountTab.setContent(R.id.settings_account);
+		tHost.addTab(accountTab);
+	}
 
-    /**
-     * Retrieve the value of a CheckBox
-     * 
-     * @param viewId
-     * @return true if the CheckBox is checked, else false
-     */
-    private boolean getCheckBoxValue(int viewId) {
-	final CheckBox checkBox = (CheckBox) findViewById(viewId);
-	if (checkBox.isChecked())
-	    return (true);
-	return (false);
-    }
-
-    /**
-     * Retrieve account password from the preferences
-     * 
-     * @return Registered account password
-     */
-    private String getRegisteredAccountPassword() {
-	return (settings.getString(getString(R.string.settings_key_account_password), DEFAULT_STRING_VALUE));
-    }
+	/**
+	 * Add a labeled "Proxy" tab on the tabbed window view passed by parameter
+	 * 
+	 * @param tHost
+	 *            a tabbed window view
+	 */
+	private void addProxyTab(TabHost tHost) {
+		TabHost.TabSpec proxyTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_proxy));
+		proxyTab.setIndicator(getString(R.string.settings_tab_label_proxy));
+		proxyTab.setContent(R.id.settings_proxy);
+		tHost.addTab(proxyTab);
+	}
 
-    /**
-     * Retrieve account username from the preferences
-     * 
-     * @return Registered account username
-     */
-    private String getRegisteredAccountUsername() {
-	return (settings.getString(getString(R.string.settings_key_account_username), DEFAULT_STRING_VALUE));
-    }
-
-    /**
-     * Retrieve proxy password from the preferences
-     * 
-     * @return Registered proxy password
-     */
-    private String getRegisteredProxyPassword() {
-	return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
-    }
-
-    /**
-     * Retrieve proxy port from the preferences
-     * 
-     * @return Registered proxy port
-     */
-    private String getRegisteredProxyPort() {
-	return (settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE));
-    }
+	/**
+	 * Add a labeled "XMPP" tab on the tabbed window view passed by parameter
+	 * 
+	 * @param tHost
+	 *            a tabbed window view
+	 */
+	private void addXMPPTab(TabHost tHost) {
+		TabHost.TabSpec personalTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_xmpp));
+		personalTab.setIndicator(getString(R.string.settings_tab_label_xmpp));
+		personalTab.setContent(R.id.settings_xmpp);
+		tHost.addTab(personalTab);
+	}
 
-    /**
-     * Retrieve proxy server from the preferences
-     * 
-     * @return Registered proxy server
-     */
-    private String getRegisteredProxyServer() {
-	return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
-    }
+	/**
+	 * Disable proxy parameters fields
+	 */
+	private void disableProxyParameters() {
+		proxyTypeSpinner.setEnabled(false);
+		proxyServerField.setEnabled(false);
+		proxyPortField.setEnabled(false);
+		proxyUsernameField.setEnabled(false);
+		proxyPasswordField.setEnabled(false);
+	}
 
-    /**
-     * Retrieve proxy type from the preferences
-     * 
-     * @return Registered proxy type
-     */
-    private int getRegisteredProxyType() {
-	return (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE));
-    }
-
-    /**
-     * Retrieve proxy use from the preferences
-     * 
-     * @return Registered proxy use
-     */
-    private boolean getRegisteredProxyUse() {
-	return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
-    }
+	private void displayNotification(CharSequence msg) {
+		Toast toast = Toast.makeText(getApplicationContext(), msg, NOTIFICATION_DURATION);
+		toast.show();
+	}
 
-    /**
-     * Retrieve proxy username from the preferences
-     * 
-     * @return Registered proxy username
-     */
-    private String getRegisteredProxyUsername() {
-	return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
-    }
-
-    /**
-     * Retrieve xmpp port from the preferences
-     * 
-     * @return Registered xmpp port
-     */
-    private String getRegisteredXMPPPort() {
-	return (settings.getString(getString(R.string.settings_key_xmpp_port), DEFAULT_XMPP_PORT));
-    }
-
-    /**
-     * Retrieve xmpp server from the preferences
-     * 
-     * @return Registered xmpp server
-     */
-    private String getRegisteredXMPPServer() {
-	return (settings.getString(getString(R.string.settings_key_xmpp_server), DEFAULT_STRING_VALUE));
-    }
+	/**
+	 * Enable proxy parameters fields
+	 */
+	private void enableProxyParameters() {
+		proxyTypeSpinner.setEnabled(true);
+		proxyServerField.setEnabled(true);
+		proxyPortField.setEnabled(true);
+		proxyUsernameField.setEnabled(true);
+		proxyPasswordField.setEnabled(true);
+	}
 
-    /**
-     * Retrieve TLS use from the preferences
-     * 
-     * @return Registered TLS use
-     */
-    private boolean getRegisteredXMPPTLSUse() {
-	return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
-    }
-
-    /**
-     * Initialize Account tab fields
-     */
-    private void initAccountFields() {
-	accUsernameField = (EditText) findViewById(R.id.settings_account_username);
-	accPasswordField = (EditText) findViewById(R.id.settings_account_password);
-    }
+	/**
+	 * Retrieve the value of a CheckBox
+	 * 
+	 * @param viewId
+	 * @return true if the CheckBox is checked, else false
+	 */
+	private boolean getCheckBoxValue(int viewId) {
+		final CheckBox checkBox = (CheckBox) findViewById(viewId);
+		if (checkBox.isChecked())
+			return (true);
+		return (false);
+	}
 
-    /**
-     * Initialize all of the components displayed in tabs (EditText fields, CheckBoxes, Spinners...)
-     */
-    private void initFields() {
-	initAccountFields();
-	initXMPPFields();
-	initProxyFields();
-    }
-
-    /**
-     * Initialize Proxy tab fields
-     */
-    private void initProxyFields() {
-	proxyUseCheckBox = (CheckBox) findViewById(R.id.settings_proxy_use);
-	proxyTypeSpinner = (Spinner) findViewById(R.id.settings_proxy_type);
-	proxyServerField = (EditText) findViewById(R.id.settings_proxy_server);
-	proxyPortField = (EditText) findViewById(R.id.settings_proxy_port);
-	proxyUsernameField = (EditText) findViewById(R.id.settings_proxy_username);
-	proxyPasswordField = (EditText) findViewById(R.id.settings_proxy_password);
-    }
+	/**
+	 * Retrieve account password from the preferences
+	 * 
+	 * @return Registered account password
+	 */
+	private String getRegisteredAccountPassword() {
+		return (settings.getString(getString(R.string.settings_key_account_password), DEFAULT_STRING_VALUE));
+	}
 
-    /**
-     * Initialize proxy's types spinner of the proxy tab
-     */
-    private void initProxyTypesSpinner() {
-	ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
-	        android.R.layout.simple_spinner_item);
-	adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-	proxyTypeSpinner.setAdapter(adapter);
-    }
-
-    /**
-     * Initialize the checkbox allowing user to use a proxy
-     */
-    private void initProxyUseCheckBox() {
-	proxyUseCheckBox.setOnClickListener(new OnClickListener() {
+	/**
+	 * Retrieve account username from the preferences
+	 * 
+	 * @return Registered account username
+	 */
+	private String getRegisteredAccountUsername() {
+		return (settings.getString(getString(R.string.settings_key_account_username), DEFAULT_STRING_VALUE));
+	}
 
-	    public void onClick(View v) {
-		if (proxyUseCheckBox.isChecked()) {
-		    enableProxyParameters();
-		} else {
-		    disableProxyParameters();
-		}
-	    }
-	});
-    }
+	/**
+	 * Retrieve proxy password from the preferences
+	 * 
+	 * @return Registered proxy password
+	 */
+	private String getRegisteredProxyPassword() {
+		return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
+	}
 
-    /**
-     * Initialize "save" buttons allowing user to save settings
-     */
-    private void initSaveButtons() {
-	final ArrayList<Integer> views = new ArrayList<Integer>();
-	Button saveButton = null;
-
-	views.add(R.id.settings_account_button_save);
-	views.add(R.id.settings_proxy_button_save);
-	views.add(R.id.settings_xmpp_button_save);
-
-	for (int i = 0; i < views.size(); i++) {
-	    saveButton = (Button) findViewById(views.get(i));
-	    saveButton.setFocusable(true);
-	    saveButton.setOnClickListener(new View.OnClickListener() {
-
-		public void onClick(View v) {
-		    saveSettings();
-		}
-	    });
+	/**
+	 * Retrieve proxy port from the preferences
+	 * 
+	 * @return Registered proxy port
+	 */
+	private String getRegisteredProxyPort() {
+		return (settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE));
 	}
-    }
 
-    /**
-     * Initialize tabbed window view by adding tabs and setting the default tab
-     */
-    private void initTabbedWindow() {
-	TabHost tHost = (TabHost) this.findViewById(R.id.settings_tab_host);
-	tHost.setup();
-	addAccountTab(tHost);
-	addXMPPTab(tHost);
-	addProxyTab(tHost);
-	tHost.setCurrentTab(0);
-    }
-
-    /**
-     * Initialize XMPP tab fields
-     */
-    private void initXMPPFields() {
-	xmppServerField = (EditText) findViewById(R.id.settings_xmpp_server);
-	xmppPortField = (EditText) findViewById(R.id.settings_xmpp_port);
-	xmppUseTLSCheckBox = (CheckBox) findViewById(R.id.settings_xmpp_use_tls);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-	super.onCreate(savedInstanceState);
-	setContentView(R.layout.edit_settings);
-	initTabbedWindow();
-	initFields();
-	settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
-    }
+	/**
+	 * Retrieve proxy server from the preferences
+	 * 
+	 * @return Registered proxy server
+	 */
+	private String getRegisteredProxyServer() {
+		return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
+	}
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-	MenuInflater mInflater = getMenuInflater();
-	mInflater.inflate(R.menu.edit_settings, menu);
-	return true;
-    }
+	/**
+	 * Retrieve proxy type from the preferences
+	 * 
+	 * @return Registered proxy type
+	 */
+	private int getRegisteredProxyType() {
+		return (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE));
+	}
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-	Intent i = null;
-	switch (item.getItemId()) {
-	case R.id.settings_menu_create_account:
-	    i = new Intent(this, CreateAccount.class);
-	    startActivity(i);
-	    return true;
-	case R.id.settings_menu_login:
-	    finish();
-	    return true;
+	/**
+	 * Retrieve proxy use from the preferences
+	 * 
+	 * @return Registered proxy use
+	 */
+	private boolean getRegisteredProxyUse() {
+		return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
 	}
-	return false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onResume() {
-	super.onResume();
-	refreshAccountTabFields();
-	refreshXMPPTabFields();
-	refreshProxyTabFields();
 
-	if (!proxyUseCheckBox.isChecked())
-	    disableProxyParameters();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onStart() {
-	super.onStart();
-	initProxyTypesSpinner();
-	initProxyUseCheckBox();
-	initSaveButtons();
-    }
-
-    /**
-     * Refresh values of "Account" tab fields
-     */
-    private void refreshAccountTabFields() {
-	accUsernameField.setText(getRegisteredAccountUsername());
-	accPasswordField.setText(getRegisteredAccountPassword());
-    }
+	/**
+	 * Retrieve proxy username from the preferences
+	 * 
+	 * @return Registered proxy username
+	 */
+	private String getRegisteredProxyUsername() {
+		return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
+	}
 
-    /**
-     * Refresh values of "Account" tab fields
-     */
-    private void refreshProxyTabFields() {
-	proxyUseCheckBox.setChecked(getRegisteredProxyUse());
-	proxyTypeSpinner.setSelection(getRegisteredProxyType());
-	proxyServerField.setText(getRegisteredProxyServer());
-	proxyPortField.setText(getRegisteredProxyPort());
-	proxyUsernameField.setText(getRegisteredProxyUsername());
-	proxyPasswordField.setText(getRegisteredProxyPassword());
-    }
+	/**
+	 * Retrieve xmpp port from the preferences
+	 * 
+	 * @return Registered xmpp port
+	 */
+	private String getRegisteredXMPPPort() {
+		return (settings.getString(getString(R.string.settings_key_xmpp_port), DEFAULT_XMPP_PORT));
+	}
 
-    /**
-     * Refresh values of "Account" tab fields
-     */
-    private void refreshXMPPTabFields() {
-	xmppServerField.setText(getRegisteredXMPPServer());
-	xmppPortField.setText(getRegisteredXMPPPort());
-	xmppUseTLSCheckBox.setChecked(getRegisteredXMPPTLSUse());
-    }
-
-    /**
-     * Register account settings changes in SharedPreferences.Editor object passed by parameter
-     * 
-     * @param settingsEditor
-     */
-    private void registerAccountSettingsChanges(SharedPreferences.Editor settingsEditor) {
-	final String usernameFieldValue = accUsernameField.getText().toString();
-	final String passwordFieldValue = accPasswordField.getText().toString();
-
-	if (getRegisteredAccountUsername().equals(usernameFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
-	if (getRegisteredAccountPassword().equals(passwordFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
-	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_ACCOUNT_SETTINGS_REGISTERED);
-    }
+	/**
+	 * Retrieve xmpp server from the preferences
+	 * 
+	 * @return Registered xmpp server
+	 */
+	private String getRegisteredXMPPServer() {
+		return (settings.getString(getString(R.string.settings_key_xmpp_server), DEFAULT_STRING_VALUE));
+	}
 
-    /**
-     * Register proxy settings changes in SharedPreferences.Editor object passed by parameter
-     * 
-     * @param settingsEditor
-     */
-    private void registerProxySettingsChanges(SharedPreferences.Editor settingsEditor) {
-	final int proxyTypeFieldValue = proxyTypeSpinner.getSelectedItemPosition();
-	final String serverFieldValue = proxyServerField.getText().toString();
-	final String portFieldValue = proxyPortField.getText().toString();
-	final String usernameFieldValue = proxyUsernameField.getText().toString();
-	final String passwordFieldValue = proxyPasswordField.getText().toString();
+	/**
+	 * Retrieve TLS use from the preferences
+	 * 
+	 * @return Registered TLS use
+	 */
+	private boolean getRegisteredXMPPTLSUse() {
+		return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
+	}
 
-	if (getRegisteredProxyType() != proxyTypeFieldValue)
-	    settingsEditor.putInt(getString(R.string.settings_key_proxy_type), proxyTypeFieldValue);
-	if (getRegisteredProxyServer().equals(serverFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_proxy_server), serverFieldValue);
-	if (getRegisteredProxyPort().equals(portFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_proxy_port), portFieldValue);
-	if (getRegisteredProxyUsername().equals(usernameFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_proxy_username), usernameFieldValue);
-	if (getRegisteredProxyPassword().equals(passwordFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_proxy_password), passwordFieldValue);
-	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_PROXY_SETTINGS_REGISTERED);
-    }
+	/**
+	 * Initialize Account tab fields
+	 */
+	private void initAccountFields() {
+		accUsernameField = (EditText) findViewById(R.id.settings_account_username);
+		accPasswordField = (EditText) findViewById(R.id.settings_account_password);
+	}
 
-    /**
-     * Register XMPP settings changes in SharedPreferences.Editor object passed by parameter
-     * 
-     * @param settingsEditor
-     */
-    private void registerXMPPSettingsChanges(SharedPreferences.Editor settingsEditor) {
-	final boolean tlsUseCheckBoxValue = getCheckBoxValue(R.id.settings_xmpp_use_tls);
-	final String serverFieldValue = xmppServerField.getText().toString();
-	final String portFieldValue = xmppPortField.getText().toString();
+	/**
+	 * Initialize all of the components displayed in tabs (EditText fields, CheckBoxes, Spinners...)
+	 */
+	private void initFields() {
+		initAccountFields();
+		initXMPPFields();
+		initProxyFields();
+	}
 
-	if (getRegisteredXMPPTLSUse() != tlsUseCheckBoxValue)
-	    settingsEditor.putBoolean(getString(R.string.settings_key_xmpp_tls_use), tlsUseCheckBoxValue);
-	if (getRegisteredXMPPServer().equals(serverFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_xmpp_server), serverFieldValue);
-	if (getRegisteredXMPPPort().equals(portFieldValue) == false)
-	    settingsEditor.putString(getString(R.string.settings_key_xmpp_port), portFieldValue);
-	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_XMPP_SETTINGS_REGISTERED);
-    }
-
-    /**
-     * Save settings in shared preferences
-     */
-    private void saveSettings() {
-	final SharedPreferences.Editor settingsEditor = settings.edit();
-	final boolean proxyUseCheckBoxValue = getCheckBoxValue(R.id.settings_proxy_use);
-
-	if (getRegisteredProxyUse() != proxyUseCheckBoxValue)
-	    settingsEditor.putBoolean(getString(R.string.settings_key_proxy_use), proxyUseCheckBoxValue);
-	if (proxyUseCheckBoxValue)
-	    registerProxySettingsChanges(settingsEditor);
-	registerAccountSettingsChanges(settingsEditor);
-	registerXMPPSettingsChanges(settingsEditor);
-
-	if (settingsEditor.commit()) {
-	    displayNotification(getText(R.string.settings_saved_ok));
-	    Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
+	/**
+	 * Initialize Proxy tab fields
+	 */
+	private void initProxyFields() {
+		proxyUseCheckBox = (CheckBox) findViewById(R.id.settings_proxy_use);
+		proxyTypeSpinner = (Spinner) findViewById(R.id.settings_proxy_type);
+		proxyServerField = (EditText) findViewById(R.id.settings_proxy_server);
+		proxyPortField = (EditText) findViewById(R.id.settings_proxy_port);
+		proxyUsernameField = (EditText) findViewById(R.id.settings_proxy_username);
+		proxyPasswordField = (EditText) findViewById(R.id.settings_proxy_password);
 	}
 
-	stopService(new Intent(this, BeemService.class));
-    }
+	/**
+	 * Initialize proxy's types spinner of the proxy tab
+	 */
+	private void initProxyTypesSpinner() {
+		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
+				android.R.layout.simple_spinner_item);
+		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+		proxyTypeSpinner.setAdapter(adapter);
+	}
+
+	/**
+	 * Initialize the checkbox allowing user to use a proxy
+	 */
+	private void initProxyUseCheckBox() {
+		proxyUseCheckBox.setOnClickListener(new OnClickListener() {
+
+			public void onClick(View v) {
+				if (proxyUseCheckBox.isChecked()) {
+					enableProxyParameters();
+				} else {
+					disableProxyParameters();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Initialize "save" buttons allowing user to save settings
+	 */
+	private void initSaveButtons() {
+		final ArrayList<Integer> views = new ArrayList<Integer>();
+		Button saveButton = null;
+
+		views.add(R.id.settings_account_button_save);
+		views.add(R.id.settings_proxy_button_save);
+		views.add(R.id.settings_xmpp_button_save);
+
+		for (int i = 0; i < views.size(); i++) {
+			saveButton = (Button) findViewById(views.get(i));
+			saveButton.setFocusable(true);
+			saveButton.setOnClickListener(new View.OnClickListener() {
+
+				public void onClick(View v) {
+					saveSettings();
+				}
+			});
+		}
+	}
+
+	/**
+	 * Initialize tabbed window view by adding tabs and setting the default tab
+	 */
+	private void initTabbedWindow() {
+		TabHost tHost = (TabHost) this.findViewById(R.id.settings_tab_host);
+		tHost.setup();
+		addAccountTab(tHost);
+		addXMPPTab(tHost);
+		addProxyTab(tHost);
+		tHost.setCurrentTab(0);
+	}
+
+	/**
+	 * Initialize XMPP tab fields
+	 */
+	private void initXMPPFields() {
+		xmppServerField = (EditText) findViewById(R.id.settings_xmpp_server);
+		xmppPortField = (EditText) findViewById(R.id.settings_xmpp_port);
+		xmppUseTLSCheckBox = (CheckBox) findViewById(R.id.settings_xmpp_use_tls);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.edit_settings);
+		initTabbedWindow();
+		initFields();
+		settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		MenuInflater mInflater = getMenuInflater();
+		mInflater.inflate(R.menu.edit_settings, menu);
+		return true;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+		Intent i = null;
+		switch (item.getItemId()) {
+		case R.id.settings_menu_create_account:
+			i = new Intent(this, CreateAccount.class);
+			startActivity(i);
+			return true;
+		case R.id.settings_menu_login:
+			finish();
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void onResume() {
+		super.onResume();
+		refreshAccountTabFields();
+		refreshXMPPTabFields();
+		refreshProxyTabFields();
+
+		if (!proxyUseCheckBox.isChecked())
+			disableProxyParameters();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void onStart() {
+		super.onStart();
+		initProxyTypesSpinner();
+		initProxyUseCheckBox();
+		initSaveButtons();
+	}
+
+	/**
+	 * Refresh values of "Account" tab fields
+	 */
+	private void refreshAccountTabFields() {
+		accUsernameField.setText(getRegisteredAccountUsername());
+		accPasswordField.setText(getRegisteredAccountPassword());
+	}
+
+	/**
+	 * Refresh values of "Account" tab fields
+	 */
+	private void refreshProxyTabFields() {
+		proxyUseCheckBox.setChecked(getRegisteredProxyUse());
+		proxyTypeSpinner.setSelection(getRegisteredProxyType());
+		proxyServerField.setText(getRegisteredProxyServer());
+		proxyPortField.setText(getRegisteredProxyPort());
+		proxyUsernameField.setText(getRegisteredProxyUsername());
+		proxyPasswordField.setText(getRegisteredProxyPassword());
+	}
+
+	/**
+	 * Refresh values of "Account" tab fields
+	 */
+	private void refreshXMPPTabFields() {
+		xmppServerField.setText(getRegisteredXMPPServer());
+		xmppPortField.setText(getRegisteredXMPPPort());
+		xmppUseTLSCheckBox.setChecked(getRegisteredXMPPTLSUse());
+	}
+
+	/**
+	 * Register account settings changes in SharedPreferences.Editor object passed by parameter
+	 * 
+	 * @param settingsEditor
+	 */
+	private void registerAccountSettingsChanges(SharedPreferences.Editor settingsEditor) {
+		final String usernameFieldValue = accUsernameField.getText().toString();
+		final String passwordFieldValue = accPasswordField.getText().toString();
+
+		if (getRegisteredAccountUsername().equals(usernameFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
+		if (getRegisteredAccountPassword().equals(passwordFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
+		Log.i(getString(R.string.edit_settings_tag), LOG_MSG_ACCOUNT_SETTINGS_REGISTERED);
+	}
+
+	/**
+	 * Register proxy settings changes in SharedPreferences.Editor object passed by parameter
+	 * 
+	 * @param settingsEditor
+	 */
+	private void registerProxySettingsChanges(SharedPreferences.Editor settingsEditor) {
+		final int proxyTypeFieldValue = proxyTypeSpinner.getSelectedItemPosition();
+		final String serverFieldValue = proxyServerField.getText().toString();
+		final String portFieldValue = proxyPortField.getText().toString();
+		final String usernameFieldValue = proxyUsernameField.getText().toString();
+		final String passwordFieldValue = proxyPasswordField.getText().toString();
+
+		if (getRegisteredProxyType() != proxyTypeFieldValue)
+			settingsEditor.putInt(getString(R.string.settings_key_proxy_type), proxyTypeFieldValue);
+		if (getRegisteredProxyServer().equals(serverFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_proxy_server), serverFieldValue);
+		if (getRegisteredProxyPort().equals(portFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_proxy_port), portFieldValue);
+		if (getRegisteredProxyUsername().equals(usernameFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_proxy_username), usernameFieldValue);
+		if (getRegisteredProxyPassword().equals(passwordFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_proxy_password), passwordFieldValue);
+		Log.i(getString(R.string.edit_settings_tag), LOG_MSG_PROXY_SETTINGS_REGISTERED);
+	}
+
+	/**
+	 * Register XMPP settings changes in SharedPreferences.Editor object passed by parameter
+	 * 
+	 * @param settingsEditor
+	 */
+	private void registerXMPPSettingsChanges(SharedPreferences.Editor settingsEditor) {
+		final boolean tlsUseCheckBoxValue = getCheckBoxValue(R.id.settings_xmpp_use_tls);
+		final String serverFieldValue = xmppServerField.getText().toString();
+		final String portFieldValue = xmppPortField.getText().toString();
+
+		if (getRegisteredXMPPTLSUse() != tlsUseCheckBoxValue)
+			settingsEditor.putBoolean(getString(R.string.settings_key_xmpp_tls_use), tlsUseCheckBoxValue);
+		if (getRegisteredXMPPServer().equals(serverFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_xmpp_server), serverFieldValue);
+		if (getRegisteredXMPPPort().equals(portFieldValue) == false)
+			settingsEditor.putString(getString(R.string.settings_key_xmpp_port), portFieldValue);
+		Log.i(getString(R.string.edit_settings_tag), LOG_MSG_XMPP_SETTINGS_REGISTERED);
+	}
+
+	/**
+	 * Save settings in shared preferences
+	 */
+	private void saveSettings() {
+		final SharedPreferences.Editor settingsEditor = settings.edit();
+		final boolean proxyUseCheckBoxValue = getCheckBoxValue(R.id.settings_proxy_use);
+
+		if (getRegisteredProxyUse() != proxyUseCheckBoxValue)
+			settingsEditor.putBoolean(getString(R.string.settings_key_proxy_use), proxyUseCheckBoxValue);
+		if (proxyUseCheckBoxValue)
+			registerProxySettingsChanges(settingsEditor);
+		registerAccountSettingsChanges(settingsEditor);
+		registerXMPPSettingsChanges(settingsEditor);
+
+		if (settingsEditor.commit()) {
+			displayNotification(getText(R.string.settings_saved_ok));
+			Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
+		}
+
+		stopService(new Intent(this, BeemService.class));
+	}
 }