/**
* Copyright (C) 2013-2014 EaseMob Technologies. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.parttime.addresslist;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.StringRequest;
import com.carson.constant.ConstantForSaveList;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.EMConversation;
import com.easemob.chat.EMGroup;
import com.easemob.chat.EMGroupManager;
import com.easemob.chatuidemo.activity.AlertDialog;
import com.easemob.chatuidemo.activity.BaseActivity;
import com.easemob.chatuidemo.db.MessageSetDao;
import com.easemob.chatuidemo.widget.ExpandGridView;
import com.easemob.util.EMLog;
import com.easemob.util.NetUtils;
import com.parttime.IM.ChatActivity;
import com.parttime.IM.activitysetting.GroupGagActivity;
import com.parttime.common.Image.ContactImageLoader;
import com.parttime.constants.ActionConstants;
import com.parttime.constants.ActivityExtraAndKeys;
import com.parttime.net.DefaultCallback;
import com.parttime.net.HuanXinRequest;
import com.parttime.pojo.BaseUser;
import com.parttime.pojo.MessageSet;
import com.parttime.utils.IntentManager;
import com.parttime.utils.SharePreferenceUtil;
import com.parttime.widget.SetItem;
import com.qingmu.jianzhidaren.R;
import com.quark.common.Url;
import com.quark.http.image.LoadImage;
import com.quark.image.UploadImg;
import com.quark.jianzhidaren.ApplicationControl;
import com.quark.model.HuanxinUser;
import com.quark.ui.widget.CustomDialog;
import com.quark.volley.VolleySington;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: GroupResumeSettingActivity
* @Description: 群设置
* @author howe
* @date 2015-2-12 下午12:19:16
*
*/
public class NormalGroupSettingActivity extends BaseActivity implements
OnClickListener {
private static final String TAG = "NormalGroupSettingActivity";
private static final int REQUEST_CODE_ADD_USER = 0;
private static final int REQUEST_CODE_EXIT = 1;
private static final int REQUEST_CODE_EXIT_DELETE = 2;
private static final int REQUEST_CODE_CLEAR_ALL_HISTORY = 3;
private static final int REQUEST_CODE_ADD_TO_BALCKLIST = 4;
private static final int REQUEST_CODE_EDIT_GROUPNAME = 5;
private static final int REQUEST_CODE_EXPORT_GROUPLIST = 6;
private ExpandGridView userGridview;
private ProgressBar loadingPB;
private Button exitBtn;
private Button deleteBtn;
private GridAdapter adapter;
private ProgressDialog progressDialog;
public static NormalGroupSettingActivity instance;
private SharePreferenceUtil sp;
private RelativeLayout topLayout;
private SetItem top, //置顶
undisturb, //免扰
gag; //禁言
private int referenceWidth;
private int referenceHeight;
private boolean isDisturb;
private String groupType = null;
private MessageSet messageSet;
private EMGroup group;
private ArrayList<HuanxinUser> huanXinUsers;
private String exportUrl;
String longClickUsername = null;
private String groupId;
boolean isExcuteOnCreate = false;
private MessageSetDao dao = new MessageSetDao(ApplicationControl.getInstance());
protected RequestQueue queue = VolleySington.getInstance().getRequestQueue();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_group_details);
sp = SharePreferenceUtil.getInstance(ApplicationControl.getInstance());
exportUrl = Url.EXPORT_GROUP_LIST;
initView();
Drawable referenceDrawable = getResources().getDrawable(
R.drawable.smiley_add_btn);
referenceWidth = referenceDrawable.getIntrinsicWidth();
referenceHeight = referenceDrawable.getIntrinsicHeight();
isExcuteOnCreate = true;
bindData();
}
private void bindData() {
// 获取传过来的groupid
groupId = getIntent().getStringExtra("groupId");
group = EMGroupManager.getInstance().getGroup(groupId);
//获取群组type
Hashtable<String, EMConversation> conversations = EMChatManager
.getInstance().getAllConversations();
if(conversations != null){
EMConversation conversation = conversations.get(groupId);
if(conversation != null){
groupType = conversation.getType().name();
}
}else{
groupType = EMConversation.EMConversationType.GroupChat.name();
}
if( groupType != null) {
//查询置顶
messageSet = dao.getMessageSet(groupId, groupType);
}
if(messageSet != null){
top.setRightImage(R.drawable.settings_btn_switch_on);
}
List<String> disturbListGroup = EMChatManager.getInstance()
.getChatOptions().getReceiveNoNotifyGroup();
if(disturbListGroup.contains(groupId)){
undisturb.setRightImage(R.drawable.settings_btn_switch_on);
isDisturb = true;
}else{
undisturb.setRightImage(R.drawable.settings_btn_switch_off);
}
top.setOnClickListener(this);
undisturb.setOnClickListener(this);
gag.setOnClickListener(this);
if (group.getOwner() == null
|| "".equals(group.getOwner())
|| !group.getOwner().equals(
EMChatManager.getInstance().getCurrentUser())) {
exitBtn.setVisibility(View.GONE);
deleteBtn.setVisibility(View.GONE);
}
// 如果自己是群主,显示解散按钮
if (EMChatManager.getInstance().getCurrentUser()
.equals(group.getOwner())) {
// 判断是私有群并且自己是群主,则显示导出群员列表
gag.setVisibility(View.VISIBLE);
exitBtn.setVisibility(View.GONE);
deleteBtn.setVisibility(View.VISIBLE);
}
// 保证每次进详情看到的都是最新的group
updateGroup();
// 设置OnTouchListener
userGridview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (adapter.isInDeleteMode) {
adapter.isInDeleteMode = false;
adapter.notifyDataSetChanged();
return true;
}
break;
default:
break;
}
return false;
}
});
}
private void initView() {
topLayout = (RelativeLayout) findViewById(R.id.title);
topLayout.setBackgroundColor(getResources().getColor(
R.color.guanli_common_color));
instance = this;
userGridview = (ExpandGridView) findViewById(R.id.gridview);
loadingPB = (ProgressBar) findViewById(R.id.progressBar);
exitBtn = (Button) findViewById(R.id.btn_exit_grp);
deleteBtn = (Button) findViewById(R.id.btn_exitdel_grp);
top = (SetItem)findViewById(R.id.top);
undisturb = (SetItem)findViewById(R.id.undisturb);
gag = (SetItem)findViewById(R.id.gag);
}
@Override
protected void onResume() {
super.onResume();
if(! isExcuteOnCreate){
updateGroup();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(NormalGroupSettingActivity.this);
progressDialog.setMessage("正在添加...");
progressDialog.setCanceledOnTouchOutside(false);
}
switch (requestCode) {
case REQUEST_CODE_ADD_USER:// 添加群成员
final String[] newmembers = data
.getStringArrayExtra(ActivityExtraAndKeys.Addressbook.MEMBER);
progressDialog.show();
addMembersToGroup(newmembers);
break;
case REQUEST_CODE_EXIT: // 退出群
progressDialog.setMessage("正在退出群聊...");
progressDialog.show();
exitGrop();
break;
case REQUEST_CODE_EXIT_DELETE: // 解散群
progressDialog.setMessage("正在解散群聊...");
progressDialog.show();
deleteGrop();
break;
default:
break;
}
}
}
/**
* 点击退出群组按钮
*
* @param view View
*/
// 修改为 兼职自己的弹窗
public void exitGroup(View view) {
// startActivityForResult(new Intent(this, ExitGroupDialog.class),
// REQUEST_CODE_EXIT);
showAlertDialog2("您确定要退出该群吗?", "提示");
}
/**
* 点击解散群组按钮
*
* @param view View
*/
// // 修改为 兼职自己的弹窗
public void exitDeleteGroup(View view) {
// startActivityForResult(new Intent(this,
// ExitGroupDialog.class).putExtra("deleteToast",
// getString(R.string.dissolution_group_hint)),
// REQUEST_CODE_EXIT_DELETE);
showAlertDialog("您确定要解散此群吗?", "提示");
}
/**
* 群主解散
*
* @param str String
* @param str2 String
*/
public void showAlertDialog(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("解散", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (progressDialog == null) {
progressDialog = new ProgressDialog(
NormalGroupSettingActivity.this);
progressDialog.setMessage("正在添加...");
progressDialog.setCanceledOnTouchOutside(false);
}
deleteGrop();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
/**
* 退出
*
* @param str String
* @param str2 String
*/
public void showAlertDialog2(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("退出", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (progressDialog == null) {
progressDialog = new ProgressDialog(
NormalGroupSettingActivity.this);
progressDialog.setMessage("正在添加...");
progressDialog.setCanceledOnTouchOutside(false);
}
exitGrop();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
/**
* 退出群组
*
*/
private void exitGrop() {
new Thread(new Runnable() {
public void run() {
try {
EMGroupManager.getInstance().exitFromGroup(groupId);
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
setResult(RESULT_OK);
finish();
if (ChatActivity.activityInstance != null)
ChatActivity.activityInstance.finish();
}
});
} catch (final Exception e) {
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(),
"退出群聊失败: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
}).start();
}
/**
* 解散群组
*
*/
private void deleteGrop() {
new Thread(new Runnable() {
public void run() {
try {
EMGroupManager.getInstance().exitAndDeleteGroup(groupId);
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
setResult(RESULT_OK);
// 访问服务器给推送解散群聊
String temp = "";
if (group != null && group.getMembers().size() > 1) {
for (String s : group.getMembers()) {
temp += s;
temp += ":";
}
carsonRemoveFromGroup(temp);
}
finish();
if (ChatActivity.activityInstance != null)
ChatActivity.activityInstance.finish();
}
});
} catch (final Exception e) {
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(),
"解散群聊失败: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
}).start();
}
/**
* 增加群成员
*
* @param newmembers String[]
*/
private void addMembersToGroup(final String[] newmembers) {
new Thread(new Runnable() {
public void run() {
try {
// 创建者调用add方法
if (EMChatManager.getInstance().getCurrentUser()
.equals(group.getOwner())) {
EMGroupManager.getInstance().addUsersToGroup(groupId,
newmembers);
} else {
// 一般成员调用invite方法
EMGroupManager.getInstance().inviteUser(groupId,
newmembers, null);
}
runOnUiThread(new Runnable() {
public void run() {
adapter.notifyDataSetChanged();
((TextView) findViewById(R.id.group_name))
.setText(group.getGroupName() + "("
+ group.getAffiliationsCount()
+ ")");
progressDialog.dismiss();
}
});
} catch (final Exception e) {
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(),
"添加群成员失败: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
}).start();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.top:
toTop();
break;
case R.id.undisturb:
disturbSet();
break;
case R.id.gag:
ConstantForSaveList.userIdUserCache.clear();
if(huanXinUsers != null && huanXinUsers.size() > 0){
for(HuanxinUser userVO : huanXinUsers){
if(userVO != null){
BaseUser baseUser = new BaseUser();
baseUser.userId = userVO.getUid();
baseUser.name = userVO.getName();
baseUser.picture = userVO.getAvatar();
ConstantForSaveList.userIdUserCache.put(userVO.getUid(),baseUser);
}
}
}
Intent intent = new Intent(this, GroupGagActivity.class);
intent.putExtra(ActivityExtraAndKeys.GroupSetting.GROUPID, groupId);
startActivity(intent);
break;
}
}
private void toTop(){
if(group == null){
return;
}
if(messageSet == null){
messageSet = new MessageSet();
messageSet.name = group.getGroupId();
messageSet.type = groupType;
messageSet.isTop = true;
messageSet.createTime = System.currentTimeMillis();
dao.save(messageSet);
top.setRightImage(R.drawable.settings_btn_switch_on);
}else{
dao.delete(groupId, groupType);
messageSet = null;
top.setRightImage(R.drawable.settings_btn_switch_off);
}
}
public void disturbSet(){
if(isDisturb){
List<String> pingbiListGroup = EMChatManager.getInstance()
.getChatOptions().getReceiveNoNotifyGroup();
if (pingbiListGroup != null) {
if (pingbiListGroup.contains(groupId)) {
pingbiListGroup.remove(groupId);
}
}
EMChatManager.getInstance().getChatOptions()
.setReceiveNotNoifyGroup(pingbiListGroup);
isDisturb = false;
undisturb.setRightImage(R.drawable.settings_btn_switch_off);
}else{
List<String> pingbiListGroup = EMChatManager.getInstance()
.getChatOptions().getReceiveNoNotifyGroup();
pingbiListGroup.add(groupId);
EMChatManager.getInstance().getChatOptions()
.setReceiveNotNoifyGroup(pingbiListGroup);
isDisturb = true;
undisturb.setRightImage(R.drawable.settings_btn_switch_on);
}
}
@Override
protected void onStop() {
super.onStop();
isExcuteOnCreate = false;
}
class ViewHold {
Button btn;
}
/**
* 群组成员gridadapter
*
* @author admin_new
*
*/
private class GridAdapter extends ArrayAdapter<String> {
private int res;
public boolean isInDeleteMode;
private ArrayList<String> objects;
public GridAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
this.objects = new ArrayList<>(objects);
res = textViewResourceId;
isInDeleteMode = false;
}
@Override
public View getView(final int position, View convertView,
final ViewGroup parent) {
ViewHold viewhold;
if (convertView == null) {
viewhold = new ViewHold();
convertView = LayoutInflater.from(getContext()).inflate(res,
null);
viewhold.btn = (Button) convertView
.findViewById(R.id.button_avatar);
convertView.setTag(viewhold);
} else {
viewhold = (ViewHold) convertView.getTag();
}
// 最后一个item,减人按钮
if (position == getCount() - 1) {
viewhold.btn.setText("");
// 设置成删除按钮
viewhold.btn.setCompoundDrawablesWithIntrinsicBounds(0,
R.drawable.smiley_minus_btn, 0, 0);
// 如果不是创建者或者没有相应权限,不提供加减人按钮
if (!group.getOwner().equals(
EMChatManager.getInstance().getCurrentUser())) {
// if current user is not group admin, hide add/remove btn
convertView.setVisibility(View.INVISIBLE);
} else { // 显示删除按钮
if (isInDeleteMode) {
// 正处于删除模式下,隐藏删除按钮
convertView.setVisibility(View.INVISIBLE);
} else {
// 正常模式
convertView.setVisibility(View.VISIBLE);
convertView.findViewById(R.id.badge_delete)
.setVisibility(View.INVISIBLE);
}
viewhold.btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EMLog.d(TAG, "删除按钮被点击");
isInDeleteMode = true;
notifyDataSetChanged();
}
});
}
} else if (position == getCount() - 2) { // 添加群组成员按钮
viewhold.btn.setText("");
viewhold.btn.setCompoundDrawablesWithIntrinsicBounds(0,
R.drawable.smiley_add_btn, 0, 0);
// 如果不是创建者或者没有相应权限
if (!group.isAllowInvites()
&& !group.getOwner().equals(
EMChatManager.getInstance().getCurrentUser())) {
// if current user is not group admin, hide add/remove btn
convertView.setVisibility(View.INVISIBLE);
} else {
// 正处于删除模式下,隐藏添加按钮
if (isInDeleteMode) {
convertView.setVisibility(View.INVISIBLE);
} else {
convertView.setVisibility(View.VISIBLE);
convertView.findViewById(R.id.badge_delete)
.setVisibility(View.INVISIBLE);
}
viewhold.btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EMLog.d(TAG, "添加按钮被点击");
// 进入选人页面
startActivityForResult((new Intent(
NormalGroupSettingActivity.this,
GroupPickContactsActivity.class).putExtra(
"groupId", groupId)), REQUEST_CODE_ADD_USER);
}
});
}
} else {
if (objects != null && position < objects.size()) {
// 普通item,显示群组成员
// final String username = getItem(position);
final String username = objects.get(position);
// 给button设置tag,防止复用
viewhold.btn.setTag(objects.get(position));
convertView.setVisibility(View.VISIBLE);
viewhold.btn.setVisibility(View.VISIBLE);
Drawable avatar = getResources().getDrawable(
R.drawable.default_avatar);
avatar.setBounds(0, 0, referenceWidth, referenceHeight);
viewhold.btn.setCompoundDrawables(null, avatar, null, null);
// 加载缓存头像、名称
if (viewhold.btn != null) {
viewhold.btn.setText(sp.loadStringSharedPreference(
username + "realname", ""));
}
// 加载本地图片
Bitmap bitmap = ContactImageLoader.get(username);
if (bitmap != null) {
if (viewhold.btn != null) {
viewhold.btn.setText(sp.loadStringSharedPreference(username
+ "realname", ""));
}
Drawable drawable = new BitmapDrawable(
LoadImage.toRoundBitmap(bitmap));
drawable.setBounds(0, 0, referenceWidth,
referenceHeight);
viewhold.btn.setCompoundDrawables(null, drawable,
null, null);
} else {
getNick(username, viewhold.btn);
}
// button.setText(username);
// demo群组成员的头像都用默认头像,需由开发者自己去设置头像
if (isInDeleteMode) {
// 如果是删除模式下,显示减人图标
convertView.findViewById(R.id.badge_delete)
.setVisibility(View.VISIBLE);
} else {
convertView.findViewById(R.id.badge_delete)
.setVisibility(View.INVISIBLE);
}
viewhold.btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isInDeleteMode) {
// 如果是删除自己,return
if (EMChatManager.getInstance()
.getCurrentUser().equals(username)) {
startActivity(new Intent(
NormalGroupSettingActivity.this,
AlertDialog.class).putExtra("msg",
"不能删除自己"));
return;
}
if (!NetUtils
.hasNetwork(getApplicationContext())) {
Toast.makeText(
getApplicationContext(),
getString(R.string.network_unavailable),
Toast.LENGTH_SHORT).show();
return;
}
EMLog.d("group", "remove user from group:"
+ username);
deleteMembersFromGroup(username);
} else {
if (!NetUtils
.hasNetwork(getApplicationContext())) {
Toast.makeText(
getApplicationContext(),
getString(R.string.network_unavailable),
Toast.LENGTH_SHORT).show();
} else {
if (EMChatManager.getInstance()
.getCurrentUser().equals(username)) {
Toast.makeText(getApplicationContext(),
"您点击了自己", Toast.LENGTH_SHORT).show();
} else {
// 正常情况下点击user,可以进入用户详情
IntentManager.intentToUseDetail(NormalGroupSettingActivity.this,username,groupId,objects,group.getOwner());
}
}
}
}
/**
* 删除群成员
*
* @param username String
*/
protected void deleteMembersFromGroup(
final String username) {
final ProgressDialog deleteDialog = new ProgressDialog(
NormalGroupSettingActivity.this);
deleteDialog.setMessage("正在移除...");
deleteDialog.setCanceledOnTouchOutside(false);
deleteDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
try {
// 删除被选中的成员
EMGroupManager.getInstance()
.removeUserFromGroup(groupId,
username);
isInDeleteMode = false;
runOnUiThread(new Runnable() {
@Override
public void run() {
deleteDialog.dismiss();
notifyDataSetChanged();
carsonRemoveFromGroup(username);
((TextView) findViewById(R.id.group_name)).setText(group
.getGroupName()
+ "("
+ group.getAffiliationsCount()
+ ")");
}
});
} catch (final Exception e) {
deleteDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(
getApplicationContext(),
"删除失败:"
+ e.getMessage(),
Toast.LENGTH_LONG).show();
}
});
}
}
}).start();
}
});
/*viewhold.btn
.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (group.getOwner().equals(
EMChatManager.getInstance()
.getCurrentUser())) {
Intent intent = new Intent(
NormalGroupSettingActivity.this,
AlertDialog.class);
intent.putExtra("msg",
"确认将此成员加入至此群黑名单?");
intent.putExtra("cancel", true);
startActivityForResult(intent,
REQUEST_CODE_ADD_TO_BALCKLIST);
longClickUsername = username;
}
return false;
}
});*/
}
}
return convertView;
}
@Override
public int getCount() {
return super.getCount() + 2;
}
}
protected void updateGroup() {
new Thread(new Runnable() {
public void run() {
try {
EMGroup returnGroup = EMGroupManager.getInstance()
.getGroupFromServer(groupId);
// 更新本地数据
EMGroupManager.getInstance().createOrUpdateLocalGroup(
returnGroup);
runOnUiThread(new Runnable() {
public void run() {
((TextView) findViewById(R.id.group_name))
.setText(group.getGroupName() + "("
+ group.getAffiliationsCount()
+ ")");
loadingPB.setVisibility(View.INVISIBLE);
adapter = new GridAdapter(
NormalGroupSettingActivity.this, R.layout.grid,
group.getMembers());
userGridview.setAdapter(adapter);
// adapter.notifyDataSetChanged();
if (EMChatManager.getInstance().getCurrentUser()
.equals(group.getOwner())) {
// 显示解散按钮
exitBtn.setVisibility(View.GONE);
deleteBtn.setVisibility(View.VISIBLE);
gag.setVisibility(View.VISIBLE);
} else {
// 显示退出按钮
exitBtn.setVisibility(View.VISIBLE);
deleteBtn.setVisibility(View.GONE);
gag.setVisibility(View.GONE);
}
}
});
} catch (Exception e) {
runOnUiThread(new Runnable() {
public void run() {
loadingPB.setVisibility(View.INVISIBLE);
}
});
}
}
}).start();
}
public void back(View view) {
setResult(RESULT_OK);
finish();
}
@Override
public void onBackPressed() {
setResult(RESULT_OK);
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
instance = null;
sendBroadcast(new Intent(ActionConstants.ACTION_MESSAGE_TO_TOP));
}
// =============================================================
public void getNick(final String id, final Button button) {
new HuanXinRequest().getHuanxinUserList(String.valueOf(id), queue, new DefaultCallback(){
@Override
public void success(Object obj) {
super.success(obj);
if(obj instanceof ArrayList){
@SuppressLint("Unchecked")
ArrayList<HuanxinUser> list = (ArrayList<HuanxinUser>)obj;
huanXinUsers = list;
if(list.size() == 1) {
HuanxinUser us = list.get(0);
if (button != null) {
if (us.getName() != null
&& !"".equals(us.getName())) {
if (button.getTag() != null
&& button.getTag().equals(id)) {
button.setText(us.getName());
}
sp.saveSharedPreferences(id + "realname", us.getName());
} else {
button.setText("");
}
}
if ((us.getAvatar() != null)
&& (!us.getAvatar().equals(""))) {
loadpersonPic(id, us.getAvatar(), button, 1);
} else {
Drawable avatar = getResources().getDrawable(
R.drawable.default_avatar);
avatar.setBounds(0, 0, referenceWidth,
referenceHeight);
if(button != null) {
button.setCompoundDrawables(null, avatar, null,
null);
}
}
}
}
}
});
}
/**
* @Description: 加载图片
* @author howe
* @date 2014-7-30 下午5:57:52
*
*/
public void loadpersonPic(final String id, final String url,
final Button button, final int isRound) {
ImageRequest imgRequest = new ImageRequest(Url.GETPIC + url,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap arg0) {
if (isRound == 1) {
Bitmap bit = UploadImg.toRoundCorner(arg0, 2);
Drawable drawable = new BitmapDrawable(bit);
drawable.setBounds(0, 0, referenceWidth,
referenceHeight);
if (button.getTag() != null
&& button.getTag().equals(id)) {
button.setCompoundDrawables(null, drawable,
null, null);
}
OutputStream output = null;
try {
File mePhotoFold = new File(
Environment
.getExternalStorageDirectory()
+ "/" + "jzdr/" + "image");
if (!mePhotoFold.exists()) {
mePhotoFold.mkdirs();
}
output = new FileOutputStream(
Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/"
+ "image/"
+ url);
arg0.compress(Bitmap.CompressFormat.JPEG, 100,
output);
output.flush();
output.close();
sp.saveSharedPreferences(id + "_photo", url);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}, 300, 200, Config.ARGB_8888, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
queue.add(imgRequest);
imgRequest.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
// ================howe end==================
/**
* 群主踢人或者解散群组给推送
*
*/
private void carsonRemoveFromGroup(final String userName) {
StringRequest request = new StringRequest(Request.Method.POST,
Url.REMOVE_FROM_GROUP, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject js = new JSONObject(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("group_name", group.getGroupName());
map.put("user_id", userName);
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
}