package com.gzsll.hupu.ui.pmdetail;
import android.app.Activity;
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.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import com.gzsll.hupu.R;
import com.gzsll.hupu.bean.PmDetail;
import com.gzsll.hupu.ui.BaseFragment;
import com.gzsll.hupu.ui.userprofile.UserProfileActivity;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* Created by sll on 2016/5/6.
*/
public class PmDetailFragment extends BaseFragment
implements PmDetailContract.View, SwipeRefreshLayout.OnRefreshListener {
public static PmDetailFragment newInstance(String uid) {
PmDetailFragment mFragment = new PmDetailFragment();
Bundle bundle = new Bundle();
bundle.putString("uid", uid);
mFragment.setArguments(bundle);
return mFragment;
}
@BindView(R.id.refreshLayout)
SwipeRefreshLayout refreshLayout;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@BindView(R.id.etContent)
EditText etContent;
@Inject
PmDetailAdapter mAdapter;
@Inject
PmDetailPresenter mPresenter;
@Inject
Activity mActivity;
private String uid;
private MenuItem blockItem;
@Override
public void initInjector() {
getComponent(PmDetailComponent.class).inject(this);
}
@Override
public int initContentView() {
return R.layout.fragment_pm_detail;
}
@Override
public void getBundle(Bundle bundle) {
uid = bundle.getString("uid");
}
@Override
public void initUI(View view) {
ButterKnife.bind(this, view);
setHasOptionsMenu(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity.getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(mAdapter);
refreshLayout.setOnRefreshListener(this);
mPresenter.attachView(this);
}
@Override
public void initData() {
mPresenter.onPmDetailReceive();
}
@Override
public void showLoading() {
showProgress(true);
}
@Override
public void hideLoading() {
showContent(true);
}
@Override
public void isBlock(boolean isBlock) {
if (blockItem != null) {
blockItem.setTitle(isBlock ? "取消屏蔽" : "屏蔽该用户");
}
}
@Override
public void renderPmDetailList(List<PmDetail> pmDetails) {
mAdapter.bind(pmDetails);
}
@Override
public void scrollTo(int position) {
recyclerView.scrollToPosition(position);
}
@Override
public void onRefreshCompleted() {
refreshLayout.setRefreshing(false);
}
@Override
public void onError() {
showError(true);
}
@Override
public void onEmpty() {
setEmptyText("暂时没有相关短消息");
showEmpty(true);
}
@Override
public void cleanEditText() {
etContent.setText("");
}
@Override
public void onRefresh() {
mPresenter.onLoadMore();
}
@Override
public void onReloadClicked() {
mPresenter.onReload();
}
@Override
public void onDestroy() {
super.onDestroy();
mPresenter.detachView();
}
@OnClick(R.id.btSend)
void btSendClick() {
mPresenter.send(etContent.getText().toString());
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_pm_detail, menu);
blockItem = menu.findItem(R.id.block);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.toUser:
UserProfileActivity.startActivity(mActivity, uid);
break;
case R.id.clear:
mPresenter.clear();
break;
case R.id.block:
mPresenter.block();
break;
}
return super.onOptionsItemSelected(item);
}
}