# HG changeset patch
# User nikita@nikita-lab
# Date 1242854767 -7200
# Node ID cc21283865adcdbb40924defc3cc52fe792b150d
# Parent 079488da1bfc275a2d783284def1ade577d0f2c1
La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
sinon il va nous donner du boulot
diff -r 079488da1bfc -r cc21283865ad res/layout/contactlistgroup.xml
--- a/res/layout/contactlistgroup.xml Sun May 17 23:33:13 2009 +0200
+++ b/res/layout/contactlistgroup.xml Wed May 20 23:26:07 2009 +0200
@@ -11,8 +11,4 @@
android:layout_height="wrap_content"
android:paddingLeft="40sp" />
-
-
\ No newline at end of file
diff -r 079488da1bfc -r cc21283865ad src/com/beem/project/beem/service/Contact.java
--- a/src/com/beem/project/beem/service/Contact.java Sun May 17 23:33:13 2009 +0200
+++ b/src/com/beem/project/beem/service/Contact.java Wed May 20 23:26:07 2009 +0200
@@ -140,10 +140,15 @@
* @param presence the presence containing status
*/
public void setStatus(Presence presence) {
- Log.i(TAG,"PRESENCE");
mStatus = Status.getStatusFromPresence(presence);
mMsgState = presence.getStatus();
}
+
+ public void setStatus(PresenceAdapter presence) {
+ mStatus = presence.getStatus();
+ mMsgState = presence.getStatusText();
+
+ }
/**
* Get the message status of the contact.
@@ -220,6 +225,10 @@
mGroups.add(rosterGroup.getName());
}
}
+
+ public void addGroup(String group) {
+ mGroups.add(group);
+ }
/**
* @param mGroups the mGroups to set
@@ -227,11 +236,11 @@
public void setGroups(List mGroups) {
this.mGroups = mGroups;
}
-
+
/**
* @return the mGroups
*/
public List getGroups() {
return mGroups;
- }
+ }
}
diff -r 079488da1bfc -r cc21283865ad src/com/beem/project/beem/service/PresenceAdapter.java
--- a/src/com/beem/project/beem/service/PresenceAdapter.java Sun May 17 23:33:13 2009 +0200
+++ b/src/com/beem/project/beem/service/PresenceAdapter.java Wed May 20 23:26:07 2009 +0200
@@ -14,6 +14,7 @@
private int mStatus;
private String mTo;
private String mFrom;
+ private String mStatusText;
/**
* Parcelable.Creator needs by Android.
@@ -36,6 +37,7 @@
mStatus = Status.getStatusFromPresence(presence);
mTo = presence.getTo();
mFrom = presence.getFrom();
+ mStatusText = presence.getStatus();
}
@@ -44,6 +46,7 @@
mStatus = source.readInt();
mTo = source.readString();
mFrom = source.readString();
+ mStatusText = source.readString();
}
@Override
@@ -58,6 +61,7 @@
dest.writeInt(mStatus);
dest.writeString(mTo);
dest.writeString(mFrom);
+ dest.writeString(mStatusText);
}
@@ -122,4 +126,20 @@
public String getFrom() {
return mFrom;
}
+
+
+ /**
+ * @param mStatusText the mStatusText to set
+ */
+ public void setStatusText(String mStatusText) {
+ this.mStatusText = mStatusText;
+ }
+
+
+ /**
+ * @return the mStatusText
+ */
+ public String getStatusText() {
+ return mStatusText;
+ }
}
diff -r 079488da1bfc -r cc21283865ad src/com/beem/project/beem/service/RosterAdapter.java
--- a/src/com/beem/project/beem/service/RosterAdapter.java Sun May 17 23:33:13 2009 +0200
+++ b/src/com/beem/project/beem/service/RosterAdapter.java Wed May 20 23:26:07 2009 +0200
@@ -71,6 +71,10 @@
mAdaptee.createEntry(user, name, groups);
Contact res = new Contact(user);
mContacts.put(user, res);
+ for (String group : groups) {
+ mAdaptee.createGroup(group);
+ res.addGroup(group);
+ }
return res;
} catch (XMPPException e) {
Log.e(TAG, "Error while adding new contact", e);
diff -r 079488da1bfc -r cc21283865ad src/com/beem/project/beem/ui/AccountCreation.java
--- a/src/com/beem/project/beem/ui/AccountCreation.java Sun May 17 23:33:13 2009 +0200
+++ b/src/com/beem/project/beem/ui/AccountCreation.java Wed May 20 23:26:07 2009 +0200
@@ -58,7 +58,7 @@
valid = false;
} else {
- mAttributes.put("password", getWidgetText(R.id.password));
+ mAttributes.put("password", getWidgetText(R.id.ac_password));
}
if (getWidgetText(R.id.ac_email).length() == 0) {
valid = false;
diff -r 079488da1bfc -r cc21283865ad src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/ui/ContactList.java Sun May 17 23:33:13 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Wed May 20 23:26:07 2009 +0200
@@ -5,16 +5,19 @@
import java.util.List;
import java.util.Map;
+import org.jivesoftware.smack.util.StringUtils;
+
import android.app.ExpandableListActivity;
-import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
import android.util.Log;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -23,7 +26,6 @@
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
-import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;
import com.beem.project.beem.BeemApplication;
@@ -39,29 +41,22 @@
private static final String TAG = "CONTACTLIST_ACT";
private static final int PREFERENCECHANGED = 0;
- private static final String CHILD = "CHILD";
- private static final String GROUP = "GROUP";
+ private static final String DEFAULT_GROUP = "Default";
private IXmppFacade mService = null;
- private ExpandableListAdapter mAdapter;
+ private MyExpandableListAdapter mAdapter;
private BeemApplication mBeemApplication;
private BeemRosterListener mRosterListener;
private SharedPreferences mSettings;
private IRoster mRoster;
-
- @SuppressWarnings("unchecked")
- @Override
- public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
- Map child = (HashMap) parent.getExpandableListAdapter().getChild(
- groupPosition, childPosition);
- Intent i = new Intent(this, SendIM.class);
- i.putExtra("contact", child.get(CHILD));
- startActivity(i);
- return true;
- }
+ private Map> groupMap;
+ private List groupName;
+ private List mListContact;
+ private Handler mHandler;
@Override
protected void onCreate(Bundle saveBundle) {
super.onCreate(saveBundle);
+ mHandler = new Handler();
mRosterListener = new BeemRosterListener();
mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE);
mBeemApplication = BeemApplication.getApplication(this);
@@ -72,19 +67,15 @@
@Override
protected void onResume() {
super.onResume();
-
- if (!mBeemApplication.isConnected()) {
- mBeemApplication = BeemApplication.getApplication(this);
- mBeemApplication.startBeemService();
- }
- mBeemApplication.callWhenConnectedToServer(new Handler(), new Runnable() {
+
+ mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
@Override
public void run() {
mService = mBeemApplication.getXmppFacade();
try {
mRoster = mService.getRoster();
} catch (RemoteException e1) {
- e1.printStackTrace();
+ Log.e(TAG, "Get roster failed", e1);
}
if (mRoster != null) {
try {
@@ -97,13 +88,16 @@
callbackShowContactList();
}
});
+ if (!mBeemApplication.isConnected()) {
+ mBeemApplication = BeemApplication.getApplication(this);
+ mBeemApplication.startBeemService();
+ }
}
@Override
protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
mBeemApplication.unbindBeemService();
+ super.onDestroy();
}
private void callbackShowContactList() {
@@ -112,7 +106,7 @@
*/
if (mRoster != null)
try {
- showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
+ buildContactList(mRoster.getContactList());
} catch (RemoteException e) {
e.printStackTrace();
}
@@ -157,7 +151,21 @@
}
}
+ @Override
+ public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
+ Intent i = new Intent(this, SendIM.class);
+ try {
+ i.putExtra("contact", groupMap.get(groupName.get(groupPosition)).get(childPosition));
+ startActivity(i);
+ return true;
+ } catch (NullPointerException e) {
+ Log.e(TAG, "Child not found", e);
+ return false;
+ }
+ }
+
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ //TODO:marche pas
if (requestCode == PREFERENCECHANGED) {
if (resultCode == RESULT_OK) {
mAdapter = null;
@@ -167,82 +175,184 @@
}
}
- private void showContactList(List listGroup, List listContact) {
- List