getLastConversationMessage static method
Implementation
static String getLastConversationMessage(
Conversation conversation, BuildContext context) {
String? messageCategory = conversation.lastMessage?.category;
String subtitle;
switch (messageCategory) {
case MessageCategoryConstants.message:
subtitle = getLastMessage(conversation, context);
break;
case MessageCategoryConstants.custom:
subtitle = getLastCustomMessage(conversation, context);
break;
case MessageCategoryConstants.action:
subtitle = getLastActionMessage(conversation, context);
break;
case MessageCategoryConstants.call:
subtitle = getLastCallMessage(conversation, context);
break;
case MessageCategoryConstants.interactive:
//TODO: appropriate implement interactive message subtitle
// subtitle = getLastInteractiveMessage(conversation, context);
subtitle = Translations.of(context).unsupportedMessageType;
break;
case MessageCategoryConstants.card:
final cardMsg = conversation.lastMessage as CardMessage?;
subtitle = cardMsg?.getText()?.isNotEmpty == true
? cardMsg!.getText()!
: Translations.of(context).cardMessage;
break;
case MessageCategoryConstants.agentic:
// Agent (agentic/assistant) last-message preview. The text lives on the
// AIAssistantMessage; fall back to a localized label when it's empty
// (previously fell through to the raw message type).
final agentMsg = conversation.lastMessage;
final agentText =
(agentMsg is AIAssistantMessage) ? (agentMsg.text ?? '') : '';
subtitle = agentText.isNotEmpty
? agentText
: Translations.of(context).aiAgentMessage;
break;
default:
subtitle = conversation.lastMessage!.type;
break;
}
return subtitle;
}