/** * returns the global position if the relative position within this adapter was given * * @param position the relative position * @return the global position */ public int getGlobalPosition(int position) { return position + getFastAdapter().getPreItemCountByOrder(getOrder()); }
/** * removes all items of this adapter */ public ModelAdapter<Model, Item> clear() { mItems.clear(getFastAdapter().getPreItemCountByOrder(getOrder())); return this; }
/** * helper method to get all selections from the ItemAdapter's original item list * * @return a Set with the global positions of all selected Items */ public Set<Integer> getSelections() { if (mOriginalItems != null) { Set<Integer> selections = new HashSet<>(); int adapterOffset = mItemAdapter.getFastAdapter().getPreItemCountByOrder(mItemAdapter.getOrder()); for (int i = 0, size = mOriginalItems.size(); i < size; i++) { Item item = mOriginalItems.get(i); if (item.isSelected()) { selections.add(i + adapterOffset); } } return selections; } else { return mItemAdapter.getFastAdapter().getSelections(); } }
@Override public void onChanged(int position, int count, Object payload) { adapter.getFastAdapter().notifyAdapterItemRangeChanged(adapter.getFastAdapter().getPreItemCountByOrder(adapter.getOrder()) + position, count, payload); } }
@Override public void onRemoved(int position, int count) { adapter.getFastAdapter().notifyAdapterItemRangeRemoved(adapter.getFastAdapter().getPreItemCountByOrder(adapter.getOrder()) + position, count); }
@Override public void onMoved(int fromPosition, int toPosition) { adapter.getFastAdapter().notifyAdapterItemMoved(adapter.getFastAdapter().getPreItemCountByOrder(adapter.getOrder()) + fromPosition, toPosition); }
@Override public void onInserted(int position, int count) { adapter.getFastAdapter().notifyAdapterItemRangeInserted(adapter.getFastAdapter().getPreItemCountByOrder(adapter.getOrder()) + position, count); }
public ModelAdapter<Model, Item> addInternal(int position, List<Item> items) { if (mUseIdDistributor) { getIdDistributor().checkIds(items); } if (items.size() > 0) { mItems.addAll(position, items, getFastAdapter().getPreItemCountByOrder(getOrder())); mapPossibleTypes(items); } return this; }
@Test public void getPreItemCountByOrder() throws Exception { List<TestItem> items = TestDataGenerator.genTestItemList(100); itemAdapter.set(items); assertThat(adapter.getPreItemCountByOrder(itemAdapter.getOrder())).isEqualTo(0); }
@Test public void getPreItemCountByOrder() throws Exception { List<TestItem> items = TestDataGenerator.genTestItemList(100); itemAdapter.set(items); assertThat(adapter.getPreItemCountByOrder(itemAdapter.getOrder())).isEqualTo(0); }
public ModelAdapter<Model, Item> addInternal(List<Item> items) { if (mUseIdDistributor) { getIdDistributor().checkIds(items); } FastAdapter<Item> fastAdapter = getFastAdapter(); if (fastAdapter != null) { mItems.addAll(items, fastAdapter.getPreItemCountByOrder(getOrder())); } else { mItems.addAll(items, 0); } mapPossibleTypes(items); return this; }
int preItemCount = getFastAdapter().getPreItemCountByOrder(getOrder()); for (int i = 0; i < getAdapterItemCount(); i++) { int globalPosition = i + preItemCount;
/** * set a new list of model and apply it to the existing list (clear - add) for this adapter * NOTE may consider using setNewList if the items list is a reference to the list which is used inside the adapter * * @param items the items to set * @param resetFilter `true` if the filter should get reset * @param adapterNotifier a `IAdapterNotifier` allowing to modify the notify logic for the adapter (keep null for default) * @return this */ public ModelAdapter<Model, Item> setInternal(List<Item> items, boolean resetFilter, @Nullable IAdapterNotifier adapterNotifier) { if (mUseIdDistributor) { getIdDistributor().checkIds(items); } //reset the filter if (resetFilter && getItemFilter().getConstraint() != null) { getItemFilter().performFiltering(null); } for (IAdapterExtension<Item> ext : getFastAdapter().getExtensions()) { ext.set(items, resetFilter); } //map the types mapPossibleTypes(items); //forward set int itemsBeforeThisAdapter = getFastAdapter().getPreItemCountByOrder(getOrder()); mItems.set(items, itemsBeforeThisAdapter, adapterNotifier); return this; }