@Override public int compare(Tag tag, Tag tag2) { if (!TextUtils.equals(tag.getCategory(), tag2.getCategory())) { return Config.Tags.CATEGORY_DISPLAY_ORDERS.get(tag.getCategory()) - Config.Tags.CATEGORY_DISPLAY_ORDERS.get(tag2.getCategory()); } else if (tag.getOrderInCategory() != tag2.getOrderInCategory()) { return tag.getOrderInCategory() - tag2.getOrderInCategory(); } return tag.getName().compareTo(tag2.getName()); }
/** Given the set of tags on a session, returns its group label. */ public Tag getSessionGroupTag(String[] sessionTags) { int bestOrder = Integer.MAX_VALUE; Tag bestTag = null; for (String tagId : sessionTags) { Tag tag = getTag(tagId); if (tag != null && Config.Tags.SESSION_GROUPING_TAG_CATEGORY.equals(tag.getCategory()) && tag.getOrderInCategory() < bestOrder) { bestOrder = tag.getOrderInCategory(); bestTag = tag; } } return bestTag; }