package com.codeest.geeknews.ui.zhihu.fragment;
import android.content.Intent;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.RootFragment;
import com.codeest.geeknews.base.contract.zhihu.ThemeContract;
import com.codeest.geeknews.model.bean.ThemeListBean;
import com.codeest.geeknews.presenter.zhihu.ThemePresenter;
import com.codeest.geeknews.ui.zhihu.activity.ThemeActivity;
import com.codeest.geeknews.ui.zhihu.adapter.ThemeAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
/**
* Created by codeest on 2016/8/11.
*/
public class ThemeFragment extends RootFragment<ThemePresenter> implements ThemeContract.View {
@BindView(R.id.view_main)
RecyclerView rvThemeList;
@BindView(R.id.swipe_refresh)
SwipeRefreshLayout swipeRefresh;
ThemeAdapter mAdapter;
List<ThemeListBean.OthersBean> mList = new ArrayList<>();
@Override
protected void initInject() {
getFragmentComponent().inject(this);
}
@Override
protected int getLayoutId() {
return R.layout.view_common_list;
}
@Override
protected void initEventAndData() {
super.initEventAndData();
mAdapter = new ThemeAdapter(mContext, mList);
rvThemeList.setLayoutManager(new GridLayoutManager(mContext, 2));
rvThemeList.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new ThemeAdapter.OnItemClickListener() {
@Override
public void onItemClick(int id) {
Intent intent = new Intent();
intent.setClass(mContext, ThemeActivity.class);
intent.putExtra(Constants.IT_ZHIHU_THEME_ID, id);
mContext.startActivity(intent);
}
});
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mPresenter.getThemeData();
}
});
mPresenter.getThemeData();
stateLoading();
}
@Override
public void showContent(ThemeListBean themeListBean) {
if(swipeRefresh.isRefreshing()) {
swipeRefresh.setRefreshing(false);
}
stateMain();
mList.clear();
mList.addAll(themeListBean.getOthers());
mAdapter.notifyDataSetChanged();
}
@Override
public void stateError() {
super.stateError();
if(swipeRefresh.isRefreshing()) {
swipeRefresh.setRefreshing(false);
}
}
}