Skip to content

Commit 8560766

Browse files
committed
fix group manage issue
1 parent 2ca8ed0 commit 8560766

File tree

2 files changed

+37
-15
lines changed

2 files changed

+37
-15
lines changed

chat/kit/src/main/java/cn/wildfire/chat/kit/group/GroupViewModel.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,29 @@ public MutableLiveData<List<UIUserInfo>> getGroupManagerUIUserInfosLiveData(Stri
327327
return data;
328328
}
329329

330+
public List<GroupMember> getGroupManagers(String groupId) {
331+
List<GroupMember> members = ChatManager.Instance().getGroupMembers(groupId, false);
332+
List<GroupMember> managers = new ArrayList<>();
333+
if (members != null) {
334+
for (GroupMember member : members) {
335+
if (member.type == GroupMember.GroupMemberType.Manager) {
336+
managers.add(member);
337+
}
338+
}
339+
}
340+
return managers;
341+
}
342+
343+
public List<String> getGroupManagerIds(String groupId) {
344+
List<GroupMember> managers = getGroupManagers(groupId);
345+
List<String> mangerIds = new ArrayList<>();
346+
if (managers != null) {
347+
for (GroupMember manager : managers) {
348+
mangerIds.add(manager.memberId);
349+
}
350+
}
351+
return mangerIds;
352+
}
330353

331354
private List<UIUserInfo> memberToUIUserInfo(String groupId, List<GroupMember> members) {
332355
if (members == null || members.isEmpty()) {

chat/kit/src/main/java/cn/wildfire/chat/kit/group/manage/GroupManagerListFragment.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111

1212
import java.util.ArrayList;
1313
import java.util.Collections;
14-
import java.util.List;
1514

1615
import cn.wildfire.chat.kit.contact.BaseUserListFragment;
1716
import cn.wildfire.chat.kit.contact.UserListAdapter;
1817
import cn.wildfire.chat.kit.contact.model.FooterValue;
1918
import cn.wildfire.chat.kit.contact.model.UIUserInfo;
19+
import cn.wildfire.chat.kit.group.BasePickGroupMemberActivity;
2020
import cn.wildfire.chat.kit.group.GroupViewModel;
2121
import cn.wildfire.chat.kit.user.UserViewModel;
2222
import cn.wildfirechat.model.GroupInfo;
@@ -27,7 +27,6 @@ public class GroupManagerListFragment extends BaseUserListFragment {
2727
private GroupViewModel groupViewModel;
2828
private GroupInfo groupInfo;
2929
private GroupMember groupMember;
30-
private List<GroupMember> managerMembers = new ArrayList<>();
3130

3231
public static GroupManagerListFragment newInstance(GroupInfo groupInfo) {
3332
Bundle args = new Bundle();
@@ -77,25 +76,25 @@ public void onUserClick(UIUserInfo userInfo) {
7776
GroupMember groupMember = groupViewModel.getGroupMember(groupInfo.target, userInfo.getUserInfo().uid);
7877
if (groupMember.type == GroupMember.GroupMemberType.Manager) {
7978
new MaterialDialog.Builder(getActivity())
80-
.items(Collections.singleton("移除群管理"))
81-
.itemsCallback((dialog, itemView, position, text) -> {
82-
groupViewModel.setGroupManager(groupInfo.target, false, Collections.singletonList(userInfo.getUserInfo().uid), null, Collections.singletonList(0));
83-
})
84-
.cancelable(true)
85-
.build()
86-
.show();
79+
.items(Collections.singleton("移除群管理"))
80+
.itemsCallback((dialog, itemView, position, text) -> {
81+
groupViewModel.setGroupManager(groupInfo.target, false, Collections.singletonList(userInfo.getUserInfo().uid), null, Collections.singletonList(0));
82+
})
83+
.cancelable(true)
84+
.build()
85+
.show();
8786
}
8887
}
8988

9089
@Override
9190
public void onFooterClick(int index) {
9291
Intent intent = new Intent(getActivity(), AddGroupManagerActivity.class);
93-
intent.putExtra("groupInfo", groupInfo);
94-
ArrayList<String> memberIds = new ArrayList<>(managerMembers.size());
95-
for (GroupMember member : managerMembers) {
96-
memberIds.add(member.memberId);
97-
}
98-
intent.putStringArrayListExtra("unCheckableMemberIds", memberIds);
92+
intent.putExtra(BasePickGroupMemberActivity.GROUP_INFO, groupInfo);
93+
94+
ArrayList<String> uncheckableMemberIds = new ArrayList<>();
95+
uncheckableMemberIds.add(groupInfo.owner);
96+
uncheckableMemberIds.addAll(groupViewModel.getGroupManagerIds(groupInfo.target));
97+
intent.putExtra(BasePickGroupMemberActivity.UNCHECKABLE_MEMBER_IDS, uncheckableMemberIds);
9998
startActivity(intent);
10099
}
101100

0 commit comments

Comments
 (0)