// Path: app/src/main/java/com/kong/app/news/NewsEntry.java
// public class NewsEntry implements INewsEntry {
// 
//     private static class NewsEntryHelper {
//         private static NewsEntry sIns = new NewsEntry();
//     }
// 
//     public static INewsEntry get() {
//         return NewsEntryHelper.sIns;
//     }
// 
//     @Override
//     public void startCommon(Context context, Class<?> cls) {
//         Intent intent = new Intent(context, cls);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startAbout(Context context) {
//         Intent intent = new Intent(context, AboutActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
// //    @Override
// //    public void startDemo(Context context) {
// //        Intent intent = new Intent(context, DemoActivity.class);
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
//     @Override
//     public void startSetting(Context context) {
//         Intent intent = new Intent(context, SettingActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
// //    @Override
// //    public void startNote(Context context) {
// //        Intent intent = new Intent(context, NoteActivity.class);
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
// //    @Override
// //    public void startNote(Context context, Intent intent) {
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
//     @Override
//     public void startMain(Context context) {
//         Intent intent = new Intent(context, HomeActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startBrowser(Context context, String url) {
//         Intent intent = new Intent(context, BrowserActivity.class);
//         intent.putExtra(BrowserActivity.BWO_KEY,url);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startBrowser(Context context, String url, String title) {
//         Intent intent = new Intent(context, BrowserActivity.class);
//         intent.putExtra(BrowserActivity.BWO_KEY,url);
//         intent.putExtra(BrowserActivity.BWO_TITLE,title);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startDetailActivity(Context context, NewModel news) {
//         Intent intent = new Intent(context, NewsDetailActivity.class);
//         intent.putExtra(NewsDetailActivity.TITLE,news.title);
//         intent.putExtra(NewsDetailActivity.URL,news.newUrl);
//         ActivityUtils.startActivity(context, intent);
//     }
// }
// 
// Path: app/src/main/java/com/kong/lib/adapter/BaseAdapter.java
// public abstract class BaseAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
// 
//     protected Context mContext;
// 
//     protected List<T> mLists;
// 
//     public BaseAdapter() {
// 
//     }
// 
//     public BaseAdapter(Context context) {
//         mContext = context;
//     }
// 
//     public BaseAdapter(Context context, List<T> lists) {
//         this(context);
//         mLists = lists;
//     }
// 
//     @Override
//     public int getItemCount() {
//         return ListUtils.getCount(mLists);
//     }
// 
//     public List<T> getLists() {
//         return mLists;
//     }
// 
//     public void setLists(List<T> lists) {
//         mLists = lists;
//     }
// 
//     public T getItem(int position) {
//         return mLists != null ? mLists.get(position) : null;
//     }
// 
// }
// 
// Path: app/src/main/java/com/kong/lib/adapter/BaseViewHolder.java
// public abstract class BaseViewHolder<M> extends RecyclerView.ViewHolder {
// 
//     public BaseViewHolder(View itemView) {
//         super(itemView);
//     }
// 
//     public BaseViewHolder(ViewGroup parent, @LayoutRes int res) {
//         super(LayoutInflater.from(parent.getContext()).inflate(res, parent, false));
//     }
// 
//     protected Context getContext() {
//         return itemView.getContext();
//     }
// 
//     public View getItemView() {
//         return itemView;
//     }
// 
//     public void setOnClickListener(@Nullable View.OnClickListener l) {
//         itemView.setOnClickListener(l);
//     }
// 
//     protected <T extends View> T findViewById(@IdRes int id) {
//         return (T) itemView.findViewById(id);
//     }
// 
//     /**
//      * 可重写
//      *
//      * @param m
//      */
//     public void setData(M m) {
// 
//     }
// 
//     /**
//      * 回收
//      */
//     public void onViewRecycled() {
// 
//     }
// }


import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.kong.R;
import com.kong.app.news.NewsEntry;
import com.kong.lib.adapter.BaseAdapter;
import com.kong.lib.adapter.BaseViewHolder;
                hideCategory(holder);
            } else {
                showCategory(holder);
            }
        }
        holder.setData(gank);

    }

    private void showCategory(GankViewHolder holder) {
        if (!isVisibleOf(holder.mCategory))
            holder.mCategory.setVisibility(View.VISIBLE);
    }

    private void hideCategory(GankViewHolder holder) {
        if (isVisibleOf(holder.mCategory))
            holder.mCategory.setVisibility(View.GONE);
    }

    private boolean isVisibleOf(View view) {
        return view.getVisibility() == View.VISIBLE;
    }

    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
        if (holder instanceof  GankViewHolder){
            ((GankViewHolder) holder).onViewRecycled();
        }
    }

// Path: app/src/main/java/com/kong/app/news/NewsEntry.java
// public class NewsEntry implements INewsEntry {
// 
//     private static class NewsEntryHelper {
//         private static NewsEntry sIns = new NewsEntry();
//     }
// 
//     public static INewsEntry get() {
//         return NewsEntryHelper.sIns;
//     }
// 
//     @Override
//     public void startCommon(Context context, Class<?> cls) {
//         Intent intent = new Intent(context, cls);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startAbout(Context context) {
//         Intent intent = new Intent(context, AboutActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
// //    @Override
// //    public void startDemo(Context context) {
// //        Intent intent = new Intent(context, DemoActivity.class);
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
//     @Override
//     public void startSetting(Context context) {
//         Intent intent = new Intent(context, SettingActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
// //    @Override
// //    public void startNote(Context context) {
// //        Intent intent = new Intent(context, NoteActivity.class);
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
// //    @Override
// //    public void startNote(Context context, Intent intent) {
// //        ActivityUtils.startActivity(context,intent);
// //    }
// 
//     @Override
//     public void startMain(Context context) {
//         Intent intent = new Intent(context, HomeActivity.class);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startBrowser(Context context, String url) {
//         Intent intent = new Intent(context, BrowserActivity.class);
//         intent.putExtra(BrowserActivity.BWO_KEY,url);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startBrowser(Context context, String url, String title) {
//         Intent intent = new Intent(context, BrowserActivity.class);
//         intent.putExtra(BrowserActivity.BWO_KEY,url);
//         intent.putExtra(BrowserActivity.BWO_TITLE,title);
//         ActivityUtils.startActivity(context,intent);
//     }
// 
//     @Override
//     public void startDetailActivity(Context context, NewModel news) {
//         Intent intent = new Intent(context, NewsDetailActivity.class);
//         intent.putExtra(NewsDetailActivity.TITLE,news.title);
//         intent.putExtra(NewsDetailActivity.URL,news.newUrl);
//         ActivityUtils.startActivity(context, intent);
//     }
// }
// 
// Path: app/src/main/java/com/kong/lib/adapter/BaseAdapter.java
// public abstract class BaseAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
// 
//     protected Context mContext;
// 
//     protected List<T> mLists;
// 
//     public BaseAdapter() {
// 
//     }
// 
//     public BaseAdapter(Context context) {
//         mContext = context;
//     }
// 
//     public BaseAdapter(Context context, List<T> lists) {
//         this(context);
//         mLists = lists;
//     }
// 
//     @Override
//     public int getItemCount() {
//         return ListUtils.getCount(mLists);
//     }
// 
//     public List<T> getLists() {
//         return mLists;
//     }
// 
//     public void setLists(List<T> lists) {
//         mLists = lists;
//     }
// 
//     public T getItem(int position) {
//         return mLists != null ? mLists.get(position) : null;
//     }
// 
// }
// 
// Path: app/src/main/java/com/kong/lib/adapter/BaseViewHolder.java
// public abstract class BaseViewHolder<M> extends RecyclerView.ViewHolder {
// 
//     public BaseViewHolder(View itemView) {
//         super(itemView);
//     }
// 
//     public BaseViewHolder(ViewGroup parent, @LayoutRes int res) {
//         super(LayoutInflater.from(parent.getContext()).inflate(res, parent, false));
//     }
// 
//     protected Context getContext() {
//         return itemView.getContext();
//     }
// 
//     public View getItemView() {
//         return itemView;
//     }
// 
//     public void setOnClickListener(@Nullable View.OnClickListener l) {
//         itemView.setOnClickListener(l);
//     }
// 
//     protected <T extends View> T findViewById(@IdRes int id) {
//         return (T) itemView.findViewById(id);
//     }
// 
//     /**
//      * 可重写
//      *
//      * @param m
//      */
//     public void setData(M m) {
// 
//     }
// 
//     /**
//      * 回收
//      */
//     public void onViewRecycled() {
// 
//     }
// }


// Path: app/src/main/java/com/kong/app/gank/GankAdapter.java
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.kong.R;
import com.kong.app.news.NewsEntry;
import com.kong.lib.adapter.BaseAdapter;
import com.kong.lib.adapter.BaseViewHolder;

                hideCategory(holder);
            } else {
                showCategory(holder);
            }
        }
        holder.setData(gank);

    }

    private void showCategory(GankViewHolder holder) {
        if (!isVisibleOf(holder.mCategory))
            holder.mCategory.setVisibility(View.VISIBLE);
    }

    private void hideCategory(GankViewHolder holder) {
        if (isVisibleOf(holder.mCategory))
            holder.mCategory.setVisibility(View.GONE);
    }

    private boolean isVisibleOf(View view) {
        return view.getVisibility() == View.VISIBLE;
    }

    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
        if (holder instanceof  GankViewHolder){
            ((GankViewHolder) holder).onViewRecycled();
        }
    }

    public class GankViewHolder extends BaseViewHolder<Gank> implements View.OnClickListener {