@SuppressWarnings("unchecked") @Override public void onSwipeItemStarted(@NonNull RecyclerView.ViewHolder holder, int position) { if (!(mExpandableItemAdapter instanceof BaseExpandableSwipeableItemAdapter)) { return; } final BaseExpandableSwipeableItemAdapter adapter = (BaseExpandableSwipeableItemAdapter) mExpandableItemAdapter; //noinspection UnnecessaryLocalVariable final int flatPosition = position; final long expandablePosition = mPositionTranslator.getExpandablePosition(flatPosition); final int groupPosition = ExpandableAdapterHelper.getPackedPositionGroup(expandablePosition); final int childPosition = ExpandableAdapterHelper.getPackedPositionChild(expandablePosition); if (childPosition == RecyclerView.NO_POSITION) { adapter.onSwipeGroupItemStarted(holder, groupPosition); } else { adapter.onSwipeChildItemStarted(holder, groupPosition, childPosition); } }