Skip to content
This repository was archived by the owner on Jan 2, 2021. It is now read-only.

Commit 74884f5

Browse files
committed
Rename ContextMode to ActionMode
1 parent 80016e2 commit 74884f5

5 files changed

Lines changed: 42 additions & 20 deletions

File tree

multi-view-adapter/src/main/java/com/ahamed/multiviewadapter/BaseDataManager.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.ahamed.multiviewadapter;
1818

19+
import android.support.annotation.NonNull;
1920
import android.support.annotation.Nullable;
2021
import android.support.annotation.RestrictTo;
2122
import android.support.v7.util.ListUpdateCallback;
@@ -81,7 +82,7 @@ public final List<M> getSelectedItems() {
8182
*
8283
* @param selectedItems List of selected items
8384
*/
84-
public final void setSelectedItems(List<M> selectedItems) {
85+
public final void setSelectedItems(@NonNull List<M> selectedItems) {
8586
if (!(adapter instanceof SelectableAdapter)) {
8687
throw new IllegalStateException(
8788
"Make sure your adapter extends from com.ahamed.multiviewadapter.SelectableAdapter");
@@ -101,6 +102,24 @@ public final void setSelectedItems(List<M> selectedItems) {
101102
}
102103
}
103104

105+
/**
106+
* This method is used to clear the selected items in a {@link DataListManager} or {@link
107+
* DataItemManager}. It should be used in conjunction with the {@link SelectableAdapter}.
108+
* Exception will be thrown if calling {@link DataListManager} is not used in the {@link
109+
* SelectableAdapter}.
110+
*/
111+
public final void clearSelectedItems() {
112+
if (!(adapter instanceof SelectableAdapter)) {
113+
throw new IllegalStateException(
114+
"Make sure your adapter extends from com.ahamed.multiviewadapter.SelectableAdapter");
115+
}
116+
if (size() < 0) {
117+
return;
118+
}
119+
this.selectedItems = new SparseBooleanArray();
120+
onChanged(0, size(), null);
121+
}
122+
104123
/**
105124
* This method is used to get the selected item in a {@link DataListManager} or {@link
106125
* DataItemManager}. It should be used in conjunction with the {@link SelectableAdapter}

multi-view-adapter/src/main/java/com/ahamed/multiviewadapter/BaseViewHolder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ public final boolean isItemExpanded() {
122122

123123
/**
124124
* @return boolean value indicating whether the adapter is in context mode or not.
125-
* @see RecyclerAdapter#startContextMode()
126-
* @see RecyclerAdapter#stopContextMode()
125+
* @see RecyclerAdapter#startActionMode() ()
126+
* @see RecyclerAdapter#stopActionMode() ()
127127
*/
128-
public final boolean isInContextMode() {
129-
return actionListener.isAdapterInContextMode();
128+
public final boolean isInActionMode() {
129+
return actionListener.isAdapterInActionMode();
130130
}
131131

132132
/**

multi-view-adapter/src/main/java/com/ahamed/multiviewadapter/CoreRecyclerAdapter.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class CoreRecyclerAdapter extends RecyclerView.Adapter<BaseViewHolder> {
4545
}
4646
};
4747
ItemTouchHelper itemTouchHelper;
48-
boolean isInContextMode = false;
48+
boolean isInActionMode = false;
4949
@ExpandableMode int expandableMode = EXPANDABLE_MODE_NONE;
5050
@ExpandableMode int groupExpandableMode = EXPANDABLE_MODE_NONE;
5151
private int lastExpandedIndex = -1;
@@ -71,8 +71,8 @@ class CoreRecyclerAdapter extends RecyclerView.Adapter<BaseViewHolder> {
7171
return CoreRecyclerAdapter.this.itemExpanded(position);
7272
}
7373

74-
@Override public boolean isAdapterInContextMode() {
75-
return isInContextMode;
74+
@Override public boolean isAdapterInActionMode() {
75+
return isInActionMode;
7676
}
7777
};
7878

@@ -251,13 +251,16 @@ void onItemSelectionToggled(int position) {
251251
private void onItemExpansionToggled(int adapterPosition) {
252252
switch (expandableMode) {
253253
case EXPANDABLE_MODE_SINGLE:
254-
if (lastExpandedIndex == adapterPosition) {
255-
return;
256-
}
257254
if (lastExpandedIndex != -1) {
255+
expandedItems.put(lastExpandedIndex, false);
258256
getDataManager(lastExpandedIndex).onItemExpansionToggled(
259257
getItemPositionInManager(lastExpandedIndex));
260258
}
259+
if (lastExpandedIndex == adapterPosition) {
260+
lastExpandedIndex = -1;
261+
return;
262+
}
263+
expandedItems.put(adapterPosition, true);
261264
getDataManager(adapterPosition).onItemExpansionToggled(
262265
getItemPositionInManager(adapterPosition));
263266
lastExpandedIndex = adapterPosition;

multi-view-adapter/src/main/java/com/ahamed/multiviewadapter/RecyclerAdapter.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public final ItemDecorationManager getItemDecorationManager() {
8989
*
9090
* @param dataManager The DataManager to be added to {@link RecyclerAdapter}
9191
*/
92-
protected final void addDataManager(BaseDataManager dataManager) {
92+
public final void addDataManager(BaseDataManager dataManager) {
9393
dataManagers.add(dataManager);
9494
}
9595

@@ -98,7 +98,7 @@ protected final void addDataManager(BaseDataManager dataManager) {
9898
*
9999
* @param binder The ItemBinder to be register with {@link RecyclerAdapter}
100100
*/
101-
protected final void registerBinder(ItemBinder binder) {
101+
public final void registerBinder(ItemBinder binder) {
102102
addBinder(binder);
103103
}
104104

@@ -125,19 +125,19 @@ public final void setGroupExpandableMode(@ExpandableMode int groupExpandableMode
125125
/**
126126
* Helper method to set the adapter is in contextual action mode.
127127
*
128-
* @see BaseViewHolder To get the state of context mode
128+
* @see BaseViewHolder To get the state of action mode
129129
*/
130-
public final void startContextMode() {
131-
isInContextMode = true;
130+
public final void startActionMode() {
131+
isInActionMode = true;
132132
}
133133

134134
/**
135135
* Helper method to set the adapter has exited contextual action mode.
136136
*
137-
* @see BaseViewHolder To get the state of context mode
137+
* @see BaseViewHolder To get the state of action mode
138138
*/
139-
public final void stopContextMode() {
140-
isInContextMode = false;
139+
public final void stopActionMode() {
140+
isInActionMode = false;
141141
}
142142

143143
/**

multi-view-adapter/src/main/java/com/ahamed/multiviewadapter/listener/ItemActionListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@
3030

3131
boolean isItemExpanded(int adapterPosition);
3232

33-
boolean isAdapterInContextMode();
33+
boolean isAdapterInActionMode();
3434
}

0 commit comments

Comments
 (0)