void populateFromGroup(RosterItemView rosterItemView, Group g) { Group group = g; g = RosterHelper.getInstance().getGroupWithContacts(g); if (g == null) g = group; rosterItemView.itemNameColor = Scheme.getColor(R.attr.group); rosterItemView.itemNameFont = Typeface.DEFAULT; rosterItemView.itemName = g.getText(); rosterItemView.itemFirstImage = new Icon(g.isExpanded() ? SawimResources.groupDownIcon : SawimResources.groupRightIcons) .getImage() .getBitmap(); Drawable messIcon = ChatHistory.instance.getUnreadMessageIcon(g.getContacts()); if (messIcon != null) { if (messIcon == SawimResources.PERSONAL_MESSAGE_ICON) { messIcon = messIcon.getConstantState().newDrawable(); messIcon.setColorFilter( Scheme.getColor(R.attr.personal_unread_message), PorterDuff.Mode.MULTIPLY); } else { messIcon = messIcon.getConstantState().newDrawable(); messIcon.setColorFilter(Scheme.getColor(R.attr.unread_message), PorterDuff.Mode.MULTIPLY); } } if (!g.isExpanded() && messIcon != null) rosterItemView.itemFifthImage = messIcon; }
public static Group copyGroupWithoutContacts(Group g) { Group newGroup = new Group(g.getText()); newGroup.setGroupId(g.getGroupId()); newGroup.setMode(g.getMode()); newGroup.setExpandFlag(g.isExpanded()); return newGroup; }
public void rebuildFlatItemsWG(Protocol p, List<TreeNode> list) { int contactCounter; int onlineContactCounter; Enumeration<Group> e = p.getGroupItems().elements(); while (e.hasMoreElements()) { Group group = e.nextElement(); contactCounter = 0; onlineContactCounter = 0; Group newGroup = copyGroupWithoutContacts(group); list.add(newGroup); List<Contact> contacts = group.getContacts(); int contactsSize = contacts.size(); for (Contact contact : contacts) { // if (contact.isVisibleInContactList()) { if (newGroup.isExpanded()) { list.add(contact); } contactCounter++; // } if (contact.isOnline()) ++onlineContactCounter; } if (0 == contactCounter) { list.remove(list.size() - 1); } group.updateGroupData(contactsSize, onlineContactCounter); } Group group = p.getNotInListGroup(); list.add(group); List<Contact> contacts = group.getContacts(); contactCounter = 0; onlineContactCounter = 0; int contactsSize = contacts.size(); for (Contact contact : contacts) { // if (contact.isVisibleInContactList()) { if (group.isExpanded()) { list.add(contact); } contactCounter++; // } if (contact.isOnline()) ++onlineContactCounter; } if (0 == contactCounter) { list.remove(list.size() - 1); } group.updateGroupData(contactsSize, onlineContactCounter); RosterHelper.sort(list, p.getGroupItems()); }