getLastCallMessage static method
Implementation
static String getLastCallMessage(
Conversation conversation, BuildContext context) {
Call call = conversation.lastMessage as Call;
User? conversationWithUser;
Group? conversationWithGroup;
if (conversation.conversationWith is User) {
conversationWithUser = conversation.conversationWith as User;
} else if (conversation.conversationWith is Group) {
conversationWithGroup = conversation.conversationWith as Group;
}
String subtitle = call.type;
Group? callInitiatorGroup;
User? callInitiatorUser;
if (call.callInitiator is User) {
callInitiatorUser = call.callInitiator as User;
} else {
callInitiatorGroup = call.callInitiator as Group;
}
if (call.callStatus == CallStatusConstants.ongoing) {
subtitle = Translations.of(context).ongoingCall;
} else if (call.callStatus == CallStatusConstants.ended ||
call.callStatus == CallStatusConstants.initiated) {
if ((callInitiatorUser != null &&
conversationWithUser != null &&
callInitiatorUser.uid == conversationWithUser.uid) ||
(callInitiatorGroup != null &&
conversationWithGroup != null &&
callInitiatorGroup.guid == conversationWithGroup.guid)) {
if (call.type == MessageTypeConstants.audio) {
subtitle = Translations.of(context).incomingAudioCall;
} else {
subtitle = Translations.of(context).incomingVideoCall;
}
} else {
if (call.type == MessageTypeConstants.audio) {
subtitle = Translations.of(context).outgoingAudioCall;
} else {
subtitle = Translations.of(context).outgoingVdeoCall;
}
}
} else if (call.callStatus == CallStatusConstants.cancelled ||
call.callStatus == CallStatusConstants.unanswered ||
call.callStatus == CallStatusConstants.rejected ||
call.callStatus == CallStatusConstants.busy) {
if ((callInitiatorUser != null &&
conversationWithUser != null &&
callInitiatorUser.uid == conversationWithUser.uid) ||
(callInitiatorGroup != null &&
conversationWithGroup != null &&
callInitiatorGroup.guid == conversationWithGroup.guid)) {
if (call.type == MessageTypeConstants.audio) {
subtitle = Translations.of(context).missedVoiceCall;
} else {
subtitle = Translations.of(context).missedVideoCall;
}
} else {
if (call.type == MessageTypeConstants.audio) {
subtitle = Translations.of(context).unansweredAudioCall;
} else {
subtitle = Translations.of(context).unansweredVideoCall;
}
}
}
return subtitle;
}