package hillfly.wifichat.fragment;
import hillfly.wifichat.R;
import hillfly.wifichat.activity.ChatActivity;
import hillfly.wifichat.adapter.FriendsAdapter;
import hillfly.wifichat.common.BaseFragment;
import hillfly.wifichat.common.view.MultiListView;
import hillfly.wifichat.common.view.MultiListView.OnRefreshListener;
import hillfly.wifichat.model.Users;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class FriendsFragment extends BaseFragment implements OnItemClickListener, OnRefreshListener {
private static List<Users> mUsersList; // 在线用户列表
private MultiListView mListView;
private FriendsAdapter mAdapter;
public FriendsFragment() {
}
public FriendsFragment(Context context) {
super(context);
}
@Override
public View
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_friends, container, false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
}
@Override
protected void initViews() {
mListView = (MultiListView) findViewById(R.id.friends_list);
}
@Override
protected void initEvents() {
mAdapter = new FriendsAdapter(getActivity(), mUsersList);
mListView.setAdapter(mAdapter);
mListView.setOnRefreshListener(this);
mListView.setOnItemClickListener(this);
}
@Override
protected void init() {
}
@Override
public void onRefresh() {
putAsyncTask(new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void... params) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
mUDPListener.refreshUsers();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
mListView.onRefreshComplete();
}
});
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Users people = mUsersList.get((int) id);
Intent intent = new Intent(getActivity(), ChatActivity.class);
intent.putExtra(Users.ENTITY_PEOPLE, people);
startActivity(intent);
}
/**
* 将用户表HashMap转成ArrayList
*
* @param application
*/
public void initMaptoList() {
HashMap<String, Users> mMap = mUDPListener.getOnlineUserMap();
mUsersList = new ArrayList<Users>(mMap.size());
for (Map.Entry<String, Users> entry : mMap.entrySet()) {
mUsersList.add(entry.getValue());
}
}
/** 刷新用户在线列表UI **/
public void refreshAdapter() {
mAdapter.setData(mUsersList); // Adapter加载List数据
mAdapter.notifyDataSetChanged();
}
/** 设置显示起始位置 **/
public void setLvSelection(int position) {
mListView.setSelection(position);
}
}