Skip to content

Commit 0b485a1

Browse files
committed
add swipe adapter utils
1 parent 677c318 commit 0b485a1

File tree

7 files changed

+624
-0
lines changed

7 files changed

+624
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package com.daimajia.swipe.adapters;
2+
3+
import android.content.Context;
4+
import android.view.View;
5+
import android.view.ViewGroup;
6+
import android.widget.ArrayAdapter;
7+
8+
import com.daimajia.swipe.SwipeLayout;
9+
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
10+
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
11+
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
12+
13+
import java.util.List;
14+
15+
public abstract class ArraySwipeAdapter<T> extends ArrayAdapter implements SwipeItemMangerInterface,SwipeAdapterInterface {
16+
17+
private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this);
18+
{}
19+
public ArraySwipeAdapter(Context context, int resource) {
20+
super(context, resource);
21+
}
22+
23+
public ArraySwipeAdapter(Context context, int resource, int textViewResourceId) {
24+
super(context, resource, textViewResourceId);
25+
}
26+
27+
public ArraySwipeAdapter(Context context, int resource, T[] objects) {
28+
super(context, resource, objects);
29+
}
30+
31+
public ArraySwipeAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
32+
super(context, resource, textViewResourceId, objects);
33+
}
34+
35+
public ArraySwipeAdapter(Context context, int resource, List<T> objects) {
36+
super(context, resource, objects);
37+
}
38+
39+
public ArraySwipeAdapter(Context context, int resource, int textViewResourceId, List<T> objects) {
40+
super(context, resource, textViewResourceId, objects);
41+
}
42+
43+
@Override
44+
public View getView(int position, View convertView, ViewGroup parent) {
45+
boolean convertViewIsNull = convertView == null;
46+
View v = super.getView(position, convertView, parent);
47+
if(convertViewIsNull){
48+
mItemManger.initialize(v, position);
49+
}else{
50+
mItemManger.updateConvertView(v, position);
51+
}
52+
return v;
53+
}
54+
55+
@Override
56+
public void openItem(int position) {
57+
mItemManger.openItem(position);
58+
}
59+
60+
@Override
61+
public void closeItem(int position) {
62+
mItemManger.closeItem(position);
63+
}
64+
65+
@Override
66+
public void closeAllExcept(SwipeLayout layout) {
67+
mItemManger.closeAllExcept(layout);
68+
}
69+
70+
@Override
71+
public List<Integer> getOpenItems() {
72+
return mItemManger.getOpenItems();
73+
}
74+
75+
@Override
76+
public List<SwipeLayout> getOpenLayouts() {
77+
return mItemManger.getOpenLayouts();
78+
}
79+
80+
@Override
81+
public void removeShownLayouts(SwipeLayout layout) {
82+
mItemManger.removeShownLayouts(layout);
83+
}
84+
85+
@Override
86+
public boolean isOpen(int position) {
87+
return mItemManger.isOpen(position);
88+
}
89+
90+
@Override
91+
public SwipeItemMangerImpl.Mode getMode() {
92+
return mItemManger.getMode();
93+
}
94+
95+
@Override
96+
public void setMode(SwipeItemMangerImpl.Mode mode) {
97+
mItemManger.setMode(mode);
98+
}
99+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package com.daimajia.swipe.adapters;
2+
3+
import android.view.View;
4+
import android.view.ViewGroup;
5+
import android.widget.BaseAdapter;
6+
7+
import com.daimajia.swipe.SwipeLayout;
8+
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
9+
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
10+
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
11+
12+
import java.util.List;
13+
14+
public abstract class BaseSwipeAdapter extends BaseAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface {
15+
16+
protected SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this);
17+
18+
/**
19+
* return the {@link com.daimajia.swipe.SwipeLayout} resource id, int the view item.
20+
* @param position
21+
* @return
22+
*/
23+
public abstract int getSwipeLayoutResourceId(int position);
24+
25+
/**
26+
* generate a new view item.
27+
* Never bind SwipeListener or fill values here, every item has a chance to fill value or bind
28+
* listeners in fillValues.
29+
* to fill it in {@code fillValues} method.
30+
* @param position
31+
* @param parent
32+
* @return
33+
*/
34+
public abstract View generateView(int position, ViewGroup parent);
35+
36+
/**
37+
* fill values or bind listeners to the view.
38+
* @param position
39+
* @param convertView
40+
*/
41+
public abstract void fillValues(int position, View convertView);
42+
43+
44+
@Override
45+
public final View getView(int position, View convertView, ViewGroup parent) {
46+
View v = convertView;
47+
if(v == null){
48+
v = generateView(position, parent);
49+
mItemManger.initialize(v, position);
50+
}else{
51+
mItemManger.updateConvertView(v, position);
52+
}
53+
fillValues(position, v);
54+
return v;
55+
}
56+
57+
@Override
58+
public void openItem(int position) {
59+
mItemManger.openItem(position);
60+
}
61+
62+
@Override
63+
public void closeItem(int position) {
64+
mItemManger.closeItem(position);
65+
}
66+
67+
@Override
68+
public void closeAllExcept(SwipeLayout layout) {
69+
mItemManger.closeAllExcept(layout);
70+
}
71+
72+
@Override
73+
public List<Integer> getOpenItems() {
74+
return mItemManger.getOpenItems();
75+
}
76+
77+
@Override
78+
public List<SwipeLayout> getOpenLayouts() {
79+
return mItemManger.getOpenLayouts();
80+
}
81+
82+
@Override
83+
public void removeShownLayouts(SwipeLayout layout) {
84+
mItemManger.removeShownLayouts(layout);
85+
}
86+
87+
@Override
88+
public boolean isOpen(int position) {
89+
return mItemManger.isOpen(position);
90+
}
91+
92+
@Override
93+
public SwipeItemMangerImpl.Mode getMode() {
94+
return mItemManger.getMode();
95+
}
96+
97+
@Override
98+
public void setMode(SwipeItemMangerImpl.Mode mode) {
99+
mItemManger.setMode(mode);
100+
}
101+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package com.daimajia.swipe.adapters;
2+
3+
import android.content.Context;
4+
import android.database.Cursor;
5+
import android.support.v4.widget.CursorAdapter;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
9+
import com.daimajia.swipe.SwipeLayout;
10+
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
11+
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
12+
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
13+
14+
import java.util.List;
15+
16+
public abstract class CursorSwipeAdapter extends CursorAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface {
17+
18+
private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this);
19+
20+
protected CursorSwipeAdapter(Context context, Cursor c, boolean autoRequery) {
21+
super(context, c, autoRequery);
22+
}
23+
24+
protected CursorSwipeAdapter(Context context, Cursor c, int flags) {
25+
super(context, c, flags);
26+
}
27+
28+
@Override
29+
public View getView(int position, View convertView, ViewGroup parent) {
30+
boolean convertViewIsNull = convertView == null;
31+
View v = super.getView(position, convertView, parent);
32+
if(convertViewIsNull){
33+
mItemManger.initialize(v, position);
34+
}else{
35+
mItemManger.updateConvertView(v, position);
36+
}
37+
return v;
38+
}
39+
40+
@Override
41+
public void openItem(int position) {
42+
mItemManger.openItem(position);
43+
}
44+
45+
@Override
46+
public void closeItem(int position) {
47+
mItemManger.closeItem(position);
48+
}
49+
50+
@Override
51+
public void closeAllExcept(SwipeLayout layout) {
52+
mItemManger.closeAllExcept(layout);
53+
}
54+
55+
@Override
56+
public List<Integer> getOpenItems() {
57+
return mItemManger.getOpenItems();
58+
}
59+
60+
@Override
61+
public List<SwipeLayout> getOpenLayouts() {
62+
return mItemManger.getOpenLayouts();
63+
}
64+
65+
@Override
66+
public void removeShownLayouts(SwipeLayout layout) {
67+
mItemManger.removeShownLayouts(layout);
68+
}
69+
70+
@Override
71+
public boolean isOpen(int position) {
72+
return mItemManger.isOpen(position);
73+
}
74+
75+
@Override
76+
public SwipeItemMangerImpl.Mode getMode() {
77+
return mItemManger.getMode();
78+
}
79+
80+
@Override
81+
public void setMode(SwipeItemMangerImpl.Mode mode) {
82+
mItemManger.setMode(mode);
83+
}
84+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.daimajia.swipe.adapters;
2+
3+
import android.annotation.TargetApi;
4+
import android.content.Context;
5+
import android.database.Cursor;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.SimpleCursorAdapter;
9+
10+
import com.daimajia.swipe.SwipeLayout;
11+
import com.daimajia.swipe.implments.SwipeItemMangerImpl;
12+
import com.daimajia.swipe.interfaces.SwipeAdapterInterface;
13+
import com.daimajia.swipe.interfaces.SwipeItemMangerInterface;
14+
15+
import java.util.List;
16+
17+
public abstract class SimpleCursorSwipeAdapter extends SimpleCursorAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface {
18+
19+
private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this);
20+
21+
@TargetApi(11)
22+
protected SimpleCursorSwipeAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
23+
super(context, layout, c, from, to, flags);
24+
}
25+
26+
protected SimpleCursorSwipeAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
27+
super(context, layout, c, from, to);
28+
}
29+
30+
@Override
31+
public View getView(int position, View convertView, ViewGroup parent) {
32+
boolean convertViewIsNull = convertView == null;
33+
View v = super.getView(position, convertView, parent);
34+
if(convertViewIsNull){
35+
mItemManger.initialize(v, position);
36+
}else{
37+
mItemManger.updateConvertView(v, position);
38+
}
39+
return v;
40+
}
41+
42+
@Override
43+
public void openItem(int position) {
44+
mItemManger.openItem(position);
45+
}
46+
47+
@Override
48+
public void closeItem(int position) {
49+
mItemManger.closeItem(position);
50+
}
51+
52+
@Override
53+
public void closeAllExcept(SwipeLayout layout) {
54+
mItemManger.closeAllExcept(layout);
55+
}
56+
57+
@Override
58+
public List<Integer> getOpenItems() {
59+
return mItemManger.getOpenItems();
60+
}
61+
62+
@Override
63+
public List<SwipeLayout> getOpenLayouts() {
64+
return mItemManger.getOpenLayouts();
65+
}
66+
67+
@Override
68+
public void removeShownLayouts(SwipeLayout layout) {
69+
mItemManger.removeShownLayouts(layout);
70+
}
71+
72+
@Override
73+
public boolean isOpen(int position) {
74+
return mItemManger.isOpen(position);
75+
}
76+
77+
@Override
78+
public SwipeItemMangerImpl.Mode getMode() {
79+
return mItemManger.getMode();
80+
}
81+
82+
@Override
83+
public void setMode(SwipeItemMangerImpl.Mode mode) {
84+
mItemManger.setMode(mode);
85+
}
86+
}

0 commit comments

Comments
 (0)