package com.anthony.app.module.zhihu; import android.content.Context; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.widget.ImageView; import com.anthony.app.R; import com.anthony.app.dagger.DaggerActivity; import com.anthony.app.dagger.component.ActivityComponent; import com.anthony.library.data.net.HttpSubscriber; import com.anthony.pullrefreshview.PullToRefreshView; import com.anthony.rvhelper.adapter.CommonAdapter; import com.anthony.rvhelper.base.ViewHolder; import com.anthony.rvhelper.divider.RecycleViewDivider; import com.bumptech.glide.Glide; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import rx.functions.Action0; /** * Created by Anthony on 2016/12/2. * Class Note: */ public class ZhihuDailyListActivity extends DaggerActivity { @BindView(R.id.recycleView) RecyclerView recycleView; @BindView(R.id.ptr) PullToRefreshView ptr; @BindView(R.id.toolbar) Toolbar toolbar; private ZhihuDailyAdapter mAdapter; @Override protected void initViewsAndEvents(Bundle savedInstanceState) { //show loading but not include toolbar List<Integer> skipIds = new ArrayList<>(); skipIds.add(com.anthony.library.R.id.toolbar); showLoading(skipIds); setToolBar(toolbar, "Zhihu Daily"); ptr.setListener(new PullToRefreshView.OnRefreshListener() { @Override public void onRefresh() { showToast("refresh not support"); } @Override public void onLoadMore() { showToast("load more not support"); } }); mAdapter = new ZhihuDailyAdapter(mContext); recycleView.addItemDecoration(new RecycleViewDivider(mContext, LinearLayoutManager.VERTICAL)); recycleView.setLayoutManager(new LinearLayoutManager(mContext)); recycleView.setAdapter(mAdapter); getZhihuDailyData(); } private void getZhihuDailyData() { getDataRepository() .getDailyData() .doOnTerminate(new Action0() { @Override public void call() { ptr.onFinishLoading(); } }) .subscribe(new HttpSubscriber<ZhihuDailyListBean>() { @Override public void onNext(ZhihuDailyListBean zhihuDailyListBean) { onDataReceived(zhihuDailyListBean); } @Override public void onError(Throwable e) { super.onError(e); showToast("load error"); } }); } /** * todo load topic images * @param zhihuDailyListBean */ private void onDataReceived(ZhihuDailyListBean zhihuDailyListBean) { mAdapter.addDataAll(zhihuDailyListBean.getStories()); mAdapter.notifyDataSetChanged(); showContent(); } @Override protected int getContentViewID() { return R.layout.prj_pull_list; } protected void injectDagger(ActivityComponent activityComponent) { activityComponent.inject(this); } public class ZhihuDailyAdapter extends CommonAdapter<ZhihuDailyListBean.StoriesBean> { public ZhihuDailyAdapter(Context context) { super(context, R.layout.prj_item_daily); } @Override protected void convert(ViewHolder holder, final ZhihuDailyListBean.StoriesBean item, int position) { holder.setText(R.id.tv_daily_item_title, item.getTitle()); Glide.with(mContext).load(item.getImages().get(0)).crossFade().placeholder(R.mipmap.prj_default_pic_big).into((ImageView) holder.getView(R.id.iv_daily_item_image)); holder.setOnClickListener(R.id.ll_click, v -> { ZhihuDailyDetailActivity.start(mContext, v.findViewById(R.id.iv_daily_item_image), mAdapter.getDatas().get(position).getId()); }); } } }