package ren.solid.materialdesigndemo.fragment;
import android.content.Intent;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import ren.solid.library.activity.ViewPicActivity;
import ren.solid.library.activity.WebViewActivity;
import ren.solid.library.adapter.SolidRVBaseAdapter;
import ren.solid.library.fragment.XRecyclerViewFragment;
import ren.solid.library.http.HttpClientManager;
import ren.solid.library.http.ImageLoader;
import ren.solid.library.http.request.ImageRequest;
import ren.solid.materialdesigndemo.R;
import ren.solid.materialdesigndemo.bean.GanHuoBean;
import ren.solid.materialdesigndemo.constants.Apis;
import ren.solid.library.utils.HttpUtils;
/**
* Created by _SOLID
* Date:2016/4/19
* Time:10:57
*/
public class GanHuoListFragment extends XRecyclerViewFragment {
private static String TAG = "GanHuoListFragment";
private String mType;
@Override
protected List parseData(String result) {
List<GanHuoBean> list = null;
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(result);
Gson gson = new Gson();
list = gson.fromJson(
jsonObject.getString("results"),
new TypeToken<List<GanHuoBean>>() {
}.getType());
} catch (JSONException e) {
e.printStackTrace();
list = new ArrayList<>();
}
return list;
}
@Override
protected String getUrl(int mCurrentPageIndex) {
mType = getArguments().getString("type");
String url = Apis.GanHuo + "/" + mType + "/10/" + mCurrentPageIndex;
Log.i(TAG, url);
return url;
}
@Override
protected SolidRVBaseAdapter setAdapter() {
return new SolidRVBaseAdapter<GanHuoBean>(getMContext(), new ArrayList<GanHuoBean>()) {
@Override
protected void onBindDataToView(SolidCommonViewHolder holder, GanHuoBean bean, int position) {
holder.getView(R.id.tv_desc).setVisibility(View.GONE);
holder.getView(R.id.iv_img).setVisibility(View.GONE);
holder.getView(R.id.fl_head_date_wrap).setVisibility(View.GONE);
if (position == 0) {
holder.getView(R.id.fl_head_date_wrap).setVisibility(View.VISIBLE);
} else {
boolean isEqual = mBeans.get(position - 1).getPublishedAt().equals(mBeans.get(position).getPublishedAt());
if (!isEqual) {
holder.getView(R.id.fl_head_date_wrap).setVisibility(View.VISIBLE);
} else {
holder.getView(R.id.fl_head_date_wrap).setVisibility(View.GONE);
}
}
if (bean.getUrl().endsWith(".jpg")) {//if it's image
holder.getView(R.id.iv_img).setVisibility(View.VISIBLE);
ImageView imageView = holder.getView(R.id.iv_img);
HttpClientManager.displayImage(imageView, bean.getUrl());
} else {
holder.getView(R.id.tv_desc).setVisibility(View.VISIBLE);
holder.setText(R.id.tv_desc, bean.getDesc());
}
holder.setText(R.id.tv_head_date, bean.getPublishedAt());
holder.setText(R.id.tv_source, bean.getSource());
holder.setText(R.id.tv_people, bean.getWho());
holder.setText(R.id.tv_time, bean.getPublishedAt().substring(0, 10));
holder.setText(R.id.tv_tag, bean.getType());
}
@Override
public int getItemLayoutID(int viewType) {
return R.layout.item_rv_ganhuo;
}
@Override
protected void onItemClick(int position) {
String url = mBeans.get(position - 1).getUrl();
ArrayList<String> images = new ArrayList<String>();
images.add(url);
if (!url.endsWith(".jpg")) {
Intent intent = new Intent(getMContext(), WebViewActivity.class);
intent.putExtra(WebViewActivity.WEB_URL, url);
intent.putExtra(WebViewActivity.TITLE, mBeans.get(position - 1).getDesc());
getMContext().startActivity(intent);
} else {
Intent intent = new Intent(getMContext(), ViewPicActivity.class);
intent.putStringArrayListExtra(ViewPicActivity.IMG_URLS, images);
getMContext().startActivity(intent);
}
}
};
}
@Override
protected RecyclerView.LayoutManager setLayoutManager() {
return new LinearLayoutManager(getMContext());
}
}