@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()); }
public TagMetadata(Cursor cursor) { while (cursor.moveToNext()) { Tag tag = new Tag( cursor.getString(TagsQuery.TAG_ID), cursor.getString(TagsQuery.TAG_NAME), cursor.getString(TagsQuery.TAG_CATEGORY), cursor.getInt(TagsQuery.TAG_ORDER_IN_CATEGORY), cursor.getString(TagsQuery.TAG_ABSTRACT), cursor.getInt(TagsQuery.TAG_COLOR)); mTagsById.put(tag.getId(), tag); if (!mTagsInCategory.containsKey(tag.getCategory())) { mTagsInCategory.put(tag.getCategory(), new ArrayList<Tag>()); } mTagsInCategory.get(tag.getCategory()).add(tag); } for (ArrayList<Tag> list : mTagsInCategory.values()) { Collections.sort(list); } }
/** 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; }