diff --git a/demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewAdapter.java b/demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewAdapter.java index 206733b..3b4c34d 100644 --- a/demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewAdapter.java +++ b/demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewAdapter.java @@ -15,7 +15,6 @@ import com.daimajia.androidanimations.library.YoYo; import com.daimajia.swipe.SimpleSwipeListener; import com.daimajia.swipe.SwipeLayout; import com.daimajia.swipe.adapters.RecyclerSwipeAdapter; -import com.daimajia.swipe.implments.SwipeItemRecyclerMangerImpl; import com.daimajia.swipedemo.R; import java.util.ArrayList; @@ -90,7 +89,7 @@ public class RecyclerViewAdapter extends RecyclerSwipeAdapter extends ArrayAdapter implements SwipeItemMangerInterface,SwipeAdapterInterface { +public abstract class ArraySwipeAdapter extends ArrayAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface { - private SwipeItemAdapterMangerImpl mItemManger = new SwipeItemAdapterMangerImpl(this); + private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this); {} public ArraySwipeAdapter(Context context, int resource) { super(context, resource); @@ -48,13 +48,8 @@ public abstract class ArraySwipeAdapter extends ArrayAdapter implements Swipe @Override public View getView(int position, View convertView, ViewGroup parent) { - boolean convertViewIsNull = convertView == null; View v = super.getView(position, convertView, parent); - if(convertViewIsNull){ - mItemManger.initialize(v, position); - }else{ - mItemManger.updateConvertView(v, position); - } + mItemManger.bind(v, position); return v; } diff --git a/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java index b51531d..bf72c9a 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java @@ -5,7 +5,7 @@ import android.view.ViewGroup; import android.widget.BaseAdapter; import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl; +import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; @@ -14,7 +14,7 @@ import java.util.List; public abstract class BaseSwipeAdapter extends BaseAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface { - protected SwipeItemAdapterMangerImpl mItemManger = new SwipeItemAdapterMangerImpl(this); + protected SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this); /** * return the {@link com.daimajia.swipe.SwipeLayout} resource id, int the view item. @@ -52,10 +52,8 @@ public abstract class BaseSwipeAdapter extends BaseAdapter implements SwipeItemM View v = convertView; if(v == null){ v = generateView(position, parent); - mItemManger.initialize(v, position); - }else{ - mItemManger.updateConvertView(v, position); } + mItemManger.bind(v, position); fillValues(position, v); return v; } diff --git a/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java index 7427fba..3e6a62c 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java @@ -7,7 +7,7 @@ import android.view.View; import android.view.ViewGroup; import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl; +import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; @@ -16,7 +16,7 @@ import java.util.List; public abstract class CursorSwipeAdapter extends CursorAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface { - private SwipeItemAdapterMangerImpl mItemManger = new SwipeItemAdapterMangerImpl(this); + private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this); protected CursorSwipeAdapter(Context context, Cursor c, boolean autoRequery) { super(context, c, autoRequery); @@ -28,13 +28,8 @@ public abstract class CursorSwipeAdapter extends CursorAdapter implements SwipeI @Override public View getView(int position, View convertView, ViewGroup parent) { - boolean convertViewIsNull = convertView == null; View v = super.getView(position, convertView, parent); - if(convertViewIsNull){ - mItemManger.initialize(v, position); - }else{ - mItemManger.updateConvertView(v, position); - } + mItemManger.bind(v, position); return v; } diff --git a/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java index 2861378..f6e9aed 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java @@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.implments.SwipeItemRecyclerMangerImpl; +import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; @@ -13,7 +13,7 @@ import java.util.List; public abstract class RecyclerSwipeAdapter extends RecyclerView.Adapter implements SwipeItemMangerInterface, SwipeAdapterInterface { - public SwipeItemRecyclerMangerImpl mItemManger = new SwipeItemRecyclerMangerImpl(this); + public SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this); @Override public abstract VH onCreateViewHolder(ViewGroup parent, int viewType); diff --git a/library/src/main/java/com/daimajia/swipe/adapters/SimpleCursorSwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/adapters/SimpleCursorSwipeAdapter.java index 75fbe0c..19b04ad 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/SimpleCursorSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/SimpleCursorSwipeAdapter.java @@ -7,7 +7,6 @@ import android.view.View; import android.view.ViewGroup; import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl; import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; @@ -17,7 +16,7 @@ import java.util.List; public abstract class SimpleCursorSwipeAdapter extends SimpleCursorAdapter implements SwipeItemMangerInterface, SwipeAdapterInterface { - private SwipeItemAdapterMangerImpl mItemManger = new SwipeItemAdapterMangerImpl(this); + private SwipeItemMangerImpl mItemManger = new SwipeItemMangerImpl(this); protected SimpleCursorSwipeAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) { super(context, layout, c, from, to, flags); @@ -29,13 +28,8 @@ public abstract class SimpleCursorSwipeAdapter extends SimpleCursorAdapter imple @Override public View getView(int position, View convertView, ViewGroup parent) { - boolean convertViewIsNull = convertView == null; View v = super.getView(position, convertView, parent); - if(convertViewIsNull){ - mItemManger.initialize(v, position); - }else{ - mItemManger.updateConvertView(v, position); - } + mItemManger.bind(v, position); return v; } diff --git a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java deleted file mode 100644 index 270af04..0000000 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.daimajia.swipe.implments; - -import android.view.View; - -import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.interfaces.SwipeAdapterInterface; - -/** - * SwipeItemMangerImpl is a helper class to help all the adapters to maintain open status. - */ -public class SwipeItemAdapterMangerImpl extends SwipeItemMangerImpl { - - public SwipeItemAdapterMangerImpl(SwipeAdapterInterface swipeAdapterInterface) { - super(swipeAdapterInterface); - } - - @Override - public void initialize(View target, int position) { - int resId = getSwipeLayoutId(position); - - OnLayoutListener onLayoutListener = new OnLayoutListener(position); - SwipeLayout swipeLayout = (SwipeLayout) target.findViewById(resId); - if (swipeLayout == null) - throw new IllegalStateException("can not find SwipeLayout in target view"); - - SwipeMemory swipeMemory = new SwipeMemory(position); - swipeLayout.addSwipeListener(swipeMemory); - swipeLayout.addOnLayoutListener(onLayoutListener); - swipeLayout.setTag(resId, new ValueBox(position, swipeMemory, onLayoutListener)); - - mShownLayouts.add(swipeLayout); - } - - @Override - public void updateConvertView(View target, int position) { - int resId = getSwipeLayoutId(position); - - SwipeLayout swipeLayout = (SwipeLayout) target.findViewById(resId); - if (swipeLayout == null) - throw new IllegalStateException("can not find SwipeLayout in target view"); - - ValueBox valueBox = (ValueBox) swipeLayout.getTag(resId); - valueBox.swipeMemory.setPosition(position); - valueBox.onLayoutListener.setPosition(position); - valueBox.position = position; - } - - @Override - public void bindView(View target, int position){ - - } - -} diff --git a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java index c3c4714..989849c 100644 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java +++ b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java @@ -17,7 +17,7 @@ import java.util.Set; /** * SwipeItemMangerImpl is a helper class to help all the adapters to maintain open status. */ -public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { +public class SwipeItemMangerImpl implements SwipeItemMangerInterface { private Attributes.Mode mode = Attributes.Mode.Single; public final int INVALID_POSITION = -1; @@ -47,16 +47,25 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { mOpenPosition = INVALID_POSITION; } - /* initialize and updateConvertView used for AdapterManagerImpl */ - public abstract void initialize(View target, int position); + public void bind(View view, int position) { + int resId = swipeAdapterInterface.getSwipeLayoutResourceId(position); + SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(resId); + if (swipeLayout == null) + throw new IllegalStateException("can not find SwipeLayout in target view"); - public abstract void updateConvertView(View target, int position); - - /* bindView used for RecyclerViewManagerImpl */ - public abstract void bindView(View target, int position); - - public int getSwipeLayoutId(int position) { - return swipeAdapterInterface.getSwipeLayoutResourceId(position); + if (swipeLayout.getTag(resId) == null) { + OnLayoutListener onLayoutListener = new OnLayoutListener(position); + SwipeMemory swipeMemory = new SwipeMemory(position); + swipeLayout.addSwipeListener(swipeMemory); + swipeLayout.addOnLayoutListener(onLayoutListener); + swipeLayout.setTag(resId, new ValueBox(position, swipeMemory, onLayoutListener)); + mShownLayouts.add(swipeLayout); + } else { + ValueBox valueBox = (ValueBox) swipeLayout.getTag(resId); + valueBox.swipeMemory.setPosition(position); + valueBox.onLayoutListener.setPosition(position); + valueBox.position = position; + } } @Override diff --git a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java deleted file mode 100644 index abbcd28..0000000 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.daimajia.swipe.implments; - -import android.view.View; - -import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.interfaces.SwipeAdapterInterface; - -/** - * SwipeItemRecyclerMangerImpl is a helper class to help the RecyclerView to maintain open status. - */ -public class SwipeItemRecyclerMangerImpl extends SwipeItemMangerImpl { - - public SwipeItemRecyclerMangerImpl(SwipeAdapterInterface swipeAdapterInterface) { - super(swipeAdapterInterface); - } - - @Override - public void bindView(View target, int position) { - int resId = getSwipeLayoutId(position); - - OnLayoutListener onLayoutListener = new OnLayoutListener(position); - SwipeLayout swipeLayout = (SwipeLayout) target.findViewById(resId); - if (swipeLayout == null) - throw new IllegalStateException("can not find SwipeLayout in target view"); - - if (swipeLayout.getTag(resId) == null) { - SwipeMemory swipeMemory = new SwipeMemory(position); - swipeLayout.addSwipeListener(swipeMemory); - swipeLayout.addOnLayoutListener(onLayoutListener); - swipeLayout.setTag(resId, new ValueBox(position, swipeMemory, onLayoutListener)); - mShownLayouts.add(swipeLayout); - } else { - ValueBox valueBox = (ValueBox) swipeLayout.getTag(resId); - valueBox.swipeMemory.setPosition(position); - valueBox.onLayoutListener.setPosition(position); - valueBox.position = position; - } - } - - @Override - public void initialize(View target, int position) { - - } - - @Override - public void updateConvertView(View target, int position) { - - } - -}