getCallIcon static method
Widget
getCallIcon(
- BuildContext context,
- CallLog callLog,
- User? loggedInUser,
- CometChatColorPalette colorPalette,
- CometChatTypography typography,
- CometChatSpacing spacing,
- CometChatCallLogsStyle style, {
- Widget? incomingCallIcon,
- Widget? outgoingCallIcon,
- Widget? missedCallIcon,
getCallIcon Return call status icon
Implementation
static Widget getCallIcon(
BuildContext context,
CallLog callLog,
User? loggedInUser,
CometChatColorPalette colorPalette,
CometChatTypography typography,
CometChatSpacing spacing,
CometChatCallLogsStyle style, {
Widget? incomingCallIcon,
Widget? outgoingCallIcon,
Widget? missedCallIcon,
}) {
bool isInitiatedByUser = callLogLoggedInUser(callLog, loggedInUser);
isAudioCall(callLog);
// Define default icons if not provided
Widget incoming = incomingCallIcon ??
Icon(
Icons.call_received_outlined,
color: style.incomingCallIconColor ?? colorPalette.success,
size: 16,
);
Widget outgoing = outgoingCallIcon ??
Icon(
Icons.call_made_outlined,
color: style.outgoingCallIconColor ?? colorPalette.success,
size: 16,
);
Widget missed = missedCallIcon ??
Icon(
Icons.call_missed_outgoing_rounded,
color: style.missedCallIconColor ?? colorPalette.error,
size: 16,
);
// Helper function to select icon based on initiator and call type
Widget selectIcon(bool isInitiatedByUser) {
return isInitiatedByUser ? outgoing : incoming;
}
// Switch on call status to determine the appropriate icon
switch (callLog.status) {
case CallStatusConstants.initiated:
case CallStatusConstants.ongoing:
case CallStatusConstants.ended:
return selectIcon(isInitiatedByUser);
case CallStatusConstants.unanswered:
case CallStatusConstants.cancelled:
case CallStatusConstants.rejected:
case CallStatusConstants.busy:
return isInitiatedByUser ? outgoing : missed;
default:
return const SizedBox(); // Return empty widget for unknown statuses
}
}