package com.mogujie.tt.ui.utils;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.GridView;
import com.mogujie.tt.adapter.GroupManagerAdapter;
import com.mogujie.tt.config.SysConstant;
import com.mogujie.tt.imlib.IMSession;
import com.mogujie.tt.imlib.proto.ContactEntity;
import com.mogujie.tt.imlib.service.IMService;
import com.mogujie.tt.log.Logger;
public class IMGroupMemberGridViewHelper {
private Logger logger = Logger.getLogger(IMGroupMemberGridViewHelper.class);
private GridView gridView = null;
private GroupManagerAdapter adapter = null;
private String sessionId;
private int sessionType;
public GroupManagerAdapter getAdapter() {
return adapter;
}
public String getSessionId() {
return sessionId;
}
public int getSessionType() {
return sessionType;
}
public void onInit(View parentView, int gridViewResId, Context ctx,
boolean hasAddButton, OnItemClickListener itemClickListner, OnItemLongClickListener itemLongClickListener, GroupManagerAdapter.OnDeleteItemListener deleteImteListner) {
if (ctx == null) {
return;
}
logger.d("groupmgr#onInit");
gridView = (GridView) parentView.findViewById(gridViewResId);
gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));// 去掉点击时的黄色背影
if (itemClickListner != null) {
gridView.setOnItemClickListener(itemClickListner);
}
if (itemLongClickListener != null) {
gridView.setOnItemLongClickListener(itemLongClickListener);
}
adapter = new GroupManagerAdapter(ctx, hasAddButton, deleteImteListner);
gridView.setAdapter(adapter);
}
public void onSetGridData(IMService imService, Intent intent) {
if (adapter == null) {
logger.e("groupmgr#adapter is null");
return;
}
logger.d("groupmgr#setGridViewData");
if (imService == null) {
logger.e("groupmgr#imservice is null");
return;
}
sessionId = intent.getStringExtra(SysConstant.SESSION_ID_KEY);
sessionType = intent.getIntExtra(SysConstant.SESSION_TYPE_KEY, 0);
logger.d("groupmgr#sessionType:%d, sessionId:%s", sessionType,
sessionId);
List<ContactEntity> contactList = new ArrayList<ContactEntity>();
if (sessionType == IMSession.SESSION_P2P) {
ContactEntity contact = imService.getContactManager().findContact(
sessionId);
if (contact == null) {
logger.e("groupmgr#no such contact by id:%s", sessionId);
return;
}
contactList.add(contact);
} else {
contactList = imService.getGroupManager()
.getGroupMembers(sessionId);
if (contactList == null) {
logger.e("groupmgr#get members from group id:%s failed",
sessionId);
return;
}
}
adapter.setData(contactList);
}
}