From 0c38f6a20574ef031ff60b18270d38c202d054bf Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Mon, 21 Nov 2022 18:16:46 +0100 Subject: [PATCH] fix: Remove deprecated meomry caching of downloaded files --- lib/pages/chat/events/audio_player.dart | 4 +- .../event_extension.dart | 38 +------------------ 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 98c0bcb4..9243e0f4 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -60,9 +60,7 @@ class AudioPlayerState extends State { if (status != AudioPlayerStatus.notDownloaded) return; setState(() => status = AudioPlayerStatus.downloading); try { - final matrixFile = - await widget.event.downloadAndDecryptAttachmentCached(); - if (matrixFile == null) throw ('Download failed'); + final matrixFile = await widget.event.downloadAndDecryptAttachment(); final tempDir = await getTemporaryDirectory(); final fileName = Uri.encodeComponent( widget.event.attachmentOrThumbnailMxcUrl()!.pathSegments.last); diff --git a/lib/utils/matrix_sdk_extensions.dart/event_extension.dart b/lib/utils/matrix_sdk_extensions.dart/event_extension.dart index c9d98070..358a8a95 100644 --- a/lib/utils/matrix_sdk_extensions.dart/event_extension.dart +++ b/lib/utils/matrix_sdk_extensions.dart/event_extension.dart @@ -1,7 +1,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; @@ -12,7 +11,7 @@ extension LocalizedBody on Event { Future> _getFile(BuildContext context) => showFutureLoadingDialog( context: context, - future: () => downloadAndDecryptAttachmentCached(), + future: downloadAndDecryptAttachment, ); void saveFile(BuildContext context) async { @@ -47,39 +46,4 @@ extension LocalizedBody on Event { .tryGetMap('info') ?.tryGet('size') ?.sizeString; - - static final _downloadAndDecryptFutures = >{}; - - Future isAttachmentCached({bool getThumbnail = false}) async { - final mxcUrl = attachmentOrThumbnailMxcUrl(getThumbnail: getThumbnail); - if (mxcUrl == null) return false; - // check if we have it in-memory - if (_downloadAndDecryptFutures.containsKey(mxcUrl)) { - return true; - } - // check if it is stored - if (await isAttachmentInLocalStore(getThumbnail: getThumbnail)) { - return true; - } - // check if the url is cached - final url = mxcUrl.getDownloadLink(room.client); - final file = await DefaultCacheManager().getFileFromCache(url.toString()); - return file != null; - } - - Future downloadAndDecryptAttachmentCached( - {bool getThumbnail = false}) async { - final mxcUrl = - attachmentOrThumbnailMxcUrl(getThumbnail: getThumbnail)?.toString() ?? - eventId; - _downloadAndDecryptFutures[mxcUrl] ??= downloadAndDecryptAttachment( - getThumbnail: getThumbnail, - downloadCallback: (Uri url) async { - final file = await DefaultCacheManager().getSingleFile(url.toString()); - return await file.readAsBytes(); - }, - ); - final res = await _downloadAndDecryptFutures[mxcUrl]; - return res; - } }