Files
assistant-android/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java

140 lines
4.4 KiB
Java

package com.gh.gamecenter.message;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.gh.base.fragment.BaseFragment;
import com.gh.common.view.VerticalItemDecoration;
import com.gh.gamecenter.R;
import com.gh.gamecenter.eventbus.EBUISwitch;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by khy on 2017/4/5.
* 消息-客服
*/
public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
@BindView(R.id.recyclerview)
RecyclerView mRecyclerview;
@BindView(R.id.refresh)
SwipeRefreshLayout mRefresh;
@BindView(R.id.loading_pb)
ProgressBarCircularIndeterminate mLoadingPb;
@BindView(R.id.reuse_no_connection)
LinearLayout mNoConnection;
@BindView(R.id.reuse_none_data)
LinearLayout mNoneData;
@BindView(R.id.reuse_tv_none_data)
TextView mNoneDataTv;
private LinearLayoutManager layoutManager;
private KeFuFragmentAdapter mAdapter;
Runnable runnable = new Runnable() {
@Override
public void run() {
mAdapter = new KeFuFragmentAdapter(getContext(), KeFuFragment.this);
mRecyclerview.setAdapter(mAdapter);
mAdapter.loadData(0);
}
};
@Override
protected int getLayoutId() {
return R.layout.fragment_comment_list;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNoneDataTv.setText(R.string.message_kefu_empty_hint);
mRefresh.setColorSchemeResources(R.color.theme);
mRefresh.setOnRefreshListener(this);
mAdapter = new KeFuFragmentAdapter(getContext(), this);
layoutManager = new LinearLayoutManager(getContext());
mRecyclerview.setLayoutManager(layoutManager);
mRecyclerview.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true));
mRecyclerview.setAdapter(mAdapter);
mRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE && mAdapter.isLoaded() && !mAdapter.isRemove()
&& mAdapter.getItemCount() == layoutManager.findLastVisibleItemPosition() + 1) {
mAdapter.loadData(mAdapter.getItemCount() - 1);
}
}
});
}
@Override
public void loadDone() {
super.loadDone();
mRefresh.setRefreshing(false);
mLoadingPb.setVisibility(View.GONE);
mRecyclerview.setVisibility(View.VISIBLE);
mNoneData.setVisibility(View.GONE);
}
@Override
public void loadError() {
super.loadError();
mRefresh.setRefreshing(false);
mNoConnection.setVisibility(View.VISIBLE);
mRecyclerview.setVisibility(View.GONE);
mNoneData.setVisibility(View.GONE);
mLoadingPb.setVisibility(View.GONE);
}
@Override
public void loadEmpty() {
super.loadEmpty();
mRefresh.setRefreshing(false);
mNoneData.setVisibility(View.VISIBLE);
mNoConnection.setVisibility(View.GONE);
mLoadingPb.setVisibility(View.GONE);
}
@OnClick(R.id.reuse_no_connection)
public void reconnection() { // 重新连接
mRecyclerview.setVisibility(View.VISIBLE);
mLoadingPb.setVisibility(View.VISIBLE);
mNoConnection.setVisibility(View.GONE);
postDelayedRunnable(runnable, 1000);
}
// Fragment界面切换事件
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBUISwitch swith) {
if (MessageCenterFragment.EB_MESSAGEFRAGMENT_TAG.equals(swith.getFrom()) && swith.getPosition() == 1) {
if (mLoadingPb.getVisibility() == View.VISIBLE) {
mAdapter.loadData(0);
}
}
}
@Override
public void onRefresh() {
postDelayedRunnable(runnable, 1000);
}
}