--- a/res/layout/contactdialog.xml Fri May 22 16:55:36 2009 +0200
+++ b/res/layout/contactdialog.xml Fri May 22 18:06:34 2009 +0200
@@ -4,18 +4,18 @@
android:layout_height="fill_parent">
<Button android:id="@+id/CDChat" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="Chat" />
+ android:layout_height="wrap_content" android:text="@string/CDChat" />
<Button android:id="@+id/CDAlias" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="Alias" />
+ android:layout_height="wrap_content" android:text="@string/CDAlias" />
<Button android:id="@+id/CDGroup" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="Change group" />
+ android:layout_height="wrap_content" android:text="@string/CDGroup" />
<Button android:id="@+id/CDResend" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="Resend suscription" />
+ android:layout_height="wrap_content" android:text="@string/CDResend" />
<Button android:id="@+id/CDInfos" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="User infos" />
+ android:layout_height="wrap_content" android:text="@string/CDInfos" />
</LinearLayout>
\ No newline at end of file
--- a/res/values/strings.xml Fri May 22 16:55:36 2009 +0200
+++ b/res/values/strings.xml Fri May 22 18:06:34 2009 +0200
@@ -52,6 +52,13 @@
<string name="CLSLogin">Login:</string>
<string name="CLSOkButton">Ok</string>
+ <!-- ContactDialog class -->
+ <string name="CDChat">Chat</string>
+ <string name="CDAlias">Alias</string>
+ <string name="CDGroup">Change group</string>
+ <string name="CDResend">Resend suscription</string>
+ <string name="CDInfos">User infos</string>
+
<!-- AccountCreation class -->
<string name="ACLogin">Login:</string>
<string name="ACEmail">Email:</string>
--- a/src/com/beem/project/beem/service/Contact.java Fri May 22 16:55:36 2009 +0200
+++ b/src/com/beem/project/beem/service/Contact.java Fri May 22 18:06:34 2009 +0200
@@ -27,6 +27,7 @@
private int mID;
private int mStatus;
private String mJID;
+ private String mName;
private String mMsgState;
private List<String> mRes;
private List<String> mGroups;
@@ -60,6 +61,7 @@
*/
public Contact(final String jid) {
mJID = jid;
+ mName = jid;
mStatus = Status.CONTACT_STATUS_DISCONNECT;
mRes = new ArrayList<String>();
mRes.add("none");
@@ -74,6 +76,7 @@
mID = in.readInt();
mStatus = in.readInt();
mJID = in.readString();
+ mName = in.readString();
mMsgState = in.readString();
mRes = new ArrayList<String>();
mGroups = new ArrayList<String>();
@@ -89,6 +92,7 @@
dest.writeInt(mID);
dest.writeInt(mStatus);
dest.writeString(mJID);
+ dest.writeString(mName);
dest.writeString(mMsgState);
dest.writeStringList(getMRes());
dest.writeStringList(getGroups());
@@ -242,5 +246,20 @@
*/
public List<String> getGroups() {
return mGroups;
+ }
+
+ /**
+ * @param mName the mName to set
+ */
+ public void setName(String mName) {
+ if (mName != null)
+ this.mName = mName;
+ }
+
+ /**
+ * @return the mName
+ */
+ public String getName() {
+ return mName;
}
}
--- a/src/com/beem/project/beem/service/RosterAdapter.java Fri May 22 16:55:36 2009 +0200
+++ b/src/com/beem/project/beem/service/RosterAdapter.java Fri May 22 18:06:34 2009 +0200
@@ -49,6 +49,7 @@
Contact c = new Contact(user);
c.setStatus(roster.getPresence(user));
c.setGroups(entry.getGroups());
+ c.setName(entry.getName());
mContacts.put(user, c);
}
}
@@ -72,7 +73,7 @@
Contact res = new Contact(user);
mContacts.put(user, res);
for (String group : groups) {
- //mAdaptee.createGroup(group);
+ // mAdaptee.createGroup(group);
res.addGroup(group);
}
return res;
@@ -80,7 +81,7 @@
Log.e(TAG, "Error while adding new contact", e);
return null;
}
- }
+ }
/**
* {@inheritDoc}
@@ -117,6 +118,15 @@
}
/**
+ *
+ */
+ @Override
+ public void setContactName(String jid, String name) throws RemoteException {
+ mContacts.get(jid).setName(name);
+ mAdaptee.getEntry(jid).setName(name);
+ }
+
+ /**
* {@inheritDoc}
*/
@Override
@@ -225,6 +235,7 @@
c.addRes(StringUtils.parseResource(presence.getFrom()));
c.setStatus(mAdaptee.getPresence(presence.getFrom()));
c.setMsgState(presence.getStatus());
+ c.setName(mAdaptee.getEntry(user).getName());
/* redispatch vers les IBeemRosterListener */
final int n = mRemoteRosListeners.beginBroadcast();
--- a/src/com/beem/project/beem/service/aidl/IRoster.aidl Fri May 22 16:55:36 2009 +0200
+++ b/src/com/beem/project/beem/service/aidl/IRoster.aidl Fri May 22 18:06:34 2009 +0200
@@ -10,6 +10,7 @@
void deleteContact(in Contact contact);
Contact getContact(in String jid);
+ void setContactName(in String jid, in String name);
void createGroup(in String groupname);
--- a/src/com/beem/project/beem/ui/ContactDialog.java Fri May 22 16:55:36 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java Fri May 22 18:06:34 2009 +0200
@@ -15,6 +15,7 @@
import com.beem.project.beem.R;
import com.beem.project.beem.service.Contact;
import com.beem.project.beem.service.PresenceAdapter;
+import com.beem.project.beem.service.aidl.IRoster;
import com.beem.project.beem.service.aidl.IXmppFacade;
public class ContactDialog extends Dialog {
@@ -25,16 +26,16 @@
private IXmppFacade mService;
public ContactDialog(final Context context, Contact curContact) {
- super(context);
- mContext = context;
-
+ super(context);
+ mContext = context;
+
setContentView(R.layout.contactdialog);
mContact = curContact;
- setTitle(curContact.getJID());
+ setTitle(curContact.getJID());
Button chat = (Button) findViewById(R.id.CDChat);
chat.setOnClickListener(new chatListener());
- Button alias= (Button) findViewById(R.id.CDAlias);
+ Button alias = (Button) findViewById(R.id.CDAlias);
alias.setOnClickListener(new aliasListener());
Button group = (Button) findViewById(R.id.CDGroup);
group.setOnClickListener(new groupListener());
@@ -43,7 +44,7 @@
Button infos = (Button) findViewById(R.id.CDInfos);
infos.setOnClickListener(new infosListener());
}
-
+
public void initService() {
mService = BeemApplication.getApplication(ContactDialog.this.getOwnerActivity()).getXmppFacade();
}
@@ -65,7 +66,11 @@
@Override
public void onClick(View v) {
- // TODO Auto-generated method stub
+ try {
+ mService.getRoster().setContactName(mContact.getJID(), "new name");
+ } catch (RemoteException e) {
+ Log.e(TAG, "alias", e);
+ }
dismiss();
}
--- a/src/com/beem/project/beem/ui/ContactList.java Fri May 22 16:55:36 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Fri May 22 18:06:34 2009 +0200
@@ -7,8 +7,10 @@
import org.jivesoftware.smack.util.StringUtils;
-
+import android.app.AlertDialog;
+import android.app.Dialog;
import android.app.ExpandableListActivity;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.DataSetObserver;
@@ -29,6 +31,7 @@
import android.widget.ExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import com.beem.project.beem.BeemApplication;
import com.beem.project.beem.R;
@@ -82,13 +85,13 @@
}
callbackShowContactList();
}
- });
- }
+ });
+ }
@Override
protected void onDestroy() {
mBeemApplication.unbindBeemService();
- super.onDestroy();
+ super.onDestroy();
}
private void callbackShowContactList() {
@@ -155,7 +158,7 @@
}
private void buildContactList(List<Contact> listContact) {
- mListContact = listContact;
+ mListContact = listContact;
for (Contact contact : listContact) {
for (String group : contact.getGroups()) {
if (!groupMap.containsKey(group)) {
@@ -222,40 +225,38 @@
}
void createDialog(Contact contact) {
- ContactDialog dialogContact= new ContactDialog(ContactList.this, contact);
+ ContactDialog dialogContact = new ContactDialog(ContactList.this, contact);
dialogContact.setOwnerActivity(ContactList.this);
dialogContact.initService();
dialogContact.show();
}
class MyOnLongClickListener implements OnLongClickListener {
+ private Contact mContact;
+
+ public MyOnLongClickListener(Contact contact) {
+ mContact = contact;
+ }
+
@Override
public boolean onLongClick(View v) {
- TextView jidTextView = (TextView) v.findViewById(R.id.contactlistpseudo);
- String jid = jidTextView.getText().toString();
- for (Contact curContact : mListContact) {
- if (jid.equals(curContact.getJID())) {
- createDialog(curContact);
- break;
- }
- }
+ createDialog(mContact);
return true;
}
}
class MyOnClickListener implements OnClickListener {
+ private Contact mContact;
+
+ public MyOnClickListener(Contact contact) {
+ mContact = contact;
+ }
+
@Override
public void onClick(View v) {
- TextView jidTextView = (TextView) v.findViewById(R.id.contactlistpseudo);
- String jid = jidTextView.getText().toString();
- for (Contact curContact : mListContact) {
- if (jid.equals(curContact.getJID())) {
- Intent i = new Intent(ContactList.this, SendIM.class);
- i.putExtra("contact", curContact);
- startActivity(i);
- break;
- }
- }
+ Intent i = new Intent(ContactList.this, SendIM.class);
+ i.putExtra("contact", mContact);
+ startActivity(i);
}
}
@@ -269,10 +270,11 @@
} else {
v = convertView;
}
- bindView(v, groupMap.get(groupName.get(groupPosition)).get(childPosition));
+ Contact contact = groupMap.get(groupName.get(groupPosition)).get(childPosition);
+ bindView(v, contact);
- v.setOnLongClickListener(new MyOnLongClickListener());
- v.setOnClickListener(new MyOnClickListener());
+ v.setOnLongClickListener(new MyOnLongClickListener(contact));
+ v.setOnClickListener(new MyOnClickListener(contact));
return v;
}
@@ -391,7 +393,7 @@
TextView v = (TextView) view.findViewById(R.id.contactlistpseudo);
if (v != null) {
- v.setText(curContact.getJID());
+ v.setText(curContact.getName());
}
v = (TextView) view.findViewById(R.id.contactlistmsgperso);
@@ -413,9 +415,9 @@
@Override
public void onEntriesAdded(List<String> addresses) throws RemoteException {
- for (String str: addresses) {
+ for (String str : addresses) {
Contact curContact = mRoster.getContact(str);
- for (String group: curContact.getGroups()) {
+ for (String group : curContact.getGroups()) {
if (!groupMap.containsKey(group)) {
groupMap.put(group, new ArrayList<Contact>());
groupName.add(group);
@@ -438,13 +440,13 @@
@Override
public void onEntriesDeleted(List<String> addresses) throws RemoteException {
for (List<Contact> cList : groupMap.values()) {
- for (Contact curContact:cList) {
- for (String addr:addresses) {
+ for (Contact curContact : cList) {
+ for (String addr : addresses) {
if (addr.equals(curContact.getJID())) {
cList.remove(curContact);
if (cList.isEmpty()) {
groupMap.values().remove(cList);
- }
+ }
}
}
}
@@ -459,20 +461,20 @@
@Override
public void onEntriesUpdated(List<String> addresses) throws RemoteException {
- for (String str: addresses) {
+ for (String str : addresses) {
Contact curContact = mRoster.getContact(str);
- for (String group: curContact.getGroups()) {
+ for (String group : curContact.getGroups()) {
if (!groupMap.containsKey(group)) {
groupMap.put(group, new ArrayList<Contact>());
groupName.add(group);
groupMap.get(group).add(curContact);
} else {
boolean found = false;
- for (Contact tempContact:groupMap.get(group)) {
- if (tempContact.getJID().equals(str)) {
+ for (Contact tempContact : groupMap.get(group)) {
+ if (tempContact.getJID() == str) {
curContact = tempContact;
found = true;
- break ;
+ break;
}
}
if (!found) {