初始化好友信息的时候通过设置(friendInfo.setStatus)判断好友在线头像是亮的,不在线的好友头像是灰暗的。但是在之后监听过程中如果有好友上下线(friendInfo.setStatus)该怎么改变;
roster = con.getRoster();
groupInfo1 = new GroupInfo();
groupInfo1.setGroupName("在线好友");
groupInfo2 = new GroupInfo();
groupInfo2.setGroupName("居住社区好友");
groupInfo3 = new GroupInfo();
groupInfo3.setGroupName("其他社区好友");
groupInfo4 = new GroupInfo();
groupInfo4.setGroupName("商铺好友");
updateRoster();
/**
* 初始化用户列表
*/
public void updateRoster() throws Exception {
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
// 根据用户名获取出席信息
Presence presence = roster.getPresence(entry.getUser());
String uname = entry.getUser().split("@")[0];
presence.getMode();
String status = presence.getStatus();
VCard vCard = getUserVCard(con, uname);
if (null != vCard.getTYPEREG()) {
// 判断用户属于那种用户类型,1 居民,2商铺,3机构
if (1 == Integer.valueOf(vCard.getTYPEREG())) {
friendInfo = new FriendInfo();
if (null != vCard.getDWELLID()) {
if (myCmmId == Integer.valueOf(vCard.getDWELLID())) {
friendInfo.setUsername(uname);
friendInfo.setVcard(vCard);
friendInfo.setStatus(status);
friendList2.add(friendInfo);
groupInfo2.setFriendInfoList(friendList2);
vCard = null;
friendInfo = null;
} else {
friendInfo.setUsername(uname);
friendInfo.setVcard(vCard);
friendInfo.setStatus(status);
friendList3.add(friendInfo);
groupInfo3.setFriendInfoList(friendList3);
vCard = null;
friendInfo = null;
}
}
} else if (2 == Integer.valueOf(vCard.getTYPEREG())) {
friendInfo = new FriendInfo();
friendInfo.setUsername(uname);
friendInfo.setVcard(vCard);
friendInfo.setStatus(status);
friendList4.add(friendInfo);
groupInfo4.setFriendInfoList(friendList4);
vCard = null;
friendInfo = null;
}
}
}
groupList.add(groupInfo2);
groupList.add(groupInfo3);
groupList.add(groupInfo4);
}
/**
* 获取用户vcard信息
*