Skip to content

Commit 9a0bb05

Browse files
author
Mike Cumings
committed
Swipe manager code does not need knowledge of the adapter implementation so remove it.
1 parent cc1d1b3 commit 9a0bb05

File tree

9 files changed

+51
-87
lines changed

9 files changed

+51
-87
lines changed

library/src/main/java/com/daimajia/swipe/adapters/ArraySwipeAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import com.daimajia.swipe.SwipeLayout;
99
import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl;
10-
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
1110
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
1211
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
1312
import com.daimajia.swipe.util.Attributes;
@@ -42,6 +41,11 @@ public ArraySwipeAdapter(Context context, int resource, int textViewResourceId,
4241
super(context, resource, textViewResourceId, objects);
4342
}
4443

44+
@Override
45+
public void notifyDatasetChanged() {
46+
super.notifyDataSetChanged();
47+
}
48+
4549
@Override
4650
public View getView(int position, View convertView, ViewGroup parent) {
4751
boolean convertViewIsNull = convertView == null;

library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.daimajia.swipe.SwipeLayout;
88
import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl;
99
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
10-
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
1110
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
1211
import com.daimajia.swipe.util.Attributes;
1312

@@ -42,6 +41,11 @@ public abstract class BaseSwipeAdapter extends BaseAdapter implements SwipeItemM
4241
*/
4342
public abstract void fillValues(int position, View convertView);
4443

44+
@Override
45+
public void notifyDatasetChanged() {
46+
super.notifyDataSetChanged();
47+
}
48+
4549

4650
@Override
4751
public final View getView(int position, View convertView, ViewGroup parent) {

library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.daimajia.swipe.SwipeLayout;
1010
import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl;
1111
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
12-
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
1312
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
1413
import com.daimajia.swipe.util.Attributes;
1514

@@ -54,6 +53,11 @@ public void closeAllExcept(SwipeLayout layout) {
5453
mItemManger.closeAllExcept(layout);
5554
}
5655

56+
@Override
57+
public void closeAllItems() {
58+
mItemManger.closeAllItems();
59+
}
60+
5761
@Override
5862
public List<Integer> getOpenItems() {
5963
return mItemManger.getOpenItems();

library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ public abstract class RecyclerSwipeAdapter<VH extends RecyclerView.ViewHolder> e
2121
@Override
2222
public abstract void onBindViewHolder(VH viewHolder, final int position);
2323

24+
@Override
25+
public void notifyDatasetChanged() {
26+
super.notifyDataSetChanged();
27+
}
28+
2429
@Override
2530
public void openItem(int position) {
2631
mItemManger.openItem(position);

library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,17 @@
11
package com.daimajia.swipe.implments;
22

33
import android.view.View;
4-
import android.widget.BaseAdapter;
54

6-
import com.daimajia.swipe.SimpleSwipeListener;
75
import com.daimajia.swipe.SwipeLayout;
86
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
9-
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
10-
import com.daimajia.swipe.util.Attributes;
11-
12-
import java.util.ArrayList;
13-
import java.util.Arrays;
14-
import java.util.HashSet;
15-
import java.util.List;
16-
import java.util.Set;
177

188
/**
199
* SwipeItemMangerImpl is a helper class to help all the adapters to maintain open status.
2010
*/
21-
public class SwipeItemAdapterMangerImpl extends SwipeItemMangerImpl{
22-
23-
protected BaseAdapter mAdapter;
11+
public class SwipeItemAdapterMangerImpl extends SwipeItemMangerImpl {
2412

25-
public SwipeItemAdapterMangerImpl(BaseAdapter adapter) {
26-
super(adapter);
27-
this.mAdapter = adapter;
13+
public SwipeItemAdapterMangerImpl(SwipeAdapterInterface swipeAdapterInterface) {
14+
super(swipeAdapterInterface);
2815
}
2916

3017
@Override

library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java

Lines changed: 10 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.daimajia.swipe.implments;
22

3-
import android.support.v7.widget.RecyclerView;
43
import android.view.View;
5-
import android.widget.BaseAdapter;
64

75
import com.daimajia.swipe.SimpleSwipeListener;
86
import com.daimajia.swipe.SwipeLayout;
@@ -11,7 +9,7 @@
119
import com.daimajia.swipe.util.Attributes;
1210

1311
import java.util.ArrayList;
14-
import java.util.Arrays;
12+
import java.util.Collections;
1513
import java.util.HashSet;
1614
import java.util.List;
1715
import java.util.Set;
@@ -29,27 +27,13 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface {
2927
protected Set<Integer> mOpenPositions = new HashSet<Integer>();
3028
protected Set<SwipeLayout> mShownLayouts = new HashSet<SwipeLayout>();
3129

32-
protected BaseAdapter mBaseAdapter;
33-
protected RecyclerView.Adapter mRecyclerAdapter;
30+
protected SwipeAdapterInterface swipeAdapterInterface;
3431

35-
public SwipeItemMangerImpl(BaseAdapter adapter) {
36-
if (adapter == null)
37-
throw new IllegalArgumentException("Adapter can not be null");
32+
public SwipeItemMangerImpl(SwipeAdapterInterface swipeAdapterInterface) {
33+
if (swipeAdapterInterface == null)
34+
throw new IllegalArgumentException("SwipeAdapterInterface can not be null");
3835

39-
if (!(adapter instanceof SwipeItemMangerInterface))
40-
throw new IllegalArgumentException("adapter should implement the SwipeAdapterInterface");
41-
42-
this.mBaseAdapter = adapter;
43-
}
44-
45-
public SwipeItemMangerImpl(RecyclerView.Adapter adapter) {
46-
if (adapter == null)
47-
throw new IllegalArgumentException("Adapter can not be null");
48-
49-
if (!(adapter instanceof SwipeItemMangerInterface))
50-
throw new IllegalArgumentException("adapter should implement the SwipeAdapterInterface");
51-
52-
this.mRecyclerAdapter = adapter;
36+
this.swipeAdapterInterface = swipeAdapterInterface;
5337
}
5438

5539
public Attributes.Mode getMode() {
@@ -72,13 +56,7 @@ public void setMode(Attributes.Mode mode) {
7256
public abstract void bindView(View target, int position);
7357

7458
public int getSwipeLayoutId(int position) {
75-
if (mBaseAdapter != null) {
76-
return ((SwipeAdapterInterface) (mBaseAdapter)).getSwipeLayoutResourceId(position);
77-
} else if (mRecyclerAdapter != null) {
78-
return ((SwipeAdapterInterface) (mRecyclerAdapter)).getSwipeLayoutResourceId(position);
79-
} else {
80-
return -1;
81-
}
59+
return swipeAdapterInterface.getSwipeLayoutResourceId(position);
8260
}
8361

8462
@Override
@@ -89,11 +67,7 @@ public void openItem(int position) {
8967
} else {
9068
mOpenPosition = position;
9169
}
92-
if (mBaseAdapter != null) {
93-
mBaseAdapter.notifyDataSetChanged();
94-
} else if (mRecyclerAdapter != null) {
95-
mRecyclerAdapter.notifyDataSetChanged();
96-
}
70+
swipeAdapterInterface.notifyDatasetChanged();
9771
}
9872

9973
@Override
@@ -104,11 +78,7 @@ public void closeItem(int position) {
10478
if (mOpenPosition == position)
10579
mOpenPosition = INVALID_POSITION;
10680
}
107-
if (mBaseAdapter != null) {
108-
mBaseAdapter.notifyDataSetChanged();
109-
} else if (mRecyclerAdapter != null) {
110-
mRecyclerAdapter.notifyDataSetChanged();
111-
}
81+
swipeAdapterInterface.notifyDatasetChanged();
11282
}
11383

11484
@Override
@@ -141,7 +111,7 @@ public List<Integer> getOpenItems() {
141111
if (mode == Attributes.Mode.Multiple) {
142112
return new ArrayList<Integer>(mOpenPositions);
143113
} else {
144-
return Arrays.asList(mOpenPosition);
114+
return Collections.singletonList(mOpenPosition);
145115
}
146116
}
147117

library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,17 @@
11
package com.daimajia.swipe.implments;
22

3-
import android.support.v7.widget.RecyclerView;
43
import android.view.View;
54

6-
import com.daimajia.swipe.SimpleSwipeListener;
75
import com.daimajia.swipe.SwipeLayout;
86
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
9-
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
10-
import com.daimajia.swipe.util.Attributes;
11-
12-
import java.util.ArrayList;
13-
import java.util.Arrays;
14-
import java.util.HashSet;
15-
import java.util.List;
16-
import java.util.Set;
177

188
/**
199
* SwipeItemRecyclerMangerImpl is a helper class to help the RecyclerView to maintain open status.
2010
*/
21-
public class SwipeItemRecyclerMangerImpl extends SwipeItemMangerImpl{
22-
23-
protected RecyclerView.Adapter mAdapter;
11+
public class SwipeItemRecyclerMangerImpl extends SwipeItemMangerImpl {
2412

25-
public SwipeItemRecyclerMangerImpl(RecyclerView.Adapter adapter) {
26-
super(adapter);
27-
this.mAdapter = adapter;
13+
public SwipeItemRecyclerMangerImpl(SwipeAdapterInterface swipeAdapterInterface) {
14+
super(swipeAdapterInterface);
2815
}
2916

3017
@Override
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package com.daimajia.swipe.interfaces;
22

33
public interface SwipeAdapterInterface {
4-
public int getSwipeLayoutResourceId(int position);
4+
5+
int getSwipeLayoutResourceId(int position);
6+
7+
void notifyDatasetChanged();
8+
59
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
package com.daimajia.swipe.interfaces;
22

33
import com.daimajia.swipe.SwipeLayout;
4-
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
54
import com.daimajia.swipe.util.Attributes;
65

76
import java.util.List;
87

98
public interface SwipeItemMangerInterface {
109

11-
public void openItem(int position);
10+
void openItem(int position);
1211

13-
public void closeItem(int position);
12+
void closeItem(int position);
1413

15-
public void closeAllExcept(SwipeLayout layout);
14+
void closeAllExcept(SwipeLayout layout);
1615

17-
public void closeAllItems();
16+
void closeAllItems();
1817

19-
public List<Integer> getOpenItems();
18+
List<Integer> getOpenItems();
2019

21-
public List<SwipeLayout> getOpenLayouts();
20+
List<SwipeLayout> getOpenLayouts();
2221

23-
public void removeShownLayouts(SwipeLayout layout);
22+
void removeShownLayouts(SwipeLayout layout);
2423

25-
public boolean isOpen(int position);
24+
boolean isOpen(int position);
2625

27-
public Attributes.Mode getMode();
26+
Attributes.Mode getMode();
2827

29-
public void setMode(Attributes.Mode mode);
28+
void setMode(Attributes.Mode mode);
3029
}

0 commit comments

Comments
 (0)