package me.weyye.todaynews.ui.fragment;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.chad.library.adapter.base.BaseQuickAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import me.weyye.todaynews.R;
import me.weyye.todaynews.base.BaseMvpFragment;
import me.weyye.todaynews.model.News;
import me.weyye.todaynews.presenter.NewsListPresenter;
import me.weyye.todaynews.ui.activity.BaseNewsActivity;
import me.weyye.todaynews.ui.adapter.NewsAdapter;
import me.weyye.todaynews.ui.view.LoadingFlashView;
import me.weyye.todaynews.utils.ConstanceValue;
import me.weyye.todaynews.view.INewsListView;
/**
* Created by Administrator on 2016/11/17 0017.
*/
public class NewsListFragment extends BaseMvpFragment<NewsListPresenter> implements INewsListView {
@BindView(R.id.recyclerView)
public RecyclerView recyclerView;
@BindView(R.id.srl)
SwipeRefreshLayout srl;
@BindView(R.id.loadingView)
LoadingFlashView loadingView;
private String mTitleCode = "";
protected List<News> mDatas = new ArrayList<>();
protected BaseQuickAdapter mAdapter;
@Override
protected NewsListPresenter createPresenter() {
return new NewsListPresenter(this);
}
@Override
protected View loadViewLayout(LayoutInflater inflater, ViewGroup container) {
View v = inflater.inflate(R.layout.layout_recyclerview, null);
ButterKnife.bind(this, v);
return v;
}
public static NewsListFragment newInstance(String code) {
NewsListFragment fragment = new NewsListFragment();
Bundle bundle = new Bundle();
bundle.putString(ConstanceValue.DATA, code);
fragment.setArguments(bundle);
return fragment;
}
@Override
protected void bindViews(View view) {
}
@Override
protected void processLogic() {
initCommonRecyclerView(createAdapter(), null);
mTitleCode = getArguments().getString(ConstanceValue.DATA);
// srl.measure(0, 0);
// srl.setRefreshing(true);
}
protected BaseQuickAdapter createAdapter() {
return mAdapter = new NewsAdapter(mDatas);
}
@Override
protected void lazyLoad() {
super.lazyLoad();
if (TextUtils.isEmpty(mTitleCode))
mTitleCode = getArguments().getString(ConstanceValue.DATA);
if (mvpPresenter.mvpView == null)
mvpPresenter = createPresenter();
getData();
}
private void getData() {
if (mDatas.size() == 0) {
//没加载过数据
if (loadingView == null) loadingView = get(R.id.loadingView);
loadingView.setVisibility(View.VISIBLE);
loadingView.showLoading();
}
mvpPresenter.getNewsList(mTitleCode);
}
@Override
protected void setListener() {
srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
getData();
}
});
mAdapter.setOnRecyclerViewItemClickListener(new BaseQuickAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, int i) {
News news = mDatas.get(i);
///item_seo_url的值是item/6412427713050575361/ ,取出6412427713050575361
String itemId = news.item_seo_url.replace("item/", "").replace("/", "");
StringBuffer urlSb = new StringBuffer("http://m.toutiao.com/");
if (!itemId.startsWith("i"))
urlSb.append("i");
urlSb.append(itemId).append("/info/");
String url = urlSb.toString();
if (news.article_genre.equals(ConstanceValue.ARTICLE_GENRE_VIDEO)) {
//视频
BaseNewsActivity.startVideo(mContext, url, news.group_id, itemId);
} else {
BaseNewsActivity.startNews(mContext, url, news.group_id, itemId);
}
}
});
}
@Override
public void onGetNewsListSuccess(List<News> response) {
//由于最后一条重复 ,删除掉
if (response.size() > 0) {
response.remove(response.size() - 1);
loadingView.setVisibility(View.GONE);
}
srl.setRefreshing(false);
mDatas.addAll(0, response);
mAdapter.notifyItemRangeChanged(0, response.size());
}
@Override
public void onError() {
srl.setRefreshing(false);
}
}