// Path: lib/src/main/java/com/razerdp/github/lib/utils/ToolUtil.java
// public class ToolUtil {
// 
//     public static boolean isEmpty(Collection<?> datas) {
//         return datas == null || datas.size() <= 0;
//     }
// 
//     public static boolean isEmpty(Map map) {
//         return map == null || map.isEmpty();
//     }
// 
// 
//     public static boolean indexInCollection(Collection who, int index) {
//         if (who == null) return false;
//         return index >= 0 && index < who.size();
//     }
// 
// 
//     public static void install(Context context, String apkPath) {
//         Intent intent = new Intent(Intent.ACTION_VIEW);
//         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
//             File file = (new File(apkPath));
//             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//             Uri apkUri = FileProvider.getUriForFile(context, "github.razerdp.friendcircle", file);
//             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//             intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
//         } else {
//             intent.setDataAndType(Uri.fromFile(new File(apkPath)),
//                     "application/vnd.android.package-archive");
//         }
//         context.startActivity(intent);
//     }
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/base/adapter/interfaces/OnItemClickListener.java
// public interface OnItemClickListener<T> {
// 
//     void onItemClick(View v, int position, T data);
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/base/adapter/interfaces/OnItemLongClickListener.java
// public interface OnItemLongClickListener<T> {
// 
//     void onItemLongClick(View v, int position, T data);
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/utils/ViewUtil.java
// public class ViewUtil {
// 
//     public static View inflate(@LayoutRes int layout, ViewGroup parent, boolean attachToParent) {
//         return LayoutInflater.from(AppContext.getAppContext()).inflate(layout, parent, attachToParent);
//     }
// }


import android.content.Context;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Space;
import com.razerdp.github.lib.utils.ToolUtil;
import com.razerdp.github.uilib.base.adapter.interfaces.OnItemClickListener;
import com.razerdp.github.uilib.base.adapter.interfaces.OnItemLongClickListener;
import com.razerdp.github.uilib.utils.ViewUtil;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.core.view.GestureDetectorCompat;
import androidx.recyclerview.widget.RecyclerView;
package com.razerdp.github.uilib.base.adapter;





/**
 * Created by 大灯泡 on 2019/8/2.
 * <p>
 * baseadapter，请注意，adapter内部的数据跟外部不是同一个对象（预防外部修改导致内部修改）
 */
@SuppressWarnings("all")
public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<BaseRecyclerViewHolder<T>> {
    protected final String TAG = getClass().getSimpleName();

    protected Context mContext;
    protected List<T> mDatas;

// Path: lib/src/main/java/com/razerdp/github/lib/utils/ToolUtil.java
// public class ToolUtil {
// 
//     public static boolean isEmpty(Collection<?> datas) {
//         return datas == null || datas.size() <= 0;
//     }
// 
//     public static boolean isEmpty(Map map) {
//         return map == null || map.isEmpty();
//     }
// 
// 
//     public static boolean indexInCollection(Collection who, int index) {
//         if (who == null) return false;
//         return index >= 0 && index < who.size();
//     }
// 
// 
//     public static void install(Context context, String apkPath) {
//         Intent intent = new Intent(Intent.ACTION_VIEW);
//         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
//             File file = (new File(apkPath));
//             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//             Uri apkUri = FileProvider.getUriForFile(context, "github.razerdp.friendcircle", file);
//             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//             intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
//         } else {
//             intent.setDataAndType(Uri.fromFile(new File(apkPath)),
//                     "application/vnd.android.package-archive");
//         }
//         context.startActivity(intent);
//     }
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/base/adapter/interfaces/OnItemClickListener.java
// public interface OnItemClickListener<T> {
// 
//     void onItemClick(View v, int position, T data);
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/base/adapter/interfaces/OnItemLongClickListener.java
// public interface OnItemLongClickListener<T> {
// 
//     void onItemLongClick(View v, int position, T data);
// }
// 
// Path: uilib/src/main/java/com/razerdp/github/uilib/utils/ViewUtil.java
// public class ViewUtil {
// 
//     public static View inflate(@LayoutRes int layout, ViewGroup parent, boolean attachToParent) {
//         return LayoutInflater.from(AppContext.getAppContext()).inflate(layout, parent, attachToParent);
//     }
// }


// Path: uilib/src/main/java/com/razerdp/github/uilib/base/adapter/BaseRecyclerViewAdapter.java
import android.content.Context;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Space;
import com.razerdp.github.lib.utils.ToolUtil;
import com.razerdp.github.uilib.base.adapter.interfaces.OnItemClickListener;
import com.razerdp.github.uilib.base.adapter.interfaces.OnItemLongClickListener;
import com.razerdp.github.uilib.utils.ViewUtil;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.core.view.GestureDetectorCompat;
import androidx.recyclerview.widget.RecyclerView;

package com.razerdp.github.uilib.base.adapter;





/**
 * Created by 大灯泡 on 2019/8/2.
 * <p>
 * baseadapter，请注意，adapter内部的数据跟外部不是同一个对象（预防外部修改导致内部修改）
 */
@SuppressWarnings("all")
public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<BaseRecyclerViewHolder<T>> {
    protected final String TAG = getClass().getSimpleName();

    protected Context mContext;
    protected List<T> mDatas;

    private OnItemClickListener<T> mOnItemClickListener;