diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/generic/GenericIconItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/generic/GenericIconItem.java index cfb1bc209..b5f997af1 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/generic/GenericIconItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/generic/GenericIconItem.java @@ -6,7 +6,6 @@ import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.items.GenericAbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.iconics.view.IconicsImageView; import java.util.List; @@ -18,8 +17,6 @@ * Created by mikepenz on 28.12.15. */ public class GenericIconItem extends GenericAbstractItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public GenericIconItem(IconModel icon) { super(icon); @@ -66,25 +63,9 @@ public void unbindView(ViewHolder holder) { holder.name.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } /** diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/CheckBoxSampleItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/CheckBoxSampleItem.java index 4bca150da..043ed4a3f 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/CheckBoxSampleItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/CheckBoxSampleItem.java @@ -11,7 +11,6 @@ import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.fastadapter.listeners.ClickEventHook; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.materialdrawer.holder.StringHolder; import java.util.List; @@ -23,8 +22,6 @@ * Created by mikepenz on 28.12.15. */ public class CheckBoxSampleItem extends AbstractItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String header; public StringHolder name; @@ -99,28 +96,11 @@ public void unbindView(ViewHolder holder) { holder.description.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/IconItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/IconItem.java index 6acdc523c..09fd4d240 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/IconItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/IconItem.java @@ -9,7 +9,6 @@ import com.mikepenz.fastadapter.ISubItem; import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.iconics.typeface.IIcon; import com.mikepenz.iconics.view.IconicsImageView; @@ -22,8 +21,6 @@ * Created by mikepenz on 28.12.15. */ public class IconItem extends AbstractItem, IconItem.ViewHolder> implements ISubItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public IIcon mIcon; private T mParent; @@ -90,25 +87,9 @@ public void unbindView(ViewHolder holder) { holder.image.setImageDrawable(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } /** diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/ImageItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/ImageItem.java index bea0f79b3..95251187c 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/ImageItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/ImageItem.java @@ -20,7 +20,6 @@ import com.mikepenz.fastadapter.helpers.ClickListenerHelper; import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.fastadapter.listeners.ClickEventHook; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.iconics.view.IconicsImageView; import java.util.List; @@ -32,8 +31,6 @@ * Created by mikepenz on 28.12.15. */ public class ImageItem extends AbstractItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String mImageUrl; public String mName; @@ -112,15 +109,9 @@ public void unbindView(ViewHolder holder) { holder.imageView.setImageDrawable(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } + @Override + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } /** @@ -163,16 +154,6 @@ public static void viewPropertyStartCompat(ViewPropertyAnimator animator) { } } - /** - * return our ViewHolderFactory implementation here - * - * @return - */ - @Override - public ViewHolderFactory getFactory() { - return FACTORY; - } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/LetterItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/LetterItem.java index 3080c389e..d043d9b5c 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/LetterItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/LetterItem.java @@ -32,6 +32,11 @@ public void unbindView(ViewHolder holder) { holder.text.setText(null); } + @Override + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); + } + @Override public int getType() { return R.id.fastadapter_letter_item_id; diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/RadioButtonSampleItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/RadioButtonSampleItem.java index f55daa48e..62395d1d6 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/RadioButtonSampleItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/RadioButtonSampleItem.java @@ -7,11 +7,10 @@ import android.widget.RadioButton; import android.widget.TextView; -import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.FastAdapter; +import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.fastadapter.listeners.ClickEventHook; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.materialdrawer.holder.StringHolder; import java.util.List; @@ -24,8 +23,6 @@ * Created by mikepenz on 28.12.15. */ public class RadioButtonSampleItem extends AbstractItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String header; public StringHolder name; @@ -100,28 +97,11 @@ public void unbindView(ViewHolder holder) { holder.description.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java index 3c2359db5..80ae7e9bc 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleImageItem.java @@ -9,9 +9,8 @@ import com.bumptech.glide.Glide; import com.mikepenz.fastadapter.app.R; -import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; +import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.materialize.util.UIUtils; import java.util.List; @@ -23,12 +22,10 @@ * Created by mikepenz on 28.12.15. */ public class SimpleImageItem extends AbstractItem { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); - public String mImageUrl; - public String mName; - public String mDescription; + private String mImageUrl; + private String mName; + private String mDescription; public SimpleImageItem withImage(String imageUrl) { this.mImageUrl = imageUrl; @@ -99,25 +96,9 @@ public void unbindView(ViewHolder holder) { holder.imageDescription.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } /** diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleItem.java index ec4288b97..faa39eefa 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/SimpleItem.java @@ -10,9 +10,8 @@ import com.mikepenz.fastadapter.IDraggable; import com.mikepenz.fastadapter.IItem; import com.mikepenz.fastadapter.app.R; -import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; +import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.materialdrawer.holder.StringHolder; import com.mikepenz.materialize.util.UIUtils; @@ -25,8 +24,6 @@ * Created by mikepenz on 28.12.15. */ public class SimpleItem extends AbstractItem implements IDraggable { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String header; public StringHolder name; @@ -117,28 +114,11 @@ public void unbindView(ViewHolder holder) { holder.description.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/SwipeableItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/SwipeableItem.java index 1f2bf7cbe..d7b1aa98c 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/SwipeableItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/SwipeableItem.java @@ -11,7 +11,6 @@ import com.mikepenz.fastadapter.ISwipeable; import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.materialdrawer.holder.StringHolder; import java.util.List; @@ -23,8 +22,6 @@ * Created by Mattias on 2016-02-15. */ public class SwipeableItem extends AbstractItem implements ISwipeable { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public StringHolder name; public StringHolder description; @@ -136,28 +133,11 @@ public void unbindView(ViewHolder holder) { holder.swipedActionRunnable = null; } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java index e9c906cae..d9d2bee9d 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubExpandableItem.java @@ -17,7 +17,6 @@ import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.commons.items.AbstractExpandableItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.materialdrawer.holder.StringHolder; import com.mikepenz.materialize.util.UIUtils; @@ -30,8 +29,6 @@ * Created by mikepenz on 28.12.15. */ public class SimpleSubExpandableItem extends AbstractExpandableItem, SimpleSubExpandableItem.ViewHolder, SubItem> { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String header; public StringHolder name; @@ -160,28 +157,11 @@ public void unbindView(ViewHolder holder) { holder.icon.clearAnimation(); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java index 5af149427..3984453d3 100644 --- a/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java +++ b/app/src/main/java/com/mikepenz/fastadapter/app/items/expandable/SimpleSubItem.java @@ -15,7 +15,6 @@ import com.mikepenz.fastadapter.app.R; import com.mikepenz.fastadapter.commons.items.AbstractExpandableItem; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.materialdrawer.holder.StringHolder; import com.mikepenz.materialize.util.UIUtils; @@ -25,8 +24,6 @@ import butterknife.ButterKnife; public class SimpleSubItem extends AbstractExpandableItem> implements IDraggable { - //the static ViewHolderFactory which will be used to generate the ViewHolder for this Item - private static final ViewHolderFactory FACTORY = new ItemFactory(); public String header; public StringHolder name; @@ -117,28 +114,11 @@ public void unbindView(ViewHolder holder) { holder.description.setText(null); } - /** - * our ItemFactory implementation which creates the ViewHolder for our adapter. - * It is highly recommended to implement a ViewHolderFactory as it is 0-1ms faster for ViewHolder creation, - * and it is also many many times more efficient if you define custom listeners on views within your item. - */ - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - - /** - * return our ViewHolderFactory implementation here - * - * @return - */ @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } - /** * our ViewHolder */ diff --git a/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java b/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java index 86c72dc87..bfc56d32d 100644 --- a/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java +++ b/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java @@ -10,10 +10,7 @@ import com.mikepenz.fastadapter.FastAdapter; import com.mikepenz.fastadapter.IClickable; import com.mikepenz.fastadapter.IItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; -import java.lang.reflect.Constructor; -import java.lang.reflect.ParameterizedType; import java.util.Collections; import java.util.List; @@ -249,56 +246,14 @@ public VH getViewHolder(ViewGroup parent) { return getViewHolder(LayoutInflater.from(parent.getContext()).inflate(getLayoutRes(), parent, false)); } - protected ViewHolderFactory mFactory; - - /** - * set the view holder factory of this item - * - * @param factory to be set - * @return - */ - public Item withFactory(ViewHolderFactory factory) { - this.mFactory = factory; - return (Item) this; - } - - /** - * the abstract method to retrieve the ViewHolder factory - * The ViewHolder factory implementation should look like (see the commented code above) - * - * @return - */ - public ViewHolderFactory getFactory() { - if (mFactory == null) { - try { - this.mFactory = new ReflectionBasedViewHolderFactory<>(viewHolderType()); - } catch (Exception e) { - throw new RuntimeException("please set a ViewHolderFactory"); - } - } - - return mFactory; - } - - /** - * gets the viewHolder via the generic superclass - * - * @return the class of the ViewHolder - */ - protected Class viewHolderType() { - return ((Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1]); - } /** * This method returns the ViewHolder for our item, using the provided View. - * By default it will try to get the ViewHolder from the ViewHolderFactory. If this one is not implemented it will go over the generic way, wasting ~5ms * * @param v * @return the ViewHolder for this Item */ - public VH getViewHolder(View v) { - return getFactory().create(v); - } + public abstract VH getViewHolder(View v); /** * If this item equals to the given identifier @@ -334,30 +289,4 @@ public boolean equals(Object o) { public int hashCode() { return Long.valueOf(mIdentifier).hashCode(); } - - protected static class ReflectionBasedViewHolderFactory implements ViewHolderFactory { - private final Class clazz; - - public ReflectionBasedViewHolderFactory(Class clazz) { - this.clazz = clazz; - } - - @Override - public VH create(View v) { - try { - try { - Constructor constructor = clazz.getDeclaredConstructor(View.class); - //could be that the constructor is not public - constructor.setAccessible(true); - return constructor.newInstance(v); - } catch (NoSuchMethodException e) { - //maybe that viewholder has a default view - return clazz.newInstance(); - } - } catch (Exception e) { - // I am really out of options, you could have just set - throw new RuntimeException("You have to provide a ViewHolder with a constructor which takes a view!"); - } - } - } } diff --git a/library-core/src/main/java/com/mikepenz/fastadapter/items/GenericAbstractItem.java b/library-core/src/main/java/com/mikepenz/fastadapter/items/GenericAbstractItem.java index cc435b372..186ce5370 100644 --- a/library-core/src/main/java/com/mikepenz/fastadapter/items/GenericAbstractItem.java +++ b/library-core/src/main/java/com/mikepenz/fastadapter/items/GenericAbstractItem.java @@ -4,8 +4,6 @@ import com.mikepenz.fastadapter.IGenericItem; -import java.lang.reflect.ParameterizedType; - /** * Created by mikepenz on 14.07.15. * Implements the general methods of the IItem interface to speed up development. @@ -25,9 +23,4 @@ public Model getModel() { this.mModel = model; return this; } - - @Override - protected Class viewHolderType() { - return ((Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2]); - } } \ No newline at end of file diff --git a/library-core/src/main/java/com/mikepenz/fastadapter/utils/ViewHolderFactory.java b/library-core/src/main/java/com/mikepenz/fastadapter/utils/ViewHolderFactory.java deleted file mode 100644 index abb013b56..000000000 --- a/library-core/src/main/java/com/mikepenz/fastadapter/utils/ViewHolderFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mikepenz.fastadapter.utils; - -import android.support.v7.widget.RecyclerView; -import android.view.View; - -/** - * the interface for the ViewHolderFactory - * - * @param - */ -public interface ViewHolderFactory { - T create(View v); -} \ No newline at end of file diff --git a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ProgressItem.java b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ProgressItem.java index cde1f6fe0..7fa00e6b9 100644 --- a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ProgressItem.java +++ b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ProgressItem.java @@ -6,7 +6,6 @@ import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.library_extensions.R; import java.util.List; @@ -14,8 +13,6 @@ public class ProgressItem extends AbstractItem { - private static final ViewHolderFactory FACTORY = new ItemFactory(); - @Override public int getType() { return R.id.progress_item_id; @@ -39,15 +36,9 @@ public void unbindView(ViewHolder holder) { } - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } protected static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/SingleLineItem.java b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/SingleLineItem.java index 01f1d418e..87682aa69 100644 --- a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/SingleLineItem.java +++ b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/SingleLineItem.java @@ -11,7 +11,6 @@ import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.library_extensions.R; import com.mikepenz.materialize.holder.ImageHolder; import com.mikepenz.materialize.holder.StringHolder; @@ -23,8 +22,6 @@ */ public class SingleLineItem extends AbstractItem { - private static final ViewHolderFactory FACTORY = new ItemFactory(); - private StringHolder mName; private ImageHolder mAvatar, mIcon; @@ -126,15 +123,9 @@ public void unbindView(ViewHolder holder) { holder.icon.setVisibility(View.VISIBLE); } - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } protected static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ThreeLineItem.java b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ThreeLineItem.java index e90a35c68..7f1524c2f 100644 --- a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ThreeLineItem.java +++ b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/ThreeLineItem.java @@ -11,7 +11,6 @@ import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.library_extensions.R; import com.mikepenz.materialize.holder.ImageHolder; import com.mikepenz.materialize.holder.StringHolder; @@ -23,8 +22,6 @@ */ public class ThreeLineItem extends AbstractItem { - private static final ViewHolderFactory FACTORY = new ItemFactory(); - private StringHolder mName, mDescription; private ImageHolder mAvatar, mIcon; @@ -133,15 +130,9 @@ public void unbindView(ViewHolder holder) { holder.icon.setVisibility(View.VISIBLE); } - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } protected static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/TwoLineItem.java b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/TwoLineItem.java index db35326e3..460356580 100644 --- a/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/TwoLineItem.java +++ b/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/items/TwoLineItem.java @@ -11,7 +11,6 @@ import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.fastadapter.items.AbstractItem; -import com.mikepenz.fastadapter.utils.ViewHolderFactory; import com.mikepenz.library_extensions.R; import com.mikepenz.materialize.holder.ImageHolder; import com.mikepenz.materialize.holder.StringHolder; @@ -23,8 +22,6 @@ */ public class TwoLineItem extends AbstractItem { - private static final ViewHolderFactory FACTORY = new ItemFactory(); - private StringHolder mName, mDescription; private ImageHolder mAvatar, mIcon; @@ -137,15 +134,9 @@ public void unbindView(ViewHolder holder) { holder.icon.setVisibility(View.VISIBLE); } - protected static class ItemFactory implements ViewHolderFactory { - public ViewHolder create(View v) { - return new ViewHolder(v); - } - } - @Override - public ViewHolderFactory getFactory() { - return FACTORY; + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); } protected static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/library/src/androidTest/java/com/mikepenz/fastadapter/TestItem.java b/library/src/androidTest/java/com/mikepenz/fastadapter/TestItem.java index e05b26b3d..cfe9a4a84 100644 --- a/library/src/androidTest/java/com/mikepenz/fastadapter/TestItem.java +++ b/library/src/androidTest/java/com/mikepenz/fastadapter/TestItem.java @@ -70,6 +70,11 @@ public TestItem withParent(TestItem parent) { return this; } + @Override + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); + } + public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View view) { super(view); diff --git a/library/src/test/java/com/mikepenz/fastadapter/TestItem.java b/library/src/test/java/com/mikepenz/fastadapter/TestItem.java index 2aaf0cba7..1d3085612 100644 --- a/library/src/test/java/com/mikepenz/fastadapter/TestItem.java +++ b/library/src/test/java/com/mikepenz/fastadapter/TestItem.java @@ -63,6 +63,11 @@ public TestItem withParent(TestItem parent) { return this; } + @Override + public ViewHolder getViewHolder(View v) { + return new ViewHolder(v); + } + public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View view) { super(view);