package com.yuyh.sprintnba.ui.fragment;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.cjj.MaterialRefreshLayout;
import com.cjj.MaterialRefreshListener;
import com.yuyh.library.utils.DimenUtils;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseLazyFragment;
import com.yuyh.sprintnba.http.bean.forum.ForumsData;
import com.yuyh.sprintnba.support.OnListItemClickListener;
import com.yuyh.sprintnba.support.SpaceItemDecoration;
import com.yuyh.sprintnba.support.SupportRecyclerView;
import com.yuyh.sprintnba.ui.ThreadListActivity;
import com.yuyh.sprintnba.ui.adapter.ForumListAdapter;
import com.yuyh.sprintnba.ui.presenter.Presenter;
import com.yuyh.sprintnba.ui.presenter.impl.ForumListPresenterImpl;
import com.yuyh.sprintnba.ui.view.ForumListView;
import java.util.ArrayList;
import java.util.List;
import butterknife.InjectView;
/**
* @author yuyh.
* @date 16/6/5.
*/
public class ForumListFragment extends BaseLazyFragment implements ForumListView {
@InjectView(R.id.refresh)
MaterialRefreshLayout materialRefreshLayout;
@InjectView(R.id.recyclerview)
SupportRecyclerView recyclerView;
@InjectView(R.id.emptyView)
View emptyView;
private ForumListAdapter adapter;
private List<ForumsData.Forum> list = new ArrayList<>();
private Presenter presenter;
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_normal_recyclerview);
initView();
presenter = new ForumListPresenterImpl(mActivity, this);
presenter.initialized();
}
private void initView() {
adapter = new ForumListAdapter(list, mActivity, R.layout.item_list_teams, R.layout.item_fragment_forum_title);
adapter.setOnListItemClickListener(new OnListItemClickListener<ForumsData.Forum>() {
@Override
public void onItemClick(View view, int position, ForumsData.Forum data) {
ThreadListActivity.start(mActivity, data);
}
});
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.addItemDecoration(new SpaceItemDecoration(DimenUtils.dpToPxInt(2)));
recyclerView.setHasFixedSize(true);
materialRefreshLayout.setLoadMore(false);
materialRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {
@Override
public void onRefresh(MaterialRefreshLayout materialRefreshLayout) {
presenter.initialized();
}
});
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && mActivity != null) {
mActivity.invalidateOptionsMenu();
}
}
@Override
public void showForumList(List<ForumsData.Forum> forumList) {
list.clear();
list.addAll(forumList);
adapter.notifyDataSetChanged();
materialRefreshLayout.finishRefresh();
hideLoading();
}
@Override
public void showLoading(String msg) {
showLoadingDialog();
}
@Override
public void hideLoading() {
hideLoadingDialog();
}
@Override
public void showError(String message) {
recyclerView.setEmptyView(emptyView);
hideLoading();
}
}