private int getPlaceholderItemCount() { if (isPlaceholderVisible && placeholder != null) { return placeholder.getItemCount(); } return 0; } }
private static int getItemCount(Collection<? extends Group> groups) { int count = 0; for (Group group : groups) { count += group.getItemCount(); } return count; }
private int getItemCountBeforeGroup(int groupIndex) { int count = 0; for (Group group : groups.subList(0, groupIndex)) { count += group.getItemCount(); } return count; }
protected final int getItemCount(@NonNull Collection<? extends Group> groups) { int size = 0; for (Group group : groups) { size += group.getItemCount(); } return size; }
private static Item getItem(Collection<? extends Group> groups, int position) { int count = 0; for (Group group : groups) { if (position < count + group.getItemCount()) { return group.getItem(position - count); } else { count += group.getItemCount(); } } throw new IndexOutOfBoundsException("Requested position " + position + "in group adapter " + "but there are only " + count + " items"); }
public int getItemCount(int groupIndex) { if (groupIndex >= groups.size()) { throw new IndexOutOfBoundsException("Requested group index " + groupIndex + " but there are " + groups.size() + " groups"); } return groups.get(groupIndex).getItemCount(); }
public int getAdapterPosition(@NonNull Item contentItem) { int count = 0; for (Group group : groups) { int index = group.getPosition(contentItem); if (index >= 0) return index + count; count += group.getItemCount(); } return -1; }
protected int getItemCountBeforeGroup(final int groupIndex) { int size = 0; for (int i = 0; i < groupIndex; i++) { final Group currentGroup = getGroup(i); size += currentGroup.getItemCount(); } return size; }
@Override public void remove(@NonNull Group group) { if (!this.children.contains(group)) return; super.remove(group); if (isExpanded) { int position = getItemCountBeforeGroup(group); children.remove(group); notifyItemRangeRemoved(position, group.getItemCount()); } else { children.remove(group); } }
public void add(@NonNull Group group) { if (group == null) throw new RuntimeException("Group cannot be null"); int itemCountBeforeGroup = getItemCount(); group.registerGroupDataObserver(this); groups.add(group); notifyItemRangeInserted(itemCountBeforeGroup, group.getItemCount()); }
@Override public void add(@NonNull Group group) { super.add(group); if (isExpanded) { int itemCount = getItemCount(); children.add(group); notifyItemRangeInserted(itemCount, group.getItemCount()); } else { children.add(group); } }
public void add(int index, @NonNull Group group) { if (group == null) throw new RuntimeException("Group cannot be null"); group.registerGroupDataObserver(this); groups.add(index, group); int itemCountBeforeGroup = getItemCountBeforeGroup(index); notifyItemRangeInserted(itemCountBeforeGroup, group.getItemCount()); }
private void showPlaceholder() { if (isPlaceholderVisible || placeholder == null) return; isPlaceholderVisible = true; notifyItemRangeInserted(getHeaderItemCount(), placeholder.getItemCount()); }
private void remove(int position, @NonNull Group group) { int itemCountBeforeGroup = getItemCountBeforeGroup(position); group.unregisterGroupDataObserver(this); groups.remove(position); notifyItemRangeRemoved(itemCountBeforeGroup, group.getItemCount()); }
public int getItemCount() { int size = 0; for (int i = 0; i < getGroupCount(); i++) { Group group = getGroup(i); size += group.getItemCount(); } return size; }
private void hidePlaceholder() { if (!isPlaceholderVisible || placeholder == null) return; isPlaceholderVisible = false; notifyItemRangeRemoved(getHeaderItemCount(), placeholder.getItemCount()); }
/** * Every item in the group still exists but the data in each has changed (e.g. should rebind). * * @param group */ @CallSuper @Override public void onChanged(@NonNull Group group) { observable.onItemRangeChanged(this, getItemCountBeforeGroup(group), group.getItemCount()); }
@Override public void add(@NonNull Group group) { super.add(group); int position = getItemCountWithoutFooter(); children.add(group); notifyItemRangeInserted(position, group.getItemCount()); refreshEmptyState(); }
@Override public void remove(@NonNull Group group) { super.remove(group); int position = getItemCountBeforeGroup(group); children.remove(group); notifyItemRangeRemoved(position, group.getItemCount()); refreshEmptyState(); }
@Override public void add(int position, @NonNull Group group) { super.add(position, group); children.add(position, group); final int notifyPosition = getHeaderItemCount() + getItemCount(children.subList(0, position)); notifyItemRangeInserted(notifyPosition, group.getItemCount()); refreshEmptyState(); }