getImageOverlay function

Widget getImageOverlay(
  1. BuildContext context,
  2. ChatMessageModel chatMessage, {
  3. dynamic onAudio()?,
  4. dynamic onVideo()?,
})

Implementation

Widget getImageOverlay(BuildContext context,ChatMessageModel chatMessage,
    {Function()? onAudio, Function()? onVideo}) {
  // debugPrint(
  //     "getImageOverlay checkFile ${checkFile(chatMessage.mediaChatMessage!.mediaLocalStoragePath)}");
  // debugPrint("getImageOverlay messageStatus ${chatMessage.messageStatus}");
  // debugPrint(
  //     "getImageOverlay ${(checkFile(chatMessage.mediaChatMessage!.mediaLocalStoragePath) && chatMessage.messageStatus != 'N')}");
  if (checkFile(chatMessage.mediaChatMessage!.mediaLocalStoragePath) &&
      chatMessage.messageStatus.value != 'N') {
    if (chatMessage.messageType.toUpperCase() == Constants.mVideo) {
      return FloatingActionButton.small(
        onPressed: onVideo,
        backgroundColor: MirrorflyUikit.getTheme?.primaryColor,
        child:  Icon(
          Icons.play_arrow_rounded,
          color: MirrorflyUikit.getTheme?.colorOnPrimary,
        ),
      );
    } else if (chatMessage.messageType.toUpperCase() == Constants.mAudio) {
      return InkWell(
        onTap: onAudio,
        child: Padding(
          padding: const EdgeInsets.all(8.0),
          child: chatMessage.mediaChatMessage!.isPlaying
              ? SvgPicture.asset(
            pauseIcon,package: package,
            colorFilter: ColorFilter.mode(chatMessage.isMessageSentByMe ? MirrorflyUikit.getTheme!.chatBubblePrimaryColor.textSecondaryColor : MirrorflyUikit.getTheme!.chatBubbleSecondaryColor.textSecondaryColor, BlendMode.srcIn),
            height: 17,
          ) //const Icon(Icons.pause)
              : SvgPicture.asset(
            playIcon,package: package,
            colorFilter: ColorFilter.mode(chatMessage.isMessageSentByMe ? MirrorflyUikit.getTheme!.chatBubblePrimaryColor.textSecondaryColor : MirrorflyUikit.getTheme!.chatBubbleSecondaryColor.textSecondaryColor, BlendMode.srcIn),
            height: 17,
          ),
        ),
      ); //const Icon(Icons.play_arrow_sharp);
    } else {
      return const SizedBox.shrink();
    }
  } else {
    // debugPrint(
    //     "overlay status-->${chatMessage.isMessageSentByMe ? chatMessage.mediaChatMessage!.mediaUploadStatus : chatMessage.mediaChatMessage!.mediaDownloadStatus}");
    switch (chatMessage.isMessageSentByMe
        ? chatMessage.mediaChatMessage!.mediaUploadStatus
        : chatMessage.mediaChatMessage!.mediaDownloadStatus) {
      case Constants.mediaDownloaded:
      case Constants.mediaUploaded:
      case Constants.mediaDownloadedNotAvailable:
      case Constants.mediaUploadedNotAvailable:
        return const SizedBox.shrink();
      case Constants.mediaNotDownloaded:
        return InkWell(
          child: downloadView(
              chatMessage.mediaChatMessage!.mediaDownloadStatus,
              chatMessage.mediaChatMessage!.mediaFileSize,
              chatMessage.messageType.toUpperCase(),chatMessage.isMessageSentByMe),
          onTap: () {
            downloadMedia(context,chatMessage.messageId);
          },
        );
      case Constants.mediaNotUploaded:
        return InkWell(
            onTap: () {
              uploadMedia(chatMessage.messageId);
            },
            child: uploadView(
                chatMessage.mediaChatMessage!.mediaDownloadStatus,
                chatMessage.mediaChatMessage!.mediaFileSize,
                chatMessage.messageType.toUpperCase(),chatMessage.isMessageSentByMe));

      case Constants.mediaDownloading:
      case Constants.mediaUploading:
        return InkWell(
            onTap: () {
              cancelMediaUploadOrDownload(chatMessage.messageId);
            },
            child: Obx(() {
              return downloadingOrUploadingView(chatMessage.messageType,
                  chatMessage.mediaChatMessage!.mediaProgressStatus.value,chatMessage.isMessageSentByMe);
            }));
      default:
        return const SizedBox.shrink();
    }
  }
}