sortList function
特定规则排序群成员 群主>管理员>普通成员
Implementation
List<UserInfoWithTeam>? sortList(List<UserInfoWithTeam>? memberList) {
int roleRank(NIMTeamMemberRole role) {
if (role == NIMTeamMemberRole.memberRoleOwner) {
return 0;
}
if (role == NIMTeamMemberRole.memberRoleManager) {
return 1;
}
return 2;
}
if (memberList != null) {
final indexedMembers = memberList.asMap().entries.toList();
indexedMembers.sort((a, b) {
final roleComparison = roleRank(a.value.teamInfo.memberRole)
.compareTo(roleRank(b.value.teamInfo.memberRole));
return roleComparison != 0 ? roleComparison : a.key.compareTo(b.key);
});
for (var index = 0; index < indexedMembers.length; index++) {
memberList[index] = indexedMembers[index].value;
}
}
return memberList;
}