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:
      debugPrint("isNotChatItem--> $isNotChatItem");
      debugPrint("Document --> $isReply");
      debugPrint("Document --> ${isReply
          ? mediaChatMessage!.mediaFileName
          : replyChatMessageModel?.mediaChatMessage?.mediaFileName ?? chatMessageModel.mediaChatMessage!.mediaFileName}");
      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(
              (mediaChatMessage?.isAudioRecorded).checkNull()
                  ? mAudioRecordIcon
                  : mAudioIcon,
              package: package,
              fit: BoxFit.contain,
              colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
              height: 18,
            ),
          ),
        ),
      );
    default:
      debugPrint("reply header--> DEFAULT");
      return SizedBox(
        height: size,
      );
  }
}