From 32fa60478d3c0a406f3227e07fde6c60f32bc6ac Mon Sep 17 00:00:00 2001 From: Santo Shakil Date: Fri, 21 Aug 2026 23:32:34 +0600 Subject: [PATCH] undo the accidental reformat, keep the version pin --- .../repositories/asset_media.repository.dart | 102 ++++-------------- 1 file changed, 22 insertions(+), 80 deletions(-) diff --git a/mobile/lib/repositories/asset_media.repository.dart b/mobile/lib/repositories/asset_media.repository.dart index 32fb7a191e..803bd10d3e 100644 --- a/mobile/lib/repositories/asset_media.repository.dart +++ b/mobile/lib/repositories/asset_media.repository.dart @@ -24,17 +24,10 @@ import 'package:share_plus/share_plus.dart'; /// A file staged for the share sheet. [tempEntity] is the temp file or /// directory to delete afterwards, null when [file] is a gallery original. -typedef _ShareFile = ({ - File file, - FileSystemEntity? tempEntity, - String displayName, -}); +typedef _ShareFile = ({File file, FileSystemEntity? tempEntity, String displayName}); final assetMediaRepositoryProvider = Provider( - (ref) => AssetMediaRepository( - ref.watch(nativeSyncApiProvider), - ref.watch(storageRepositoryProvider), - ), + (ref) => AssetMediaRepository(ref.watch(nativeSyncApiProvider), ref.watch(storageRepositoryProvider)), ); class AssetMediaRepository { @@ -58,9 +51,7 @@ class AssetMediaRepository { if (CurrentPlatform.isAndroid) { if (await _androidSupportsTrash()) { return PhotoManager.editor.android.moveToTrash( - ids - .map((e) => AssetEntity(id: e, width: 1, height: 1, typeInt: 0)) - .toList(), + ids.map((e) => AssetEntity(id: e, width: 1, height: 1, typeInt: 0)).toList(), ); } else { return PhotoManager.editor.deleteWithIds(ids); @@ -78,14 +69,10 @@ class AssetMediaRepository { } } - Future> restoreAssetsFromTrash( - Iterable assets, - ) async { + Future> restoreAssetsFromTrash(Iterable assets) async { final restoredIds = []; for (final asset in assets) { - _log.info( - "Restoring from trash, localId: ${asset.id}, checksum: ${asset.checksum}", - ); + _log.info("Restoring from trash, localId: ${asset.id}, checksum: ${asset.checksum}"); final result = await _restoreFromTrashById(asset.id, asset.type.index); if (result) { restoredIds.add(asset.id); @@ -139,13 +126,10 @@ class AssetMediaRepository { static String _getOriginalShareFilename(BaseAsset asset) { final hasUsableName = asset.name.replaceAll(_pathSeparators, '').isNotEmpty; - return hasUsableName - ? _sanitizeFilename(asset.name) - : _shareFallbackName(asset); + return hasUsableName ? _sanitizeFilename(asset.name) : _shareFallbackName(asset); } - static String _shareFallbackName(BaseAsset asset) => - asset.remoteId ?? asset.localId ?? 'asset'; + static String _shareFallbackName(BaseAsset asset) => asset.remoteId ?? asset.localId ?? 'asset'; static String _getPreviewFilename(BaseAsset asset) { final sanitizedFilename = _sanitizeFilename(asset.name); @@ -162,25 +146,16 @@ class AssetMediaRepository { static String _ordinalShareFilename(String filename, int occurrence) => '${p.basenameWithoutExtension(filename)} ($occurrence)${p.extension(filename)}'; - bool _isCancelled(Completer? cancelCompleter) => - cancelCompleter?.isCompleted ?? false; + bool _isCancelled(Completer? cancelCompleter) => cancelCompleter?.isCompleted ?? false; - Future<_ShareFile?> _getLocalOriginalShareFile( - BaseAsset asset, - String localId, - String displayName, - ) async { + Future<_ShareFile?> _getLocalOriginalShareFile(BaseAsset asset, String localId, String displayName) async { final file = await _storageRepository.getFileForAsset(localId); if (file == null) { _log.warning("Local original file not found for sharing: $asset"); return null; } - return ( - file: file, - tempEntity: CurrentPlatform.isIOS ? file : null, - displayName: displayName, - ); + return (file: file, tempEntity: CurrentPlatform.isIOS ? file : null, displayName: displayName); } Future<_ShareFile?> _downloadRemoteShareFile({ @@ -223,10 +198,7 @@ class AssetMediaRepository { } await _cleanupTempFiles([file.parent]); - _log.severe( - "Download for $displayName failed with status ${statusUpdate.status}", - statusUpdate.exception, - ); + _log.severe("Download for $displayName failed with status ${statusUpdate.status}", statusUpdate.exception); return null; } @@ -238,8 +210,7 @@ class AssetMediaRepository { required void Function(double progress) onProgress, }) { return _downloadRemoteShareFile( - taskId: - 'share-original-$remoteId-${DateTime.now().microsecondsSinceEpoch}', + taskId: 'share-original-$remoteId-${DateTime.now().microsecondsSinceEpoch}', url: getOriginalUrlForRemoteId(remoteId, edited: asset.isEdited), displayName: displayName, cancelCompleter: cancelCompleter, @@ -255,13 +226,8 @@ class AssetMediaRepository { required void Function(double progress) onProgress, }) { return _downloadRemoteShareFile( - taskId: - 'share-preview-$remoteId-${DateTime.now().microsecondsSinceEpoch}', - url: getThumbnailUrlForRemoteId( - remoteId, - type: AssetMediaSize.preview, - edited: asset.isEdited, - ), + taskId: 'share-preview-$remoteId-${DateTime.now().microsecondsSinceEpoch}', + url: getThumbnailUrlForRemoteId(remoteId, type: AssetMediaSize.preview, edited: asset.isEdited), displayName: displayName, cancelCompleter: cancelCompleter, onProgress: onProgress, @@ -316,11 +282,7 @@ class AssetMediaRepository { final localId = asset.localId; if (localId != null) { - return _getLocalOriginalShareFile( - asset, - localId, - _shareDisplayName(asset, ShareAssetType.original), - ); + return _getLocalOriginalShareFile(asset, localId, _shareDisplayName(asset, ShareAssetType.original)); } _log.warning("Asset has no local or remote ID for preview sharing: $asset"); @@ -347,21 +309,12 @@ class AssetMediaRepository { var occurrence = 0; var displayName = shareFile.displayName; while (usedNames.contains(displayName)) { - displayName = _ordinalShareFilename( - shareFile.displayName, - ++occurrence, - ); + displayName = _ordinalShareFilename(shareFile.displayName, ++occurrence); } usedNames.add(displayName); - final file = await shareFile.file.rename( - p.join(shareFile.file.parent.path, displayName), - ); - files[index] = ( - file: file, - tempEntity: shareFile.tempEntity, - displayName: displayName, - ); + final file = await shareFile.file.rename(p.join(shareFile.file.parent.path, displayName)); + files[index] = (file: file, tempEntity: shareFile.tempEntity, displayName: displayName); } } @@ -384,11 +337,7 @@ class AssetMediaRepository { } final normalizedAssetProgress = currentAssetProgress.clamp(0.0, 1.0); - final overallProgress = - ((processedAssets + normalizedAssetProgress) / totalAssets).clamp( - 0.0, - 1.0, - ); + final overallProgress = ((processedAssets + normalizedAssetProgress) / totalAssets).clamp(0.0, 1.0); onAssetDownloadProgress?.call(overallProgress); } @@ -400,9 +349,7 @@ class AssetMediaRepository { return 0; } - final effectiveFileType = asset.isVideo - ? ShareAssetType.original - : fileType; + final effectiveFileType = asset.isVideo ? ShareAssetType.original : fileType; final displayName = _shareDisplayName(asset, fileType); final shareFile = switch (effectiveFileType) { @@ -461,9 +408,7 @@ class AssetMediaRepository { await _cleanupTempFiles(tempFiles); return 0; } - final downloadedXFiles = shareFiles - .map((shareFile) => XFile(shareFile.file.path)) - .toList(); + final downloadedXFiles = shareFiles.map((shareFile) => XFile(shareFile.file.path)).toList(); // we dont want to await the share result since the // "preparing" dialog will not disappear until @@ -471,10 +416,7 @@ class AssetMediaRepository { unawaited( Share.shareXFiles( downloadedXFiles, - sharePositionOrigin: Rect.fromPoints( - Offset.zero, - Offset(size.width / 3, size.height), - ), + sharePositionOrigin: Rect.fromPoints(Offset.zero, Offset(size.width / 3, size.height)), ).whenComplete(() async { await _cleanupTempFiles(tempFiles); }),