downloadMediaToLocalCache function

Future<String?> downloadMediaToLocalCache(
  1. String mediaUrl,
  2. String mediaName
)

Download locally the file and return the file path if succes, or null if error.

Implementation

Future<String?> downloadMediaToLocalCache(String mediaUrl, String mediaName) async {
  final tempDir = getTempDir;
  if (tempDir != null) {
    String savePath = "${tempDir.path}/$mediaName";
    try {
      var dio = Dio();
      if (getShowLogs) {
        developer.log('📦 downloading media: $mediaUrl', name: 'Cached Media package');
      }
      final response = await dio.download(mediaUrl, savePath);
      if (response.statusCode == 200) {
        return savePath;
      }
      return null;
    } on DioError {
      if (getShowLogs) {
        developer.log('❌ Dio Error - media : $mediaUrl', name: 'Cached Media package');
      }
      return null;
    } catch (e) {
      if (getShowLogs) {
        developer.log('❌ Error - media : $mediaUrl', name: 'Cached Media package');
      }
    }
  } else {
    if (getShowLogs) {
      developer.log('❌  Temp directory not found!', name: 'Cached Media package');
    }
  }
  return null;
}