package com.xiaweizi.qnews.fragment;
import android.annotation.SuppressLint;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.SimpleClickListener;
import com.xiawei.webviewlib.WebViewActivity;
import com.xiaweizi.qnews.R;
import com.xiaweizi.qnews.adapter.NewsDataAdapter;
import com.xiaweizi.qnews.bean.NewsDataBean;
import com.xiaweizi.qnews.commons.Constants;
import com.xiaweizi.qnews.commons.ShareUtils;
import com.xiaweizi.qnews.net.QClitent;
import com.xiaweizi.qnews.net.QNewsService;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
/**
* 新闻详情 fragment,
* 工程名: QNews
* 包名: com.xiaweizi.qnews.fragment
* 类名: NewsDetailFragment
* 创建者: 夏韦子
* 创建日期: 2017/2/10
* 创建时间: 15:36
*/
@SuppressLint ("ValidFragment") public class NewsDetailFragment extends BaseFragment {
@BindView (R.id.rv_new_detail)
RecyclerView rvNewDetail;
@BindView (R.id.srl)
SwipeRefreshLayout srl;
private NewsDataAdapter mAdapter;
/**
* 新闻数据类型
*/
private String type;
public NewsDetailFragment() {
}
public NewsDetailFragment(String type) {
this.type = type;
}
@Nullable
@Override
public View onCreateView(
LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_new_detail, null);
ButterKnife.bind(this, view);
mAdapter = new NewsDataAdapter();
mAdapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
/*************************** 设置下拉刷新 ***************************/
srl.setColorSchemeColors(Color.RED, Color.RED);
srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
updateData();
}
});
/*************************** recyclerView 初始化数据***************************/
rvNewDetail.setAdapter(mAdapter);
rvNewDetail.setLayoutManager(new LinearLayoutManager(getActivity()));
rvNewDetail.addOnItemTouchListener(new SimpleClickListener(){
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
}
@Override
public void onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
String title = mAdapter.getItem(position).getTitle();
String url = mAdapter.getItem(position).getUrl();
ShareUtils.share(getActivity(), title + "\n" + url);
}
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
WebViewActivity.startUrl(getActivity(),
((NewsDataBean.ResultBean.DataBean) adapter.getItem(
position)).getUrl());
}
@Override
public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {
}
});
return view;
}
@Override
public void fetchData() {
updateData();
}
public void updateData() {
srl.setRefreshing(true);
QClitent.getInstance()
.create(QNewsService.class, Constants.BASE_JUHE_URL)
.getNewsData(type)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<NewsDataBean>() {
@Override
public void accept(NewsDataBean newsDataBean) throws Exception {
mAdapter.setNewData(newsDataBean.getResult().getData());
srl.setRefreshing(false);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
srl.setRefreshing(false);
}
});
// QNewsClient.getInstance().GetNewsData(type, new QNewsCallback<NewsDataBean>() {
// @Override
// public void onSuccess(NewsDataBean response, int id) {
// mAdapter.setNewData(response.getResult().getData());
// srl.setRefreshing(false);
// }
//
// @Override
// public void onError(Exception e, int id) {
// srl.setRefreshing(false);
// }
// });
}
}