|
|
@@ -20,8 +20,11 @@ import android.view.ViewGroup;
|
|
|
import android.widget.AdapterView;
|
|
|
import android.widget.BaseAdapter;
|
|
|
import android.widget.Button;
|
|
|
+import android.widget.CheckBox;
|
|
|
import android.widget.EditText;
|
|
|
import android.widget.ImageView;
|
|
|
+import android.widget.ListView;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
@@ -47,7 +50,6 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
|
|
|
-import com.xzjmyk.pm.activity.util.DateFormatUtil;
|
|
|
import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
|
|
|
import com.xzjmyk.pm.activity.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
@@ -92,10 +94,9 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
private TextView mNickNameTv;
|
|
|
private TextView mCreateTime;
|
|
|
private DataLoadView mDataLoadView;
|
|
|
- private List<MucRoomMember> gridmembers;
|
|
|
private List<MucRoomMember> mMembers;
|
|
|
private GridViewAdapter mAdapter;
|
|
|
-
|
|
|
+ private RelativeLayout add_manage_rl; //添加管理员
|
|
|
private boolean dataInvalidate = true;// 数据是否有效,判断标准时传递进来的Occupant
|
|
|
// list的首个人,是不是当前用户(因为传递进来的时候就把当前用户放到首位)
|
|
|
private int add_minus_count = 2;// +号和-号的个数,如果权限可以踢人,就是2个,如果权限不可以踢人,就是1个
|
|
|
@@ -104,11 +105,14 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
private CoreService mCoreService;
|
|
|
public final static String ROOM_NAME = "ROOMNAME";
|
|
|
private Button btnExit;
|
|
|
+ private RelativeLayout remove_manage_rl;
|
|
|
+ private boolean iscreater = false;
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
+ members = new ArrayList<>();
|
|
|
setContentView(R.layout.activity_room_info);
|
|
|
if (getIntent() != null) {
|
|
|
mRoomJid = getIntent().getStringExtra(AppConstant.EXTRA_USER_ID);
|
|
|
@@ -149,6 +153,8 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
};
|
|
|
|
|
|
private void initView() {
|
|
|
+ remove_manage_rl = (RelativeLayout) findViewById(R.id.remove_manage_rl);
|
|
|
+ add_manage_rl = (RelativeLayout) findViewById(R.id.add_manage_rl);
|
|
|
sc_tv = (TextView) findViewById(R.id.shield_chat_text);
|
|
|
mNoticeTv = (TextView) findViewById(R.id.notice_tv);
|
|
|
mGridView = (MyGridView) findViewById(R.id.grid_view);
|
|
|
@@ -238,6 +244,7 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void loadMembers() {
|
|
|
mDataLoadView.showLoading();
|
|
|
HashMap<String, String> params = new HashMap<String, String>();
|
|
|
@@ -253,7 +260,7 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
@Override
|
|
|
public void onResponse(ObjectResult<MucRoom> result) {
|
|
|
boolean success = Result.defaultParser(mContext, result, true);
|
|
|
- Log.i("Arison","RoomInfoActivity:onResponse:258:"+ JSON.toJSONString(result.getData()));
|
|
|
+ Log.i("Arison", "RoomInfoActivity:onResponse:258:" + JSON.toJSONString(result.getData()));
|
|
|
if (success && result.getData() != null) {
|
|
|
mDataLoadView.showSuccess();
|
|
|
updateUI(result.getData());
|
|
|
@@ -285,17 +292,20 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
} else {
|
|
|
sc_tv.setText("屏蔽群消息");
|
|
|
}
|
|
|
- long createTime = mucRoom.getCreateTime();
|
|
|
- String formatDate = DateFormatUtil.getFormatDate(createTime * 1000);
|
|
|
mCreateTime.setText(TimeUtils.s_long_2_str(mucRoom.getCreateTime() * 1000));
|
|
|
String myNickName = "";
|
|
|
+ boolean isHaveM = false;
|
|
|
if (mMembers != null) mMembers.clear();
|
|
|
else mMembers = new ArrayList<>();
|
|
|
List<MucRoomMember> munber = mucRoom.getMembers();
|
|
|
MucRoomMember create = null;
|
|
|
+ MucRoomMember my = null;
|
|
|
if (munber != null) {
|
|
|
- MucRoomMember my = null;
|
|
|
for (int i = 0; i < munber.size(); i++) {
|
|
|
+
|
|
|
+ if (munber.get(1).getRole() == 2) {
|
|
|
+ isHaveM = true;
|
|
|
+ }
|
|
|
String userId = munber.get(i).getUserId();
|
|
|
if (!userId.equals(mucRoom.getUserId())) {
|
|
|
mMembers.add(munber.get(i));
|
|
|
@@ -306,6 +316,11 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
myNickName = munber.get(i).getNickName();
|
|
|
my = munber.get(i);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
if (my != null) {// 将我自己移动到第一个的位置
|
|
|
mMembers.remove(my);
|
|
|
@@ -316,6 +331,23 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
mMembers.add(0, create);
|
|
|
}
|
|
|
}
|
|
|
+// if (munber != null) {
|
|
|
+// MucRoomMember leaguer = null;
|
|
|
+// for (int i = 0; i < munber.size(); i++) {
|
|
|
+// leaguer = munber.get(i);
|
|
|
+// if (leaguer.getUserId() == mucRoom.getUserId()) {//是创建者
|
|
|
+// create = leaguer;
|
|
|
+// } else if (leaguer.getRole() == 2) { //管理员
|
|
|
+// isHaveM = true;//如果存在管理员 当为群主时候显示移除管理员选项
|
|
|
+// mMembers.add(0, leaguer);
|
|
|
+// } else if (leaguer.getRole() == 3) { //成员
|
|
|
+// mMembers.add(leaguer);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (create != null) {
|
|
|
+// mMembers.add(0, create);
|
|
|
+// }
|
|
|
+// }
|
|
|
mAdapter = new GridViewAdapter(mMembers);
|
|
|
mGridView.setAdapter(mAdapter);
|
|
|
if (TextUtils.isEmpty(myNickName)) {
|
|
|
@@ -325,13 +357,24 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
}
|
|
|
|
|
|
if (mucRoom.getUserId().equals(mLoginUserId)) {// 我是创建者
|
|
|
+ iscreater = true;
|
|
|
if (btnExit == null) {
|
|
|
btnExit = (Button) findViewById(R.id.btn_exit);
|
|
|
}
|
|
|
String[] compName = mucRoom.getName().split("-");
|
|
|
-
|
|
|
add_minus_count = 2;
|
|
|
-
|
|
|
+ add_manage_rl.setVisibility(View.VISIBLE);
|
|
|
+ if (isHaveM) {
|
|
|
+ remove_manage_rl.setVisibility(View.VISIBLE);
|
|
|
+ remove_manage_rl.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ showCreateGroupChatDialog(REMOVE);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ remove_manage_rl.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
findViewById(R.id.room_name_arrow_img).setVisibility(View.VISIBLE);
|
|
|
findViewById(R.id.room_desc_arrow_img).setVisibility(View.VISIBLE);
|
|
|
findViewById(R.id.banned_voice_rl).setVisibility(View.VISIBLE);
|
|
|
@@ -354,6 +397,13 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
btnExit.setVisibility(View.GONE);
|
|
|
}
|
|
|
}
|
|
|
+ add_manage_rl.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ showCreateGroupChatDialog(ADD);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
findViewById(R.id.room_name_rl).setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
@@ -397,11 +447,18 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
+ if (my != null && my.getRole() == 2) {
|
|
|
+ add_minus_count = 2;
|
|
|
+ } else {
|
|
|
+ add_minus_count = 1;
|
|
|
+ }
|
|
|
if (btnExit == null) {
|
|
|
btnExit = (Button) findViewById(R.id.btn_exit);
|
|
|
}
|
|
|
btnExit.setText("退出商务群");
|
|
|
- add_minus_count = 1;
|
|
|
+
|
|
|
+ add_manage_rl.setVisibility(View.GONE);
|
|
|
+ remove_manage_rl.setVisibility(View.GONE);
|
|
|
findViewById(R.id.room_name_arrow_img).setVisibility(View.INVISIBLE);
|
|
|
findViewById(R.id.room_desc_arrow_img).setVisibility(View.INVISIBLE);
|
|
|
findViewById(R.id.banned_voice_rl).setVisibility(View.GONE);
|
|
|
@@ -455,6 +512,165 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ private int ADD = 1;
|
|
|
+ private int REMOVE = 0;
|
|
|
+ List<MucRoomMember> members;
|
|
|
+
|
|
|
+ private void showCreateGroupChatDialog(final int h) {
|
|
|
+ View rootView = LayoutInflater.from(mContext).inflate(R.layout.activity_select_contacts, null);
|
|
|
+ ListView list = (ListView) rootView.findViewById(R.id.list_view);
|
|
|
+ Button ok_btn = (Button) rootView.findViewById(R.id.ok_btn);
|
|
|
+ ok_btn.setText("确定");
|
|
|
+ ListViewAdapter adapter = null;
|
|
|
+ String title = null;
|
|
|
+ if (h == ADD) {
|
|
|
+ title = "添加管理员";
|
|
|
+ members.clear();
|
|
|
+ for (int i = 0; i < mMembers.size() - add_minus_count; i++) {
|
|
|
+ if (mMembers.get(i).getRole() == 3) {
|
|
|
+ members.add(mMembers.get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ adapter = new ListViewAdapter(members);
|
|
|
+ } else {
|
|
|
+ title = "移除管理员";
|
|
|
+ members.clear();
|
|
|
+ for (int i = 0; i < mMembers.size() - add_minus_count; i++) {
|
|
|
+ if (mMembers.get(i).getRole() == 2) {
|
|
|
+ members.add(mMembers.get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ adapter = new ListViewAdapter(members);
|
|
|
+ }
|
|
|
+ list.setAdapter(adapter);
|
|
|
+ final AlertDialog dialog = new AlertDialog.Builder(this).setTitle(title).setView(rootView)
|
|
|
+ .create();
|
|
|
+ ok_btn.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ boolean isfrist = true;
|
|
|
+ StringBuilder strId = new StringBuilder();
|
|
|
+ if (h == ADD) {
|
|
|
+ for (int i = 0; i < members.size(); i++) {
|
|
|
+ if (members.get(i).getRole() == 2) {
|
|
|
+ if (isfrist) {
|
|
|
+ isfrist = false;
|
|
|
+ } else {
|
|
|
+ strId.append(",");
|
|
|
+ }
|
|
|
+ strId.append(members.get(i).getUserId());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < members.size(); i++) {
|
|
|
+ if (members.get(i).getRole() == 3) {
|
|
|
+ if (isfrist) {
|
|
|
+ isfrist = false;
|
|
|
+ } else {
|
|
|
+ strId.append(",");
|
|
|
+ }
|
|
|
+ strId.append(members.get(i).getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ updata(dialog, h, strId.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ dialog.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updata(final AlertDialog dialog, int type, String userId) {
|
|
|
+ String url = "/room/setRoomManger";
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("roomId", mRoomJid);
|
|
|
+ params.put("userId", userId);
|
|
|
+ params.put("kind", type + "");
|
|
|
+ params.put("access_token", MyApplication.getInstance().mAccessToken);
|
|
|
+ StringJsonObjectRequest<Void> request = new StringJsonObjectRequest<Void>(mConfig.apiUrl + url, new ErrorListener() {
|
|
|
+ @Override
|
|
|
+ public void onErrorResponse(VolleyError arg0) {
|
|
|
+ ToastUtil.showErrorNet(mContext);
|
|
|
+ }
|
|
|
+ }, new Listener<Void>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(ObjectResult<Void> result) {
|
|
|
+ boolean success = Result.defaultParser(mContext, result, true);
|
|
|
+ if (success) {
|
|
|
+ ToastMessage("操作成功");
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, Void.class, params);
|
|
|
+ addDefaultRequest(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ private class ListViewAdapter extends BaseAdapter {
|
|
|
+
|
|
|
+ private List<MucRoomMember> members;
|
|
|
+
|
|
|
+ public ListViewAdapter(List<MucRoomMember> mMembers) {
|
|
|
+ this.members = mMembers;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int getCount() {
|
|
|
+ return members.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object getItem(int position) {
|
|
|
+ return members.get(position);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public long getItemId(int position) {
|
|
|
+ return position;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public View getView(int position, View convertView, ViewGroup parent) {
|
|
|
+ viewholder holder = null;
|
|
|
+
|
|
|
+ if (convertView == null) {
|
|
|
+ convertView = LayoutInflater.from(mContext).inflate(R.layout.row_select_contacts, parent, false);
|
|
|
+ holder = new viewholder();
|
|
|
+ holder.img = (ImageView) convertView.findViewById(R.id.avatar_img);
|
|
|
+ holder.tv = (TextView) convertView.findViewById(R.id.user_name_tv);
|
|
|
+ holder.cb = (CheckBox) convertView.findViewById(R.id.check_box);
|
|
|
+ convertView.setTag(holder);
|
|
|
+ } else {
|
|
|
+ holder = (viewholder) convertView.getTag();
|
|
|
+ }
|
|
|
+ final MucRoomMember mucRoomMember = members.get(position);
|
|
|
+ AvatarHelper.getInstance().displayAvatar(mucRoomMember.getUserId(), holder.img, false);
|
|
|
+ holder.tv.setText(mucRoomMember.getNickName());
|
|
|
+ holder.cb.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ if (mucRoomMember.getRole() == 3) {
|
|
|
+ Log.i("gongpengming", "getRole() == 3");
|
|
|
+ mucRoomMember.setRole(2);
|
|
|
+ } else {
|
|
|
+ Log.i("gongpengming", "getRole() == 2");
|
|
|
+ mucRoomMember.setRole(3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (mucRoomMember.getRole() < 3) {
|
|
|
+ holder.cb.setFocusable(false);
|
|
|
+ }
|
|
|
+ return convertView;
|
|
|
+ }
|
|
|
+
|
|
|
+ class viewholder {
|
|
|
+ ImageView img;
|
|
|
+ TextView tv;
|
|
|
+ CheckBox cb;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void showNewNoticeDialog(final String notice) {
|
|
|
final EditText editText = new EditText(this);
|
|
|
editText.setLines(2);
|
|
|
@@ -584,8 +800,6 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
ImageView imageView = (ImageView) view.findViewById(R.id.content);
|
|
|
TextView tvName = (TextView) view.findViewById(R.id.tv_name);
|
|
|
Button button = (Button) view.findViewById(R.id.btn_del);
|
|
|
-
|
|
|
-
|
|
|
if (position > members.size() - (add_minus_count + 1)) {
|
|
|
if (add_minus_count == 1) {
|
|
|
if (position == members.size() - 1) {
|
|
|
@@ -611,7 +825,17 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
tvName.setText(members.get(position).getNickName());
|
|
|
AvatarHelper.getInstance().displayAvatar(members.get(position).getUserId(), imageView, true);
|
|
|
if (doDel | doBannedVoice) {
|
|
|
- button.setVisibility(View.VISIBLE);
|
|
|
+ if (iscreater) { //如果是创建者
|
|
|
+ if (members.get(position).getRole() != 1)
|
|
|
+ button.setVisibility(View.VISIBLE);
|
|
|
+ else
|
|
|
+ button.setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ if (members.get(position).getRole() == 3)
|
|
|
+ button.setVisibility(View.VISIBLE);
|
|
|
+ else
|
|
|
+ button.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
} else {
|
|
|
button.setVisibility(View.GONE);
|
|
|
}
|
|
|
@@ -643,6 +867,7 @@ public class RoomInfoActivity extends BaseActivity {
|
|
|
}
|
|
|
return view;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void showBanndedVoiceDialog(final int position, final String userId) {
|