package com.gzsll.hupu.ui.pmlist;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.gzsll.hupu.R;
import com.gzsll.hupu.bean.Pm;
import com.gzsll.hupu.ui.BaseFragment;
import com.gzsll.hupu.ui.messagelist.MessageComponent;
import com.gzsll.hupu.ui.pmdetail.PmDetailActivity;
import com.gzsll.hupu.widget.LoadMoreRecyclerView;
import com.yalantis.phoenix.PullToRefreshView;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Created by sll on 2016/5/6.
*/
public class PmListFragment extends BaseFragment
implements PmListContract.View, PullToRefreshView.OnRefreshListener,
LoadMoreRecyclerView.LoadMoreListener, PmListAdapter.OnItemClickListener {
@BindView(R.id.recyclerView)
LoadMoreRecyclerView recyclerView;
@BindView(R.id.refreshLayout)
PullToRefreshView refreshLayout;
@Inject
PmListPresenter mPresenter;
@Inject
PmListAdapter mAdapter;
@Override
public void initInjector() {
getComponent(MessageComponent.class).inject(this);
}
@Override
public int initContentView() {
return R.layout.base_phonix_list_layout;
}
@Override
public void getBundle(Bundle bundle) {
}
@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);
recyclerView.setLoadMoreListener(this);
refreshLayout.setOnRefreshListener(this);
mAdapter.setOnItemClickListener(this);
}
@Override
public void initData() {
mPresenter.onPmListReceive();
}
@Override
public void showLoading() {
showProgress(true);
}
@Override
public void hideLoading() {
showContent(true);
}
@Override
public void renderPmList(List<Pm> pms) {
mAdapter.bind(pms);
recyclerView.getAdapter().notifyDataSetChanged();
}
@Override
public void onRefreshCompleted() {
refreshLayout.setRefreshing(false);
}
@Override
public void onLoadCompleted(boolean haMore) {
recyclerView.onLoadCompleted(haMore);
}
@Override
public void onError() {
showError(true);
}
@Override
public void onEmpty() {
setEmptyText("暂无历史消息");
showEmpty(true);
}
@Override
public void showPmDetailUi(String uid, String name) {
PmDetailActivity.startActivity(getActivity(), uid, name);
}
@Override
public void onLoadMore() {
mPresenter.onLoadMore();
}
@Override
public void onRefresh() {
mPresenter.onRefresh();
}
@Override
public void onReloadClicked() {
mPresenter.onReload();
}
@Override
public void onDestroy() {
super.onDestroy();
mPresenter.detachView();
}
@Override
public void onPmListClick(Pm pm) {
mPresenter.onPmListClick(pm);
}
}