getReplyImageHolder function

dynamic getReplyImageHolder(
  1. BuildContext context,
  2. ChatMessageModel chatMessageModel,
  3. MediaChatMessage? mediaChatMessage,
  4. double size,
  5. bool isNotChatItem,
  6. LocationChatMessage? locationChatMessage,
  7. IconStyle iconStyle,
  8. BorderRadius borderRadius,
)

Implementation

getReplyImageHolder(
    BuildContext context,
    ChatMessageModel chatMessageModel,
    MediaChatMessage? mediaChatMessage,
    double size,
    bool isNotChatItem,
    LocationChatMessage? locationChatMessage,
    IconStyle iconStyle,
    BorderRadius borderRadius) {
  var isReply = false;
  if (mediaChatMessage != null || locationChatMessage != null) {
    isReply = true;
  }
  var condition = !isNotChatItem
      ? chatMessageModel.replyParentChatMessage
          ?.messageType //(mediaChatMessage == null ? Constants.mLocation : mediaChatMessage.messageType)
      : chatMessageModel.messageType;
  LogMessage.d("isReply", isReply);
  LogMessage.d("condition", condition);
  LogMessage.d("chatMessageModel.messageType", chatMessageModel.messageType);
  switch (condition) {
    case Constants.mImage:
      debugPrint("reply header--> IMAGE");
      return ClipRRect(
        borderRadius:
            borderRadius, //const BorderRadius.only(topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
        child: SizedBox(
          width: size,
          height: size,
          child: ImageCacheManager.getImage(
              isReply
                  ? mediaChatMessage!.mediaThumbImage
                  : chatMessageModel.mediaChatMessage!.mediaThumbImage
                      .checkNull(),
              chatMessageModel.messageId,
              size,
              size),
        ),
      );
    case Constants.mLocation:
      return ClipRRect(
          borderRadius:
              borderRadius, //const BorderRadius.only(topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
          child: getLocationImage(
              isReply
                  ? locationChatMessage
                  : chatMessageModel.locationChatMessage,
              size,
              size,
              isSelected: true));
    case Constants.mVideo:
      return ClipRRect(
        borderRadius:
            borderRadius, //const BorderRadius.only(topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
        child: SizedBox(
          width: size,
          height: size,
          child: ImageCacheManager.getImage(
              isReply
                  ? mediaChatMessage!.mediaThumbImage
                  : chatMessageModel.mediaChatMessage!.mediaThumbImage,
              chatMessageModel.messageId,
              size,
              size),
        ),
      );
    case Constants.mDocument:
      debugPrint("isNotChatItem--> $isNotChatItem");
      debugPrint("Document --> $isReply");
      return isNotChatItem
          ? SizedBox(height: size)
          : Container(
              width: size,
              height: size,
              decoration: BoxDecoration(
                borderRadius:
                    borderRadius, //const BorderRadius.only(topRight: Radius.circular(10), bottomRight: Radius.circular(10)),
                color: iconStyle.bgColor,
              ),
              child: Center(
                child: MessageUtils.getDocumentTypeIcon(
                    isReply
                        ? mediaChatMessage!.mediaFileName
                        : chatMessageModel.mediaChatMessage!.mediaFileName,
                    30),
              ));
    case Constants.mAudio:
      return isNotChatItem
          ? SizedBox(height: size)
          : ClipRRect(
              borderRadius:
                  borderRadius, //const BorderRadius.only(topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
              child: Container(
                height: size,
                width: size,
                color: iconStyle.bgColor,
                child: Center(
                  child: AppUtils.svgIcon(
                    icon: mediaChatMessage!.isAudioRecorded.checkNull()
                        ? mAudioRecordIcon
                        : mAudioIcon,
                    fit: BoxFit.contain,
                    colorFilter:
                        ColorFilter.mode(iconStyle.iconColor, BlendMode.srcIn),
                    height: 18,
                  ),
                ),
              ),
            );
    default:
      debugPrint("reply header--> DEFAULT");
      return SizedBox(
        height: size,
      );
  }
}