/** * 获取在线人数 * * @param users * @return */ protected int getOnlineCount(List<? extends QQUser> users) { int count = 0; for (QQUser user : users) { QQStatus stat = user.getStatus(); if (QQStatus.isGeneralOnline(stat)) { count++; } } return count; }
@Override public int compare(UserListElement o1, UserListElement o2) { if (o1.getUserNamed() instanceof UIUser && o2.getUserNamed() instanceof UIUser) { QQUser user1 = (QQUser) o1.getUserNamed().getEntity(); QQUser user2 = (QQUser) o2.getUserNamed().getEntity(); if (user1.getStatus() == user2.getStatus()) { return user1.getNickname().compareTo(user2.getNickname()); } List<QQStatus> orders = new ArrayList<QQStatus>(); orders.add(QQStatus.ONLINE); orders.add(QQStatus.AWAY); orders.add(QQStatus.CALLME); orders.add(QQStatus.BUSY); orders.add(QQStatus.SLIENT); orders.add(QQStatus.HIDDEN); orders.add(QQStatus.OFFLINE); return orders.indexOf(user1.getStatus()) - orders.indexOf(user2.getStatus()); } return 0; }