shareAppWithMediaItem static method

Future<void> shareAppWithMediaItem(
  1. AppMediaItem mediaItem
)

Implementation

static Future<void> shareAppWithMediaItem(AppMediaItem mediaItem) async {

  String thumbnailLocalPath = "";

  if(mediaItem.imgUrl.isNotEmpty || (mediaItem.allImgs?.isNotEmpty ?? false) ) {
    String imgUrl = mediaItem.imgUrl.isNotEmpty ? mediaItem.imgUrl : mediaItem.allImgs?.first ?? "";
    if(imgUrl.isNotEmpty) {
      thumbnailLocalPath = await FileDownloader.downloadImage(imgUrl, imgName: "${mediaItem.artist}_${mediaItem.name}");
    }
  }

  ShareResult? shareResult;
  String caption = mediaItem.name;
  if(mediaItem.type == MediaItemType.song) {
    if(caption.contains(CoreConstants.titleTextDivider)) {
      caption = caption.replaceAll(CoreConstants.titleTextDivider, "\n\n");
    }
    String dotsLine = "";
    for(int i = 0; i < mediaItem.artist.length; i++) {
      dotsLine = "$dotsLine.";
    }
    caption = "$caption\n\n${mediaItem.artist}\n$dotsLine";
  }


  String sharedText = '$caption${caption.isNotEmpty ? "\n\n" : ""}'
      '${MessageTranslationConstants.shareAppMsg.tr}\n'
      '\n${AppProperties.getLinksUrl()}\n';

  List<XFile> sharedFiles = [];
  if(thumbnailLocalPath.isNotEmpty) {

  }


  if(thumbnailLocalPath.isNotEmpty) {
    sharedFiles.add(XFile(thumbnailLocalPath));
    sharedText = '$caption${caption.isNotEmpty ? "\n\n" : ""}'
            '${MessageTranslationConstants.shareMediaItem.tr}\n'
            '\n${AppProperties.getLinksUrl()}\n';
  } else {
    sharedText = '$caption${caption.isNotEmpty ? "\n\n" : ""}'
        '${MessageTranslationConstants.shareMediaItemMsg.tr}\n'
        '\n${AppProperties.getLinksUrl()}\n';
  }

  shareResult = await SharePlus.instance.share(
      ShareParams(text: sharedText, files: sharedFiles)
  );

  if(shareResult.status == ShareResultStatus.success && shareResult.raw != "null") {
    Get.snackbar(MessageTranslationConstants.sharedMediaItem.tr,
        MessageTranslationConstants.sharedMediaItemMsg.tr,
        snackPosition: SnackPosition.bottom);
  }

}