package com.mogujie.tt.ui.fragment;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import com.mogujie.tt.R;
import com.mogujie.tt.imlib.IMSession;
import com.mogujie.tt.imlib.proto.ContactEntity;
import com.mogujie.tt.imlib.proto.GroupEntity;
import com.mogujie.tt.imlib.service.IMService;
import com.mogujie.tt.imlib.utils.IMUIHelper;
import com.mogujie.tt.imlib.utils.IMUIHelper.SessionInfo;
import com.mogujie.tt.ui.activity.GroupMemberSelectActivity;
import com.mogujie.tt.ui.base.TTBaseFragment;
import com.mogujie.tt.ui.utils.IMGroupMemberGridViewHelper;
import com.mogujie.tt.ui.utils.IMServiceHelper;
import com.mogujie.tt.ui.utils.IMServiceHelper.OnIMServiceListner;
public class GroupManagerFragment extends TTBaseFragment
implements
OnIMServiceListner {
// OnTouchBlankPositionListener, {
@Override
public void onDestroyView() {
imServiceHelper.disconnect(getActivity());
// TODO Auto-generated method stub
super.onDestroyView();
}
private View curView = null;
private IMServiceHelper imServiceHelper = new IMServiceHelper();
private IMService imService;
private IMGroupMemberGridViewHelper gridViewHelper = new IMGroupMemberGridViewHelper();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (null != curView) {
((ViewGroup) curView.getParent()).removeView(curView);
return curView;
}
curView = inflater.inflate(R.layout.tt_fragment_group_manage, topContentView);
imServiceHelper.connect(getActivity(), null, IMServiceHelper.INTENT_NO_PRIORITY, this);
initRes();
return curView;
}
/**
* @Description 初始化资源
*/
private void initRes() {
// 设置标题栏
setTopLeftButton(R.drawable.tt_top_back);
setTopLeftText(getActivity().getString(R.string.top_left_back));
topLeftBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().finish();
}
});
// 设置其它页面信息
// gridView = (GroupManagerGridView) curView
// .findViewById(R.id.group_manager_grid);
// // 点击空白地方时处理
// ((GroupManagerGridView)
// gridView).setOnTouchBlankPositionListener(this);
//
// gridView.setOnItemLongClickListener(new OnItemLongClickListener() {
// @Override
// public boolean onItemLongClick(AdapterView<?> adapterView,
// View view, int position, long id) {
// if (position < adapter.getCount() - 1 && adapter.getCount() > 3) {
// adapter.setRemoveState(true);
// adapter.notifyDataSetChanged();
// }
// return true;
// }
// });
// gridView.setOnItemClickListener(new OnItemClickListener() {
//
// @Override
// public void onItemClick(AdapterView<?> adapterView, View view,
// int position, long id) {
// if (adapter.getRemoveState()) {
// if (adapter.getCount() > 3) {
// adapter.remove(position);
// }
// if (adapter.getCount() <= 3) {
// adapter.setRemoveState(false);
// }
// adapter.notifyDataSetChanged();
// } else {
// // if (position == adapter.getAddFriendPosition()) {
// // Intent intent = new Intent(getActivity(),
// // ContactFragmentActivity.class);
// // intent.putExtra(SysConstant.CHOOSE_CONTACT, true);
// // startActivityForResult(intent,
// // SysConstant.GROUP_MANAGER_ADD_RESULT);
// // // adapter.add();
// // }
// }
// }
// });
}
private void startGroupMemberSelectActivity() {
Intent intent = new Intent(getActivity(), GroupMemberSelectActivity.class);
IMUIHelper.setSessionInIntent(intent, gridViewHelper.getSessionId(), gridViewHelper.getSessionType());
getActivity().startActivity(intent);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
protected void initHandler() {
}
// @Override
// public boolean onTouchBlankPosition() {
// adapter.setRemoveState(false);
// adapter.notifyDataSetChanged();
// return false;
// }
private void init() {
SessionInfo sesisonInfo = IMUIHelper.getSessionInfoFromIntent(getActivity().getIntent());
if (sesisonInfo == null) {
logger.e("groupmgr#getSessionInfoFromIntent failed");
return;
}
int sessionType = sesisonInfo.getSessionType();
String sessionId = sesisonInfo.getSessionId();
if (imService == null) {
return;
}
if (curView == null) {
return;
}
String title = "聊天信息";
boolean hasAddBtn = true;
if (sessionType == IMSession.SESSION_P2P) {
View groupNameContainerView = curView.findViewById(R.id.group_manager_name);
if (groupNameContainerView == null) {
return;
}
groupNameContainerView.setVisibility(View.GONE);
} else {
if (sessionType == IMSession.SESSION_GROUP) {
hasAddBtn = false;
}
GroupEntity group = imService.getGroupManager().findGroup(sessionId);
if (group == null) {
return;
}
// todo eric i18n
title += String.format("(%d)", group.memberIdList.size());
TextView groupNameView = (TextView) curView.findViewById(R.id.group_manager_title);
if (groupNameView == null) {
return;
}
groupNameView.setText(group.name);
}
gridViewHelper.onInit(curView, R.id.group_manager_grid, getActivity(), hasAddBtn, new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
boolean isAddMemberButton = gridViewHelper.getAdapter().isAddMemberButton(position);
if (isAddMemberButton) {
logger.d("groupmgr#click add MemberButton");
startGroupMemberSelectActivity();
}
}
}, null, null);
setTopTitle(title);
}
@Override
public void onAction(String action, Intent intent,
BroadcastReceiver broadcastReceiver) {
// TODO Auto-generated method stub
}
@Override
public void onIMServiceConnected() {
// TODO Auto-generated method stub
logger.d("groupmgr#onIMServiceConnected");
imService = imServiceHelper.getIMService();
init();
gridViewHelper.onSetGridData(imService, getActivity().getIntent());
}
}