ImCustomMessage.from constructor
ImCustomMessage.from(
- String data
Implementation
factory ImCustomMessage.from(String data) {
var message = jsonDecode(data);
if (message is String) {
//data如果带转义字符需要decode两次
message = jsonDecode(message);
}
final int event = DynamicUtils.safeToInt(message["evt"]);
dynamic entity;
switch (event) {
case ImCustomEvent.luckyTurntableExplodingLights:
entity = ImLuckyTurntableExplodingLights.fromJson(message);
break;
case ImCustomEvent.luckyTurntableRewardMsg:
case ImCustomEvent.luckyTurntableRewardGlobalMsg:
entity = ImLuckyTurntableRewardMsg.fromJson(message);
break;
case ImCustomEvent.barrageMsg:
entity = ImMessage.fromJson(message);
break;
case ImCustomEvent.openNobleGlobalMsg:
case ImCustomEvent.openNobleMsg:
entity = ImOpenNobleMsg.fromJson(message);
break;
case ImCustomEvent.levelUp:
entity = ImLevelUp.fromJson(message);
break;
/// 直播间房间公告
case ImCustomEvent.broadcast1:
case ImCustomEvent.broadcast2:
entity = ImBroadcast.fromJson(message);
break;
///普通事件
case ImCustomEvent.newMsgNum:
entity = ImNewMsgNum.fromJson(message);
break;
///直播间事件
case ImCustomEvent.businessCardSwitch:
case ImCustomEvent.turntableSwitch:
case ImCustomEvent.insufficientBalance:
case ImCustomEvent.message:
entity = ImMessage.fromJson(message);
break;
case ImCustomEvent.kickOutMsg:
var msg = ImMessage.fromJson(message);
entity = msg.copyWith(msg: Strings.KickOutContent.tr);
break;
case ImCustomEvent.kickOut:
var msg = ImMessage.fromJson(message);
entity = msg.copyWith(msg: Strings.beKickOut.tr);
break;
case ImCustomEvent.mute:
var msg = ImMessage.fromJson(message);
if (msg.userId == UserManager().getUserId()) {
entity = msg.copyWith(msg: Strings.beMute1.tr);
} else {
entity = msg.copyWith(msg: Strings.beMute2.tr);
}
break;
case ImCustomEvent.joinRoom:
entity = ImMessage.fromJson(message, Strings.joinLiveRoom.tr);
break;
case ImCustomEvent.subscribe:
entity = ImMessage.fromJson(message, Strings.subscribeAnchor.tr);
break;
case ImCustomEvent.setRoomManager:
var msg = ImMessage.fromJson(message);
if (msg.userId == UserManager().getUserId()) {
entity = msg.copyWith(msg: Strings.beRoomManager1.tr);
} else {
entity = msg.copyWith(msg: Strings.beRoomManager2.tr);
}
break;
case ImCustomEvent.leaveRoom:
entity = "leave room";
break;
case ImCustomEvent.liveClosed:
entity = Strings.liveClosed.tr;
break;
case ImCustomEvent.liveFee:
entity = ImFee.fromJson(message);
break;
case ImCustomEvent.turntableResult:
entity = ImTurntable.fromJson(message);
break;
case ImCustomEvent.giftMsg:
entity = ImGiftMsg.fromJson(message);
break;
case ImCustomEvent.openGuard:
entity = ImOpenGuardMsg.fromJson(message);
break;
case ImCustomEvent.vibratingEgg:
case ImCustomEvent.gift:
case ImCustomEvent.backpackGift:
case ImCustomEvent.bannerGift:
entity = ImGift.fromJson(message);
break;
case ImCustomEvent.gameBet:
entity = ImGameBet.fromJson(message);
break;
case ImCustomEvent.gameWin:
entity = ImGameWin.fromJson(message);
break;
case ImCustomEvent.connectRoom:
entity = ImConnectRoom.fromJson(message);
break;
case ImCustomEvent.gameResult:
entity = ImGameResult.fromJson(message);
break;
case ImCustomEvent.anchorPaused:
case ImCustomEvent.anchorResume:
entity = "";
break;
case ImCustomEvent.ticketTimeOut:
entity = ImMessage.fromJson(message, "本场直播付费时段已结束");
break;
case ImCustomEvent.deleteMsg:
entity = ImMessage.fromJson(message);
break;
default:
entity = message;
break;
}
return ImCustomMessage(event, entity);
}