Attempt to fix selector memeory leak. Add update checker

This commit is contained in:
hyb1996
2017-04-09 14:02:57 +08:00
parent 6844eb9841
commit 0e980c2e6a
72 changed files with 1282 additions and 415 deletions

View File

@@ -0,0 +1,18 @@
package com.stardust.widget;
import android.support.v7.widget.RecyclerView;
import android.view.View;
/**
* Created by Stardust on 2017/4/8.
*/
public abstract class BindableViewHolder<DataType> extends RecyclerView.ViewHolder{
public BindableViewHolder(View itemView) {
super(itemView);
}
public abstract void bind(DataType data);
}

View File

@@ -0,0 +1,39 @@
package com.stardust.widget;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
/**
* Created by Stardust on 2017/4/6.
*/
public class ItemTouchHelperSimpleCallback extends ItemTouchHelper.SimpleCallback {
private boolean mLongPressDragEnabled, mItemViewSwipeEnabled;
public ItemTouchHelperSimpleCallback(int dragDirs, int swipeDirs) {
super(dragDirs, swipeDirs);
mItemViewSwipeEnabled = swipeDirs != 0;
mLongPressDragEnabled = dragDirs != 0;
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
}
@Override
public boolean isLongPressDragEnabled() {
return mLongPressDragEnabled;
}
@Override
public boolean isItemViewSwipeEnabled() {
return mItemViewSwipeEnabled;
}
}

View File

@@ -0,0 +1,28 @@
package com.stardust.widget;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
/**
* Created by Stardust on 2017/4/8.
*/
public abstract class ViewHolderMutableAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
private ViewHolderSupplier<VH> mViewHolderSupplier;
public ViewHolderMutableAdapter(ViewHolderSupplier<VH> viewHolderSupplier) {
mViewHolderSupplier = viewHolderSupplier;
}
@Override
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
return mViewHolderSupplier.createViewHolder(parent, viewType);
}
public void setViewHolderSupplier(ViewHolderSupplier<VH> viewHolderSupplier) {
mViewHolderSupplier = viewHolderSupplier;
notifyDataSetChanged();
}
}

View File

@@ -0,0 +1,14 @@
package com.stardust.widget;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
/**
* Created by Stardust on 2017/4/8.
*/
public abstract class ViewHolderSupplier<VH extends RecyclerView.ViewHolder> {
public abstract VH createViewHolder(ViewGroup parent, int viewType);
}