package com.wyp.materialqqlite.qqclient.protocol.protocoldata; import java.util.ArrayList; public class GroupInfo { public int m_nGroupCode; // 群代码 public int m_nGroupId; // 群ID public int m_nGroupNumber; // 群号码 public String m_strName; // 群名称 public String m_strMemo; // 群公告 public String m_strFingerMemo; // 群简介 public int m_nOwnerUin; // 群拥有者Uin public int m_nCreateTime; // 群创建时间 public int m_nFace; // 群头像 public int m_nLevel; // 群等级 public int m_nClass; // 群分类索引 public int m_nOption; public int m_nFlag; public boolean m_bHasGroupNumber; public boolean m_bHasGroupInfo; public ArrayList<BuddyInfo> m_arrMember = new ArrayList<BuddyInfo>(); // 群成员 public void reset() { m_nGroupCode = 0; m_nGroupId = 0; m_nGroupNumber = 0; m_strName = ""; m_strMemo = ""; m_strFingerMemo = ""; m_nOwnerUin = 0; m_nCreateTime = 0; m_nFace = 0; m_nLevel = 0; m_nClass = 0; m_nOption = 0; m_nFlag = 0; m_bHasGroupNumber = m_bHasGroupInfo = false; delAllMember(); } // 获取群成员总人数 public int getMemberCount() { return m_arrMember.size(); } // 获取群成员在线人数 public int getOnlineMemberCount() { int nCount = 0; for (int i = 0; i < m_arrMember.size(); i++) { BuddyInfo buddyInfo = m_arrMember.get(i); if (buddyInfo != null && buddyInfo.m_nStatus != QQStatus.OFFLINE) nCount++; } return nCount; } // 根据索引获取群成员信息 public BuddyInfo getMember(int nIndex) { if (nIndex < 0 || nIndex >= m_arrMember.size()) return null; return m_arrMember.get(nIndex); } // 根据QQUin获取群成员信息 public BuddyInfo getMemberByUin(int nQQUin) { for (int i = 0; i < m_arrMember.size(); i++) { BuddyInfo buddyInfo = m_arrMember.get(i); if (buddyInfo != null && buddyInfo.m_nQQUin == nQQUin) return buddyInfo; } return null; } // 根据QQNum获取群成员信息 public BuddyInfo getMemberByNum(int nQQNum) { for (int i = 0; i < m_arrMember.size(); i++) { BuddyInfo buddyInfo = m_arrMember.get(i); if (buddyInfo != null && buddyInfo.m_nQQNum == nQQNum) return buddyInfo; } return null; } // 对群成员列表按在线状态进行排序 public void sort() { BuddyInfo buddyInfo1, buddyInfo2; boolean bExchange; int nCount; nCount = m_arrMember.size(); for (int i = 0; i < nCount-1; i++) { bExchange = false; for (int j = nCount-1; j > i; j--) { buddyInfo1 = m_arrMember.get(j-1); buddyInfo2 = m_arrMember.get(j); if (buddyInfo1 != null && buddyInfo2 != null) { if (buddyInfo2.m_nStatus < buddyInfo1.m_nStatus) { m_arrMember.set(j-1, buddyInfo2); m_arrMember.set(j, buddyInfo1); bExchange = true; } } } if (!bExchange) break; } } // 添加群成员 public boolean addMember(BuddyInfo buddyInfo) { if (null == buddyInfo) return false; m_arrMember.add(buddyInfo); return true; } // 删除所有群成员 public void delAllMember() { m_arrMember.clear(); } // 设置群号码 public void setGroupNumber(GetQQNumResult result) { if (result != null) { m_nGroupNumber = result.m_nQQNum; m_bHasGroupNumber = true; } } // 设置群信息 public boolean setGroupInfo(GroupInfoResult result) { if (null == result) return false; m_nGroupCode = result.m_nGroupCode; m_nGroupId = result.m_nGroupId; m_strName = result.m_strName; m_strMemo = result.m_strMemo; m_strFingerMemo = result.m_strFingerMemo; m_nOwnerUin = result.m_nOwnerUin; m_nCreateTime = result.m_nCreateTime; m_nFace = result.m_nFace; m_nLevel = result.m_nLevel; m_nClass = result.m_nClass; m_nOption = result.m_nOption; m_nFlag = result.m_nFlag; delAllMember(); for (int i = 0; i < result.m_arrMember.size(); i++) { BuddyInfo buddyInfo = result.m_arrMember.get(i); if (buddyInfo != null) m_arrMember.add(buddyInfo); } result.m_arrMember.clear(); sort(); m_bHasGroupInfo = true; return true; } public boolean isHasGroupNumber() { return m_bHasGroupNumber; } public boolean isHasGroupInfo() { return m_bHasGroupInfo; } }