package com.jerey.keepgank.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.jerey.keepgank.R;
import com.jerey.keepgank.activity.MyWebActivity;
import com.jerey.keepgank.bean.GankDayResults;
import com.jerey.keepgank.bean.Result;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Xiamin on 2017/2/17.
*/
public class DayFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String TAG = "DayFragmentAdapter";
private static final int TYPE_DISC = 1;
private static final int TYPE_TITLE = 2;
private List<ViewItem> mList;
private Context mContext;
private class ViewItem {
String title;
String url;
int type;
public ViewItem(String title, String url, int type) {
this.title = title;
this.url = url;
this.type = type;
}
@Override
public String toString() {
return type + " " + title + " " + url;
}
}
public DayFragmentAdapter(Context context) {
mContext = context;
mList = new ArrayList<ViewItem>();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
if (viewType == TYPE_DISC) {
view = inflater.inflate(R.layout.item_gank, parent, false);
return new DescViewHolder(view);
} else {
view = inflater.inflate(R.layout.item_gank_title, parent, false);
return new TitleViewHolder(view);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof TitleViewHolder) {
TitleViewHolder titleViewHolder = (TitleViewHolder) holder;
titleViewHolder.setResult(mList.get(position));
} else if (holder instanceof DescViewHolder) {
DescViewHolder descViewHolder = (DescViewHolder) holder;
descViewHolder.setResult(mList.get(position));
}
}
@Override
public int getItemCount() {
return mList.size();
}
@Override
public int getItemViewType(int position) {
return mList.get(position).type;
}
public class TitleViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
private ViewItem result;
public TitleViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.tv_title);
}
public void setResult(ViewItem item) {
result = item;
textView.setText(item.title);
}
}
public class DescViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
private ViewItem result;
private String url;
public DescViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.tv_desc);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if(GankApplication.getOpenUrl()== GeneralPrefs.OPEN_URL_WEB_VIEW){
Result r = new Result();
r.setDesc(result.title);
r.setUrl(result.url);
MyWebActivity.startWebActivity(mContext, r);
// }else{
// SystemUtils.openUrlByBrowser(mContext, result.url);
// }
}
});
}
public void setResult(ViewItem item) {
this.result = item;
textView.setText(item.title);
}
}
public void setData(GankDayResults results) {
mList.clear();
if (results.Android != null) {
mList.add(new ViewItem("Android", null, TYPE_TITLE));
for (Result r : results.Android) {
mList.add(new ViewItem(r.getDesc(), r.getUrl(), TYPE_DISC));
}
}
if (results.iOS != null) {
mList.add(new ViewItem("iOS", null, TYPE_TITLE));
for (Result r : results.iOS) {
mList.add(new ViewItem(r.getDesc(), r.getUrl(), TYPE_DISC));
}
}
if (results.App != null) {
mList.add(new ViewItem("App", null, TYPE_TITLE));
for (Result r : results.App) {
mList.add(new ViewItem(r.getDesc(), r.getUrl(), TYPE_DISC));
}
}
if (results.瞎推荐 != null) {
mList.add(new ViewItem("瞎推荐", null, TYPE_TITLE));
for (Result r : results.瞎推荐) {
mList.add(new ViewItem(r.getDesc(), r.getUrl(), TYPE_DISC));
}
}
if (results.休息视频 != null) {
mList.add(new ViewItem("休息视频", null, TYPE_TITLE));
for (Result r : results.休息视频) {
mList.add(new ViewItem(r.getDesc(), r.getUrl(), TYPE_DISC));
}
}
for (ViewItem v : mList) {
Log.d(TAG, v.toString());
}
notifyDataSetChanged();
}
}