getReplyImageHolder function

dynamic getReplyImageHolder(
  1. BuildContext context,
  2. ChatMessageModel chatMessageModel,
  3. ReplyParentChatMessage? replyChatMessageModel,
  4. MediaChatMessage? mediaChatMessage,
  5. double size,
  6. bool isNotChatItem,
  7. LocationChatMessage? locationChatMessage,
)

Implementation

getReplyImageHolder(
    BuildContext context,
    ChatMessageModel chatMessageModel,
    ReplyParentChatMessage? replyChatMessageModel,
    MediaChatMessage? mediaChatMessage,
    double size,
    bool isNotChatItem,
    LocationChatMessage? locationChatMessage) {
  var isReply = false;
  if (mediaChatMessage != null || locationChatMessage != null) {
    isReply = true;
  }
  switch (isReply
      ? mediaChatMessage == null
          ? Constants.mLocation
          : mediaChatMessage.messageType.checkNull().toUpperCase()
      : replyChatMessageModel?.messageType ??
          chatMessageModel.messageType.checkNull().toUpperCase()) {
    case Constants.mImage:
      // debugPrint("reply header--> IMAGE");
      return ClipRRect(
        borderRadius: const BorderRadius.only(
            topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
        child: imageFromBase64String(
            isReply
                ? mediaChatMessage!.mediaThumbImage
                : replyChatMessageModel?.mediaChatMessage?.mediaThumbImage ??
                    chatMessageModel.mediaChatMessage!.mediaThumbImage
                        .checkNull(),
            context,
            size,
            size),
      );
    case Constants.mLocation:
      // debugPrint("location mesg--> ${locationChatMessage?.toJson().toString()}");
      // debugPrint("location mesg--> ${chatMessageModel.locationChatMessage?.toJson().toString()}");
      return getLocationImage(
          isReply
              ? locationChatMessage
              : replyChatMessageModel?.locationChatMessage ??
                  chatMessageModel.locationChatMessage,
          size,
          size,
          isSelected: true);
    case Constants.mVideo:
      return ClipRRect(
        borderRadius: const BorderRadius.only(
            topRight: Radius.circular(5), bottomRight: Radius.circular(5)),
        child: imageFromBase64String(
            isReply
                ? mediaChatMessage!.mediaThumbImage
                : replyChatMessageModel?.mediaChatMessage?.mediaThumbImage ??
                    chatMessageModel.mediaChatMessage!.mediaThumbImage,
            context,
            size,
            size),
      );
    case Constants.mDocument:
      return isNotChatItem
          ? SizedBox(height: size)
          : Container(
              width: size,
              height: size,
              decoration: const BoxDecoration(
                borderRadius: BorderRadius.only(
                    topRight: Radius.circular(10),
                    bottomRight: Radius.circular(10)),
                color: Colors.white,
              ),
              child: Center(
                child: getImageHolder(
                    isReply
                        ? mediaChatMessage!.mediaFileName
                        : replyChatMessageModel
                                ?.mediaChatMessage?.mediaFileName ??
                            chatMessageModel.mediaChatMessage!.mediaFileName,
                    30),
              ));
    case Constants.mAudio:
      return isNotChatItem
          ? SizedBox(height: size)
          : ClipRRect(
              borderRadius: const BorderRadius.only(
                  topRight: Radius.circular(5),
                  bottomRight: Radius.circular(5)),
              child: Container(
                height: size,
                width: size,
                color: audioBgColor,
                child: Center(
                  child: SvgPicture.asset(
                    package: package,
                    (mediaChatMessage?.isAudioRecorded).checkNull()
                        ? mAudioRecordIcon
                        : mAudioIcon,
                    fit: BoxFit.contain,
                    colorFilter:
                        const ColorFilter.mode(Colors.white, BlendMode.srcIn),
                    height: 18,
                  ),
                ),
              ),
            );
    default:
      // debugPrint("reply header--> DEFAULT");
      return SizedBox(
        height: size,
      );
  }
}