package com.gzsll.hupu.ui.forum; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.gzsll.hupu.R; import com.gzsll.hupu.db.Forum; import com.gzsll.hupu.ui.BaseFragment; import com.gzsll.hupu.ui.main.MainComponent; import com.gzsll.hupu.ui.thread.list.ThreadListActivity; import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersDecoration; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by sll on 2016/3/11. */ public class ForumListFragment extends BaseFragment implements ForumListContract.View, ForumListAdapter.OnItemClickListener { public static ForumListFragment newInstance(String forumId) { ForumListFragment mFragment = new ForumListFragment(); Bundle bundle = new Bundle(); bundle.putString("forumId", forumId); mFragment.setArguments(bundle); return mFragment; } @BindView(R.id.recyclerView) RecyclerView recyclerView; @BindView(R.id.refreshLayout) SwipeRefreshLayout refreshLayout; private String forumId; @Inject ForumListPresenter mPresenter; @Inject ForumListAdapter mAdapter; @Override public void initInjector() { getComponent(MainComponent.class).inject(this); } @Override public int initContentView() { return R.layout.base_list_layout; } @Override public void getBundle(Bundle bundle) { forumId = bundle.getString("forumId"); } @Override public void initUI(View view) { ButterKnife.bind(this, view); mPresenter.attachView(this); LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity().getApplicationContext()); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(mAdapter); final StickyRecyclerHeadersDecoration headersDecor = new StickyRecyclerHeadersDecoration(mAdapter); recyclerView.addItemDecoration(headersDecor); refreshLayout.setEnabled(false); mAdapter.setOnItemClickListener(this); } @Override public void initData() { mPresenter.onForumListReceive(forumId); } @Override public void showLoading() { showProgress(true); } @Override public void hideLoading() { showContent(true); } @Override public void onError() { showError(true); } @Override public void renderForumList(List<Forum> forumList) { mAdapter.bind(forumList); } @Override public void showThreadUi(String fid) { ThreadListActivity.startActivity(getActivity(), fid); } @Override public void removeForum(Forum forum) { mAdapter.remove(forum); } @Override public void onDestroy() { super.onDestroy(); mPresenter.detachView(); } @Override public void onForumDelAttentionClick(Forum forum) { mPresenter.onForumAttentionDelClick(forum); } @Override public void onForumOfflineClick(Forum forum) { mPresenter.onForumOfflineClick(forum); } @Override public void onForumClick(Forum forum) { mPresenter.onForumClick(forum); } }