diff --git a/library/src/main/java/com/daimajia/swipe/adapters/ArraySwipeAdapter.java b/library/src/main/java/com/daimajia/swipe/adapters/ArraySwipeAdapter.java index 3912e72..41ce385 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/ArraySwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/ArraySwipeAdapter.java @@ -7,7 +7,6 @@ import android.widget.ArrayAdapter; 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; @@ -42,6 +41,11 @@ public abstract class ArraySwipeAdapter extends ArrayAdapter implements Swipe super(context, resource, textViewResourceId, objects); } + @Override + public void notifyDatasetChanged() { + super.notifyDataSetChanged(); + } + @Override public View getView(int position, View convertView, ViewGroup parent) { boolean convertViewIsNull = convertView == null; 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 b7fb1ae..b51531d 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/BaseSwipeAdapter.java @@ -7,7 +7,6 @@ import android.widget.BaseAdapter; import com.daimajia.swipe.SwipeLayout; import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; -import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; @@ -42,6 +41,11 @@ public abstract class BaseSwipeAdapter extends BaseAdapter implements SwipeItemM */ public abstract void fillValues(int position, View convertView); + @Override + public void notifyDatasetChanged() { + super.notifyDataSetChanged(); + } + @Override public final View getView(int position, View convertView, ViewGroup parent) { 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 0bde0e8..7427fba 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/CursorSwipeAdapter.java @@ -9,7 +9,6 @@ import android.view.ViewGroup; import com.daimajia.swipe.SwipeLayout; import com.daimajia.swipe.implments.SwipeItemAdapterMangerImpl; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; -import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; @@ -54,6 +53,11 @@ public abstract class CursorSwipeAdapter extends CursorAdapter implements SwipeI mItemManger.closeAllExcept(layout); } + @Override + public void closeAllItems() { + mItemManger.closeAllItems(); + } + @Override public List getOpenItems() { return mItemManger.getOpenItems(); 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 e68de7f..2861378 100644 --- a/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java +++ b/library/src/main/java/com/daimajia/swipe/adapters/RecyclerSwipeAdapter.java @@ -21,6 +21,11 @@ public abstract class RecyclerSwipeAdapter e @Override public abstract void onBindViewHolder(VH viewHolder, final int position); + @Override + public void notifyDatasetChanged() { + super.notifyDataSetChanged(); + } + @Override public void openItem(int position) { mItemManger.openItem(position); diff --git a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java index de3a570..270af04 100644 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java +++ b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemAdapterMangerImpl.java @@ -1,30 +1,17 @@ package com.daimajia.swipe.implments; import android.view.View; -import android.widget.BaseAdapter; -import com.daimajia.swipe.SimpleSwipeListener; import com.daimajia.swipe.SwipeLayout; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; -import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; -import com.daimajia.swipe.util.Attributes; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; /** * SwipeItemMangerImpl is a helper class to help all the adapters to maintain open status. */ -public class SwipeItemAdapterMangerImpl extends SwipeItemMangerImpl{ +public class SwipeItemAdapterMangerImpl extends SwipeItemMangerImpl { - protected BaseAdapter mAdapter; - - public SwipeItemAdapterMangerImpl(BaseAdapter adapter) { - super(adapter); - this.mAdapter = adapter; + public SwipeItemAdapterMangerImpl(SwipeAdapterInterface swipeAdapterInterface) { + super(swipeAdapterInterface); } @Override 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 e4a330e..c3c4714 100644 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java +++ b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java @@ -1,8 +1,6 @@ package com.daimajia.swipe.implments; -import android.support.v7.widget.RecyclerView; import android.view.View; -import android.widget.BaseAdapter; import com.daimajia.swipe.SimpleSwipeListener; import com.daimajia.swipe.SwipeLayout; @@ -11,7 +9,7 @@ import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; import com.daimajia.swipe.util.Attributes; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -29,27 +27,13 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { protected Set mOpenPositions = new HashSet(); protected Set mShownLayouts = new HashSet(); - protected BaseAdapter mBaseAdapter; - protected RecyclerView.Adapter mRecyclerAdapter; + protected SwipeAdapterInterface swipeAdapterInterface; - public SwipeItemMangerImpl(BaseAdapter adapter) { - if (adapter == null) - throw new IllegalArgumentException("Adapter can not be null"); + public SwipeItemMangerImpl(SwipeAdapterInterface swipeAdapterInterface) { + if (swipeAdapterInterface == null) + throw new IllegalArgumentException("SwipeAdapterInterface can not be null"); - if (!(adapter instanceof SwipeItemMangerInterface)) - throw new IllegalArgumentException("adapter should implement the SwipeAdapterInterface"); - - this.mBaseAdapter = adapter; - } - - public SwipeItemMangerImpl(RecyclerView.Adapter adapter) { - if (adapter == null) - throw new IllegalArgumentException("Adapter can not be null"); - - if (!(adapter instanceof SwipeItemMangerInterface)) - throw new IllegalArgumentException("adapter should implement the SwipeAdapterInterface"); - - this.mRecyclerAdapter = adapter; + this.swipeAdapterInterface = swipeAdapterInterface; } public Attributes.Mode getMode() { @@ -72,13 +56,7 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { public abstract void bindView(View target, int position); public int getSwipeLayoutId(int position) { - if (mBaseAdapter != null) { - return ((SwipeAdapterInterface) (mBaseAdapter)).getSwipeLayoutResourceId(position); - } else if (mRecyclerAdapter != null) { - return ((SwipeAdapterInterface) (mRecyclerAdapter)).getSwipeLayoutResourceId(position); - } else { - return -1; - } + return swipeAdapterInterface.getSwipeLayoutResourceId(position); } @Override @@ -89,11 +67,7 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { } else { mOpenPosition = position; } - if (mBaseAdapter != null) { - mBaseAdapter.notifyDataSetChanged(); - } else if (mRecyclerAdapter != null) { - mRecyclerAdapter.notifyDataSetChanged(); - } + swipeAdapterInterface.notifyDatasetChanged(); } @Override @@ -104,11 +78,7 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { if (mOpenPosition == position) mOpenPosition = INVALID_POSITION; } - if (mBaseAdapter != null) { - mBaseAdapter.notifyDataSetChanged(); - } else if (mRecyclerAdapter != null) { - mRecyclerAdapter.notifyDataSetChanged(); - } + swipeAdapterInterface.notifyDatasetChanged(); } @Override @@ -141,7 +111,7 @@ public abstract class SwipeItemMangerImpl implements SwipeItemMangerInterface { if (mode == Attributes.Mode.Multiple) { return new ArrayList(mOpenPositions); } else { - return Arrays.asList(mOpenPosition); + return Collections.singletonList(mOpenPosition); } } diff --git a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java index 97cd725..abbcd28 100644 --- a/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java +++ b/library/src/main/java/com/daimajia/swipe/implments/SwipeItemRecyclerMangerImpl.java @@ -1,30 +1,17 @@ package com.daimajia.swipe.implments; -import android.support.v7.widget.RecyclerView; import android.view.View; -import com.daimajia.swipe.SimpleSwipeListener; import com.daimajia.swipe.SwipeLayout; import com.daimajia.swipe.interfaces.SwipeAdapterInterface; -import com.daimajia.swipe.interfaces.SwipeItemMangerInterface; -import com.daimajia.swipe.util.Attributes; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; /** * SwipeItemRecyclerMangerImpl is a helper class to help the RecyclerView to maintain open status. */ -public class SwipeItemRecyclerMangerImpl extends SwipeItemMangerImpl{ +public class SwipeItemRecyclerMangerImpl extends SwipeItemMangerImpl { - protected RecyclerView.Adapter mAdapter; - - public SwipeItemRecyclerMangerImpl(RecyclerView.Adapter adapter) { - super(adapter); - this.mAdapter = adapter; + public SwipeItemRecyclerMangerImpl(SwipeAdapterInterface swipeAdapterInterface) { + super(swipeAdapterInterface); } @Override diff --git a/library/src/main/java/com/daimajia/swipe/interfaces/SwipeAdapterInterface.java b/library/src/main/java/com/daimajia/swipe/interfaces/SwipeAdapterInterface.java index 4b47fa2..9d0a770 100644 --- a/library/src/main/java/com/daimajia/swipe/interfaces/SwipeAdapterInterface.java +++ b/library/src/main/java/com/daimajia/swipe/interfaces/SwipeAdapterInterface.java @@ -1,5 +1,9 @@ package com.daimajia.swipe.interfaces; public interface SwipeAdapterInterface { - public int getSwipeLayoutResourceId(int position); + + int getSwipeLayoutResourceId(int position); + + void notifyDatasetChanged(); + } diff --git a/library/src/main/java/com/daimajia/swipe/interfaces/SwipeItemMangerInterface.java b/library/src/main/java/com/daimajia/swipe/interfaces/SwipeItemMangerInterface.java index b03f4a3..b9dd337 100644 --- a/library/src/main/java/com/daimajia/swipe/interfaces/SwipeItemMangerInterface.java +++ b/library/src/main/java/com/daimajia/swipe/interfaces/SwipeItemMangerInterface.java @@ -1,30 +1,29 @@ package com.daimajia.swipe.interfaces; import com.daimajia.swipe.SwipeLayout; -import com.daimajia.swipe.implments.SwipeItemMangerImpl; import com.daimajia.swipe.util.Attributes; import java.util.List; public interface SwipeItemMangerInterface { - public void openItem(int position); + void openItem(int position); - public void closeItem(int position); + void closeItem(int position); - public void closeAllExcept(SwipeLayout layout); + void closeAllExcept(SwipeLayout layout); - public void closeAllItems(); + void closeAllItems(); - public List getOpenItems(); + List getOpenItems(); - public List getOpenLayouts(); + List getOpenLayouts(); - public void removeShownLayouts(SwipeLayout layout); + void removeShownLayouts(SwipeLayout layout); - public boolean isOpen(int position); + boolean isOpen(int position); - public Attributes.Mode getMode(); + Attributes.Mode getMode(); - public void setMode(Attributes.Mode mode); + void setMode(Attributes.Mode mode); }