/*package*/ int getFlatPosition(long packedPosition) { return mPositionTranslator.getFlatPosition(packedPosition); }
/*package*/ void notifyGroupItemChanged(int groupPosition, Object payload) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemChanged(flatPosition, payload); } }
/*package*/ void notifyChildItemRangeChanged(int groupPosition, int childPositionStart, int itemCount, Object payload) { final int visibleChildCount = mPositionTranslator.getVisibleChildCount(groupPosition); // notify if the group is expanded if ((visibleChildCount > 0) && (childPositionStart < visibleChildCount)) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, 0); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { final int startPosition = flatPosition + childPositionStart; final int count = Math.min(itemCount, (visibleChildCount - childPositionStart)); notifyItemRangeChanged(startPosition, count, payload); } } }
/*package*/ void notifyGroupAndChildrenItemsChanged(int groupPosition, Object payload) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); final int visibleChildCount = mPositionTranslator.getVisibleChildCount(groupPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeChanged(flatPosition, 1 + visibleChildCount, payload); } }
/*package*/ void notifyChildItemInserted(int groupPosition, int childPosition) { mPositionTranslator.insertChildItem(groupPosition, childPosition); final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemInserted(flatPosition); } }
/*package*/ void notifyChildItemRemoved(int groupPosition, int childPosition) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); mPositionTranslator.removeChildItem(groupPosition, childPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRemoved(flatPosition); } }
/*package*/ void notifyChildrenOfGroupItemChanged(int groupPosition, Object payload) { final int visibleChildCount = mPositionTranslator.getVisibleChildCount(groupPosition); // notify if the group is expanded if (visibleChildCount > 0) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, 0); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeChanged(flatPosition, visibleChildCount, payload); } } }
/*package*/ void notifyChildItemRangeInserted(int groupPosition, int childPositionStart, int itemCount) { mPositionTranslator.insertChildItems(groupPosition, childPositionStart, itemCount); final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeInserted(flatPosition, itemCount); } }
/*package*/ void notifyChildItemRangeRemoved(int groupPosition, int childPositionStart, int itemCount) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); mPositionTranslator.removeChildItems(groupPosition, childPositionStart, itemCount); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeRemoved(flatPosition, itemCount); } }
/*package*/ void notifyGroupItemRemoved(int groupPosition) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); int removedCount = mPositionTranslator.removeGroupItem(groupPosition); if (removedCount > 0) { notifyItemRangeRemoved(flatPosition, removedCount); } }
/*package*/ void notifyGroupItemRangeRemoved(int groupPositionStart, int count) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); int removedCount = mPositionTranslator.removeGroupItems(groupPositionStart, count); if (removedCount > 0) { notifyItemRangeRemoved(flatPosition, removedCount); } }
/*package*/ void notifyGroupItemRangeInserted(int groupPositionStart, int count, boolean expanded) { int insertedCount = mPositionTranslator.insertGroupItems(groupPositionStart, count, expanded); if (insertedCount > 0) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemRangeInserted(flatPosition, insertedCount); raiseOnGroupExpandedSequentially(groupPositionStart, count, false, null); } }
/*package*/ void notifyGroupItemInserted(int groupPosition, boolean expanded) { int insertedCount = mPositionTranslator.insertGroupItem(groupPosition, expanded); if (insertedCount > 0) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemInserted(flatPosition); // raise onGroupExpand() event raiseOnGroupExpandedSequentially(groupPosition, 1, false, null); } }
/*package*/ boolean collapseGroup(int groupPosition, boolean fromUser, Object payload) { if (!mPositionTranslator.isGroupExpanded(groupPosition)) { return false; } // call hook method if (!mExpandableItemAdapter.onHookGroupCollapse(groupPosition, fromUser, payload)) { return false; } if (mPositionTranslator.collapseGroup(groupPosition)) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); final int childCount = mPositionTranslator.getChildCount(groupPosition); notifyItemRangeRemoved(flatPosition + 1, childCount); } { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemChanged(flatPosition, payload); } // raise onGroupCollapse() event if (mOnGroupCollapseListener != null) { mOnGroupCollapseListener.onGroupCollapse(groupPosition, fromUser, payload); } return true; }
/*package*/ boolean expandGroup(int groupPosition, boolean fromUser, Object payload) { if (mPositionTranslator.isGroupExpanded(groupPosition)) { return false; } // call hook method if (!mExpandableItemAdapter.onHookGroupExpand(groupPosition, fromUser, payload)) { return false; } if (mPositionTranslator.expandGroup(groupPosition)) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); final int childCount = mPositionTranslator.getChildCount(groupPosition); notifyItemRangeInserted(flatPosition + 1, childCount); } { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemChanged(flatPosition, payload); } // raise onGroupExpand() event if (mOnGroupExpandListener != null) { mOnGroupExpandListener.onGroupExpand(groupPosition, fromUser, payload); } return true; }
final long startPackedGroupPosition = ExpandableAdapterHelper.getPackedPositionForGroup(range.getStart()); final long endPackedGroupPosition = ExpandableAdapterHelper.getPackedPositionForGroup(range.getEnd()); final int start = mPositionTranslator.getFlatPosition(startPackedGroupPosition); int end = mPositionTranslator.getFlatPosition(endPackedGroupPosition); final long startPackedGroupPosition = ExpandableAdapterHelper.getPackedPositionForGroup(range.getStart()); final long endPackedGroupPosition = ExpandableAdapterHelper.getPackedPositionForGroup(range.getEnd()); final int end = mPositionTranslator.getFlatPosition(endPackedGroupPosition) + mPositionTranslator.getVisibleChildCount(range.getEnd()); int start = mPositionTranslator.getFlatPosition(startPackedGroupPosition) + 1; final long startPackedChildPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childStart); final long endPackedChildPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childEnd); final int start = mPositionTranslator.getFlatPosition(startPackedChildPosition); final int end = mPositionTranslator.getFlatPosition(endPackedChildPosition);
actualToFlatPosition = mPositionTranslator.getFlatPosition( ExpandableAdapterHelper.getPackedPositionForChild(fromGroupPosition, modToChildPosition)); actualToFlatPosition = mPositionTranslator.getFlatPosition(ExpandableAdapterHelper.getPackedPositionForGroup(toGroupPosition));