merged
authornikita@nikita-rack
Thu, 23 Apr 2009 20:25:41 +0200
changeset 156 26442a8a7669
parent 155 7919a49cd5c6 (current diff)
parent 149 2faf7174aa03 (diff)
child 157 eab125573dee
merged
--- a/AndroidManifest.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/AndroidManifest.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-	package="com.beem.project.beem" android:versionCode="1" android:versionName="1.0">
-	<application android:label="@string/app_name" android:name="BeemApplication" android:theme="@style/customtheme.contactList" android:icon="@drawable/signal">
+	package="com.beem.project.beem" android:versionCode="1"
+	android:versionName="1.0">
+	<application android:label="@string/app_name" android:name="BeemApplication" android:icon="@drawable/signal">
 		<activity android:name=".ui.ContactList" android:label="@string/app_name">
 			<intent-filter>
 				<action android:name="android.intent.action.MAIN" />
@@ -15,7 +16,6 @@
 		<activity android:name=".ui.ChangeStatus" android:label="@string/app_name" />
 		<activity android:name=".ui.AccountCreation" android:label="@string/app_name" />
 		<activity android:name=".ui.AddContact" android:label="@string/app_name" />
-		<activity android:name=".ui.Subscription" android:label="@string/app_name" />
 		<service android:name="BeemService" android:enabled="true"
 			android:label="Beem Service" android:permission="com.beem.project.beem.BEEM_SERVICE">
 			<intent-filter>
Binary file res/drawable/avatar.png has changed
Binary file res/drawable/away.png has changed
Binary file res/drawable/barthe_f.jpg has changed
Binary file res/drawable/offline.png has changed
Binary file res/drawable/online.png has changed
Binary file res/drawable/signal.png has changed
--- a/res/layout/contactlistcontact.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/layout/contactlistcontact.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -2,7 +2,10 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal"
         android:layout_width="fill_parent"
-        android:layout_height="wrap_content" 
+        android:layout_height="wrap_content"
+        android:paddingLeft="10px"
+        android:paddingRight="10px"
+        android:background="@drawable/beem_sendim_header_1"
         android:gravity="center_vertical" >
 
         <ImageView android:id="@+id/contactliststatus"
--- a/res/layout/contactlistsettings.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/layout/contactlistsettings.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -106,6 +106,11 @@
 		android:text="OK">
 		<requestFocus />
 	</Button>
+		<Button android:id="@+id/reconnect" android:layout_width="wrap_content"
+		android:layout_height="wrap_content" android:layout_gravity="center_horizontal"
+		android:text="Reconnect">
+		<requestFocus />
+	</Button>
 
 </LinearLayout>
 </ScrollView>
\ No newline at end of file
--- a/res/layout/sendim.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/layout/sendim.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -3,23 +3,58 @@
     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"
+        android:paddingLeft="10px"
+        android:paddingRight="10px"
+        android:background="@drawable/beem_sendim_header_1"
+        android:gravity="center_vertical" >
+
+        <ImageView android:id="@+id/sendimavatar"
+        	android:layout_weight="5"
+        	android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical" />
+
+		<LinearLayout
+			android:orientation="vertical"
+			android:layout_weight="1"
+        	android:layout_width="fill_parent"
+        	android:layout_height="wrap_content" >
+        	<TextView android:id="@+id/sendimlogin"
+				android:layout_width="fill_parent"
+            	android:layout_height="wrap_content"            	
+            	android:paddingLeft="20sp" />
+			<TextView android:id="@+id/sendimstatus"
+				android:layout_width="fill_parent"
+            	android:layout_height="wrap_content"
+            	android:hint="@string/SendIMNoStatusSet"
+            	android:paddingLeft="20sp" />
+		</LinearLayout>
+</LinearLayout>
+
+<!--    <LinearLayout
     	android:paddingLeft="5px"
     	android:paddingTop="5px"
     	android:background="@drawable/beem_sendim_header_1"
     	android:orientation="horizontal"
 		android:layout_width="fill_parent"
-		android:layout_height="wrap_content">
+		android:layout_height="wrap_content"
+		android:layout_weight="4">
 		
     	<ImageView android:id="@+id/sendimavatar"
     		android:layout_width="wrap_content"
     		android:layout_height="wrap_content"
-			android:src="@drawable/avatar"/>
+    		android:maxHeight="80px"
+    		android:layout_weight="5"
+			android:src="@drawable/background"/>
 			
         <LinearLayout
         	android:layout_width="fill_parent"
         	android:layout_height="fill_parent"
+        	android:layout_weight="1"
         	android:orientation="vertical">
         	
 	        <TextView android:id="@+id/sendimlogin"
@@ -34,7 +69,7 @@
 				android:layout_height="wrap_content"
 	        	android:hint="@string/SendIMNoStatusSet"/>
         </LinearLayout>
-    </LinearLayout>
+    </LinearLayout>-->
     
 	<ScrollView
 		android:id="@+id/sendimscroll"
--- a/res/menu/contactlistmenu.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/menu/contactlistmenu.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -1,6 +1,6 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
-	<item android:title="Creer ou Editer un compte" android:id="@+id/account_edit" android:icon="@drawable/xmpp"/>
+	<item android:title="@string/MenuConnection" android:id="@+id/account_edit" android:icon="@drawable/xmpp"/>
 	<item android:title="@string/MenuAddContact" android:id="@+id/add_contact" />
-	<item android:title="L'equipe Beem" android:id="@+id/account_about"/>
-	<item android:title="TEMP/createAccount" android:id="@+id/account_create"/>
+	<item android:title="@string/MenuAccountAbout" android:id="@+id/account_about"/>
+	<item android:title="@string/MenuAccountCreate" android:id="@+id/account_create"/>
 </menu>
--- a/res/values/strings.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/values/strings.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -57,6 +57,9 @@
 	<string name="ChangeStatusText">Type here your status message :</string>
 
 	<string name="MenuAddContact">Add new contact</string>
+	<string name="MenuAccountAbout">Beem Project</string>
+	<string name="MenuAccountCreate">Create account</string>
+	<string name="MenuConnection">Edit account</string>
 
 	<string name="ChangeStatusOk">Updating status</string>
 	<string name="ChangeStatusNoChange">Nothing to change</string>
--- a/res/values/style.xml	Thu Apr 23 20:25:17 2009 +0200
+++ b/res/values/style.xml	Thu Apr 23 20:25:41 2009 +0200
@@ -1,31 +1,31 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-  <style name="customtheme" parent="android:Theme">
- </style>
- 
-  	<style name="customtheme.contactList"> 
-    <item name="android:windowBackground">@drawable/background</item>
-    <item name="android:windowNoTitle">true</item>
-    <item name="android:textColor">#000000</item>
-    <item name="android:typeface">sans</item>
-    <item name="android:textSize">18sp</item>
+	<style name="customtheme" parent="android:Theme">
+	</style>
+
+	<style name="customtheme.contactList">
+		<item name="android:windowBackground">@drawable/background</item>
+		<item name="android:windowNoTitle">true</item>
+		<item name="android:textColor">#000000</item>
+		<item name="android:typeface">sans</item>
+		<item name="android:textSize">18sp</item>
+
+	</style>
 
-  </style>
-  
-  	<style name="customtheme.jungle">
-  	<item name="android:windowBackground">@drawable/background</item>
-    <item name="android:windowNoTitle">true</item>
-    <item name="android:textColor">#FFFFFF</item>
-    <item name="android:typeface">sans</item>
-    <item name="android:textSize">18sp</item>
-    </style>
-  	
-  	<style name="customtheme.spinner">
-  	<item name="android:windowBackground">@drawable/background</item>
-    <item name="android:windowNoTitle">true</item>
-    <item name="android:textColor">#FF0000</item>
-    <item name="android:typeface">sans</item>
-    <item name="android:textSize">18sp</item>
-    </style>
-    
+	<style name="customtheme.jungle">
+		<item name="android:windowBackground">@drawable/background</item>
+		<item name="android:windowNoTitle">true</item>
+		<item name="android:textColor">#FFFFFF</item>
+		<item name="android:typeface">sans</item>
+		<item name="android:textSize">18sp</item>
+	</style>
+
+	<style name="customtheme.spinner">
+		<item name="android:windowBackground">@drawable/background</item>
+		<item name="android:windowNoTitle">true</item>
+		<item name="android:textColor">#FF0000</item>
+		<item name="android:typeface">sans</item>
+		<item name="android:textSize">18sp</item>
+	</style>
+
 </resources>
\ No newline at end of file
--- a/src/com/beem/project/beem/BeemApplication.java	Thu Apr 23 20:25:17 2009 +0200
+++ b/src/com/beem/project/beem/BeemApplication.java	Thu Apr 23 20:25:41 2009 +0200
@@ -98,7 +98,7 @@
 	mBeemApp.mActivity = activity;
 	mBeemApp.mProgressDialog = new ProgressDialog(activity);
 	mBeemApp.mProgressDialog.setTitle("Beem");
-	mBeemApp.mProgressDialog.setIcon(R.drawable.signal);
+	mBeemApp.mProgressDialog.setIcon(R.drawable.barthe_f);
 	mBeemApp.mProgressDialog.setMessage("Connecting...");
 	mBeemApp.mApplicationContext = activity.getApplication();
 	mBeemApp.mPrivateResources = activity.getResources();
--- a/src/com/beem/project/beem/BeemService.java	Thu Apr 23 20:25:17 2009 +0200
+++ b/src/com/beem/project/beem/BeemService.java	Thu Apr 23 20:25:41 2009 +0200
@@ -82,7 +82,7 @@
 	mPassword = mSettings.getString(getString(R.string.PreferencePasswordKey), "");
 	mHost = mSettings.getString(getString(R.string.PreferenceHostKey), "");
 	// TODO penser a commenter
-	mHost = "10.0.2.2";
+	//mHost = "10.0.2.2";
 	initConnectionConfig();
 	mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 	mConnection = new XmppConnectionAdapter(mConnectionConfiguration, mLogin, mPassword, this);
--- a/src/com/beem/project/beem/ui/ContactList.java	Thu Apr 23 20:25:17 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Thu Apr 23 20:25:41 2009 +0200
@@ -8,7 +8,6 @@
 import android.app.ExpandableListActivity;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
@@ -39,23 +38,20 @@
 
     private static final String TAG = "CONTACTLIST_ACT";
     private static final int PREFERENCECHANGED = 0;
-    private static final int CREATEACCOUNT = 1;
+    private static final String CHILD = "CHILD";
+    private static final String GROUP = "GROUP";
     private IXmppFacade mService = null;
-    private SharedPreferences mSettings;
-    private Handler mHandler;
     private BeemApplication mBeemApplication;
     private BeemRosterListener mRosterListener;
     private IRoster mRoster;
 
     @SuppressWarnings("unchecked")
     @Override
-    public boolean onChildClick(ExpandableListView parent, View v,
-	int groupPosition, int childPosition, long id) {
+    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
+	Map<String, Contact> child = (HashMap<String, Contact>) parent.getExpandableListAdapter().getChild(
+	    groupPosition, childPosition);
 	Intent i = new Intent(this, SendIM.class);
-	Map<String, Contact> child = (HashMap<String, Contact>) parent
-	.getExpandableListAdapter().getChild(groupPosition,
-	    childPosition);
-	i.putExtra("contact", child.get("CHILD"));
+	i.putExtra("contact", child.get(CHILD));
 	startActivity(i);
 	return true;
     }
@@ -63,35 +59,10 @@
     @Override
     protected void onCreate(Bundle saveBundle) {
 	super.onCreate(saveBundle);
-	setTheme(R.style.customtheme_contactList);
-	mHandler = new Handler();
 	mBeemApplication = BeemApplication.getApplication(this);
-	mSettings = getSharedPreferences(
-	    getString(R.string.PreferenceFileName), MODE_PRIVATE);
 	mRosterListener = new BeemRosterListener();
-    }
-
-    @Override
-    protected void onStart() {
-	super.onStart();
-    }
-
-    @Override
-    protected void onDestroy() {
-        // TODO Auto-generated method stub
-        super.onDestroy();
-        mBeemApplication.unbindBeemService();
-    }
-
-    @Override
-    protected void onResume() {
-	super.onResume();
 	mBeemApplication.startBeemService();
-	/*
-	 * @TODO: A ameliorer apres listener de nikita
-	 */
-	Log.i(TAG, "onResume");
-	mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
+	mBeemApplication.callWhenConnectedToServer(new Handler(), new Runnable() {
 	    @Override
 	    public void run() {
 		mService = mBeemApplication.getXmppFacade();
@@ -112,14 +83,20 @@
 	});
     }
 
+    @Override
+    protected void onDestroy() {
+	// TODO Auto-generated method stub
+	super.onDestroy();
+	mBeemApplication.unbindBeemService();
+    }
+
     private void callbackShowContactList() {
 	/*
 	 * @TODO: A ameliorer apres listener de nikita
 	 */
 	if (mRoster != null)
 	    try {
-		showContactList(mRoster.getGroupsNames(), mRoster
-		    .getContactList());
+		showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
 	    } catch (RemoteException e) {
 		e.printStackTrace();
 	    }
@@ -127,9 +104,7 @@
 
     /**
      * Callback for menu creation.
-     * 
-     * @param menu
-     *            the menu created
+     * @param menu the menu created
      * @return true on success, false otherwise
      */
     @Override
@@ -142,9 +117,7 @@
 
     /**
      * Callback for menu item selected.
-     * 
-     * @param item
-     *            the item selected
+     * @param item the item selected
      * @return true on success, false otherwise
      */
     @Override
@@ -168,19 +141,23 @@
 	}
     }
 
-    protected void onActivityResult(int requestCode, int resultCode,
-	Intent data) {
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 	if (requestCode == PREFERENCECHANGED) {
 	    if (resultCode == RESULT_OK) {
 		mBeemApplication.stopBeemService();
 		mBeemApplication.startBeemService();
-	    }            
+	    }
 	}
     }
 
+    private boolean isStatusOK(int status) {
+	if (status == Status.CONTACT_STATUS_AVAILABLE || status == Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT
+	    || status == Status.CONTACT_STATUS_AWAY || status == Status.CONTACT_STATUS_BUSY)
+	    return true;
+	return false;
+    }
 
-    private void showContactList(List<String> listGroup,
-	List<Contact> listContact) {
+    private void showContactList(List<String> listGroup, List<Contact> listContact) {
 	ExpandableListAdapter Adapter;
 	List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
 	List<List<Map<String, Contact>>> childData = new ArrayList<List<Map<String, Contact>>>();
@@ -195,43 +172,36 @@
 
 	    List<Map<String, Contact>> children = new ArrayList<Map<String, Contact>>();
 	    for (int j = 0; j < listContact.size(); ++j) {
+		Contact c = listContact.get(j);
+		Log.i(TAG, c.getID() + " " + c.getJID());
 		Map<String, Contact> curChildMap = new HashMap<String, Contact>();
 		children.add(curChildMap);
-		Contact c = listContact.get(j);
-		Log.i(TAG, c.getID() + " " + c.getJID());
-		curChildMap.put("CHILD", c);
+		curChildMap.put(CHILD, c);
 	    }
 	    childData.add(children);
 	}
 
-	Adapter = new ContactExpandableListAdapter(this, groupData,
-	    R.layout.contactlistgroup, new String[] { "GROUP" },
-	    new int[] { R.id.textgroup }, childData,
-	    R.layout.contactlistcontact, new String[] { "CHILD" },
-	    new int[] { R.id.contactliststatus, R.id.contactlistpseudo,
-	    R.id.contactlistmsgperso, R.id.contactlistavatar });
+	Adapter = new ContactExpandableListAdapter(this, groupData, R.layout.contactlistgroup,
+	    new String[] { GROUP }, new int[] { R.id.textgroup }, childData, R.layout.contactlistcontact,
+	    new String[] { CHILD }, new int[] { R.id.contactliststatus, R.id.contactlistpseudo,
+		R.id.contactlistmsgperso, R.id.contactlistavatar });
 	setListAdapter(Adapter);
     }
 
     /**
-     * A simple adapter which allows you to bind data to specific Views defined
-     * within the layout of an Expandable Lists children (Implement
-     * getGroupView() to define the layout of parents)
+     * A simple adapter which allows you to bind data to specific Views defined within the layout of an Expandable Lists
+     * children (Implement getGroupView() to define the layout of parents)
      */
-    private class ContactExpandableListAdapter extends
-    SimpleExpandableListAdapter {
+    private class ContactExpandableListAdapter extends SimpleExpandableListAdapter {
 
 	private List<? extends List<? extends Map<String, ?>>> mChildData;
 	private String[] mChildFrom;
 	private int[] mChildTo;
 
-	public ContactExpandableListAdapter(Context context,
-	    List<? extends Map<String, ?>> groupData, int groupLayout,
-		String[] groupFrom, int[] groupTo,
-		List<? extends List<? extends Map<String, ?>>> childData,
-		    int childLayout, String[] childFrom, int[] childTo) {
-	    super(context, groupData, groupLayout, groupFrom, groupTo,
-		childData, childLayout, childFrom, childTo);
+	public ContactExpandableListAdapter(Context context, List<? extends Map<String, ?>> groupData, int groupLayout,
+	    String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData,
+	    int childLayout, String[] childFrom, int[] childTo) {
+	    super(context, groupData, groupLayout, groupFrom, groupTo, childData, childLayout, childFrom, childTo);
 
 	    mChildData = childData;
 	    mChildFrom = childFrom;
@@ -240,8 +210,8 @@
 	}
 
 	@Override
-	public View getChildView(int groupPosition, int childPosition,
-	    boolean isLastChild, View convertView, ViewGroup parent) {
+	public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
+	    ViewGroup parent) {
 
 	    View v;
 	    if (convertView == null) {
@@ -249,13 +219,13 @@
 	    } else {
 		v = convertView;
 	    }
-	    bindView(v, mChildData.get(groupPosition).get(childPosition),
-		mChildFrom, mChildTo, groupPosition, childPosition);
+	    bindView(v, mChildData.get(groupPosition).get(childPosition), mChildFrom, mChildTo, groupPosition,
+		childPosition);
 	    return v;
 	}
 
-	private void bindView(View view, Map<String, ?> data, String[] from,
-	    int[] to, int groupPosition, int childPosition) {
+	private void bindView(View view, Map<String, ?> data, String[] from, int[] to, int groupPosition,
+	    int childPosition) {
 	    Contact c = (Contact) data.get(from[0]);
 
 	    if (c != null) {
@@ -264,33 +234,26 @@
 		Drawable imageDrawable = null;
 		switch (c.getStatus()) {
 		    case Status.CONTACT_STATUS_AVAILABLE:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.online);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.online);
 			break;
 		    case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.chat);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.chat);
 			break;
 		    case Status.CONTACT_STATUS_AWAY:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.away);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.away);
 			break;
 		    case Status.CONTACT_STATUS_BUSY:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.dnd);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.dnd);
 			break;
 		    case Status.CONTACT_STATUS_DISCONNECT:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.offline);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.offline);
 			break;
 		    case Status.CONTACT_STATUS_UNAVAILABLE:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.requested);
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.requested);
 			break;
 		    default:
-			imageDrawable = (Drawable) getResources().getDrawable(
-			    R.drawable.error);
-		    break;
+			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.error);
+			break;
 		}
 		imgV.setImageDrawable(imageDrawable);
 
@@ -305,13 +268,11 @@
 		}
 
 		/*
-		 * TODO: Rajouter l'avatar du contact getAvatar() dans la
-		 * classe
+		 * TODO: Rajouter l'avatar du contact getAvatar() dans la classe
 		 */
 		imgV = (ImageView) view.findViewById(to[3]);
 		if (imgV != null) {
-		    imageDrawable = (Drawable) getResources().getDrawable(
-			R.drawable.avatar);
+		    imageDrawable = (Drawable) getResources().getDrawable(R.drawable.avatar);
 		    imgV.setImageDrawable(imageDrawable);
 		}
 	    }
@@ -321,29 +282,25 @@
     private class BeemRosterListener extends IBeemRosterListener.Stub {
 
 	@Override
-	public void onEntriesAdded(List<String> addresses)
-	throws RemoteException {
+	public void onEntriesAdded(List<String> addresses) throws RemoteException {
 	    Log.i(TAG, "ENTRIES ADDED");
 
 	}
 
 	@Override
-	public void onEntriesDeleted(List<String> addresses)
-	throws RemoteException {
+	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
 	    Log.i(TAG, "ENTRIES DEL");
 
 	}
 
 	@Override
-	public void onEntriesUpdated(List<String> addresses)
-	throws RemoteException {
+	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
 	    Log.i(TAG, "ENTRIES UPD");
 
 	}
 
 	@Override
-	public void onPresenceChanged(PresenceAdapter presence)
-	throws RemoteException {
+	public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
 	    Log.i(TAG, "PRESENCE CHANGED");
 
 	}
--- a/src/com/beem/project/beem/ui/ContactListSettings.java	Thu Apr 23 20:25:17 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactListSettings.java	Thu Apr 23 20:25:41 2009 +0200
@@ -51,6 +51,17 @@
 	showSettings();
 	Button ok = (Button) findViewById(R.id.ok);
 	ok.setOnClickListener(mOkListener);
+	
+	Button reco = (Button) findViewById(R.id.reconnect);
+	reco.setOnClickListener(new OnClickListener () {
+
+	    @Override
+	    public void onClick(View v) {
+		setResult(RESULT_OK);
+		finish();
+	    }
+	    
+	});
     }
 
     private OnItemSelectedListener mProxyType = new OnItemSelectedListener() {
--- a/src/com/beem/project/beem/ui/SendIM.java	Thu Apr 23 20:25:17 2009 +0200
+++ b/src/com/beem/project/beem/ui/SendIM.java	Thu Apr 23 20:25:41 2009 +0200
@@ -15,6 +15,7 @@
 import android.view.View.OnClickListener;
 import android.view.View.OnKeyListener;
 import android.widget.EditText;
+import android.widget.ImageView;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
@@ -45,7 +46,6 @@
     private IChatManagerListener mChatManagerListener;
     private IMessageListener mMessageListener;
     private IChat mChat;
-    private Drawable mAvatar;
     private TextView mText;
     private TextView mLogin;
     private ScrollView mScrolling;
@@ -64,7 +64,6 @@
     @Override
     public void onCreate(Bundle saveBundle) {
 	super.onCreate(saveBundle);
-	setTheme(R.style.customtheme_contactList);
 	mHandler = new Handler();
 	mChatManagerListener = new OnChatListener();
 	mMessageListener = new OnMessageListener();
@@ -83,6 +82,9 @@
     }
 
     private void setViewHeader() {
+	Drawable avatar = (Drawable) getResources().getDrawable(R.drawable.avatar);
+	ImageView imgV = (ImageView) findViewById(R.id.sendimavatar);
+	imgV.setImageDrawable(avatar);
 	mLogin = (TextView) findViewById(R.id.sendimlogin);
 	mLogin.setText(mContact.getJID());
 	TextView status = (TextView) findViewById(R.id.sendimstatus);