convertToSystemInfoFromGroupTips static method
Implementation
static List<SystemMessageInfo> convertToSystemInfoFromGroupTips(V2TimGroupTipsElem tipsElem) {
final opUser = getMemberShowName(tipsElem.opMember);
final userList = getMembersShowName(tipsElem.memberList);
final groupID = tipsElem.groupID;
switch (tipsElem.type) {
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_JOIN:
String joinMember;
if (userList.isNotEmpty) {
joinMember = userList.join(', ');
} else {
joinMember = opUser;
}
return [JoinGroupSystemMessage(groupID: groupID, joinMember: joinMember)];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_INVITE:
final users = userList.join("、");
return [
InviteToGroupSystemMessage(
groupID: groupID,
inviter: opUser,
inviteesShowName: users,
)
];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_QUIT:
return [QuitGroupSystemMessage(groupID: groupID, quitMember: opUser)];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_KICKED:
final users = userList.join("、");
return [
KickedFromGroupSystemMessage(
groupID: groupID,
kickOperator: opUser,
kickedMembersShowName: users,
)
];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_SET_ADMIN:
final users = userList.join("、");
return [
SetGroupAdminSystemMessage(
groupID: groupID,
setAdminOperator: opUser,
setAdminMembersShowName: users,
)
];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_CANCEL_ADMIN:
final users = userList.join("、");
return [
CancelGroupAdminSystemMessage(
groupID: groupID,
cancelAdminOperator: opUser,
cancelAdminMembersShowName: users,
)
];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_GROUP_INFO_CHANGE:
List<V2TimGroupChangeInfo?>? groupChangeInfoList = tipsElem.groupChangeInfoList;
if (groupChangeInfoList != null) {
return convertToSystemInfoFromGroupInfoChangedList(groupID, opUser, userList, groupChangeInfoList);
}
break;
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_MEMBER_INFO_CHANGE:
if (tipsElem.memberChangeInfoList != null && tipsElem.memberChangeInfoList!.isNotEmpty) {
final info = tipsElem.memberChangeInfoList!.first;
final userId = info?.userID;
final myUserID = LoginStoreImpl.instance.loginState.loginUserInfo?.userID;
final mutedMembersShowName = getMemberShowNameFromTips(tipsElem, userId);
final isSelfMuted = userId == myUserID;
final muteTime = info?.muteTime ?? 0;
return [
MuteGroupMemberSystemMessage(
groupID: groupID,
muteGroupMemberOperator: opUser,
isSelfMuted: isSelfMuted,
mutedGroupMembersShowName: mutedMembersShowName,
muteTime: muteTime,
)
];
}
break;
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_PINNED_MESSAGE_ADDED:
return [
PinGroupMessageSystemMessage(
groupID: groupID,
pinGroupMessageOperator: opUser,
)
];
case GroupTipsElemType.V2TIM_GROUP_TIPS_TYPE_PINNED_MESSAGE_DELETED:
return [
UnpinGroupMessageSystemMessage(
groupID: groupID,
unpinGroupMessageOperator: opUser,
)
];
default:
break;
}
return [UnknownSystemMessage()];
}