mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	feat(mobile): show local assets (#905)
* introduce Asset as composition of AssetResponseDTO and AssetEntity * filter out duplicate assets (that are both local and remote, take only remote for now) * only allow remote images to be added to albums * introduce ImmichImage to render Asset using local or remote data * optimized deletion of local assets * local video file playback * allow multiple methods to wait on background service finished * skip local assets when adding to album from home screen * fix and optimize delete * show gray box placeholder for local assets * add comments * fix bug: duplicate assets in state after onNewAssetUploaded
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							99da181cfc
						
					
				
				
					commit
					1633af7af6
				
			| @@ -65,8 +65,7 @@ class _$AppRouter extends RootStackRouter { | ||||
|       final args = routeData.argsAs<VideoViewerRouteArgs>(); | ||||
|       return MaterialPageX<dynamic>( | ||||
|           routeData: routeData, | ||||
|           child: VideoViewerPage( | ||||
|               key: args.key, videoUrl: args.videoUrl, asset: args.asset)); | ||||
|           child: VideoViewerPage(key: args.key, asset: args.asset)); | ||||
|     }, | ||||
|     BackupControllerRoute.name: (routeData) { | ||||
|       return MaterialPageX<dynamic>( | ||||
| @@ -258,9 +257,7 @@ class TabControllerRoute extends PageRouteInfo<void> { | ||||
| /// [GalleryViewerPage] | ||||
| class GalleryViewerRoute extends PageRouteInfo<GalleryViewerRouteArgs> { | ||||
|   GalleryViewerRoute( | ||||
|       {Key? key, | ||||
|       required List<AssetResponseDto> assetList, | ||||
|       required AssetResponseDto asset}) | ||||
|       {Key? key, required List<Asset> assetList, required Asset asset}) | ||||
|       : super(GalleryViewerRoute.name, | ||||
|             path: '/gallery-viewer-page', | ||||
|             args: GalleryViewerRouteArgs( | ||||
| @@ -275,9 +272,9 @@ class GalleryViewerRouteArgs { | ||||
|  | ||||
|   final Key? key; | ||||
|  | ||||
|   final List<AssetResponseDto> assetList; | ||||
|   final List<Asset> assetList; | ||||
|  | ||||
|   final AssetResponseDto asset; | ||||
|   final Asset asset; | ||||
|  | ||||
|   @override | ||||
|   String toString() { | ||||
| @@ -291,7 +288,7 @@ class ImageViewerRoute extends PageRouteInfo<ImageViewerRouteArgs> { | ||||
|   ImageViewerRoute( | ||||
|       {Key? key, | ||||
|       required String heroTag, | ||||
|       required AssetResponseDto asset, | ||||
|       required Asset asset, | ||||
|       required String authToken, | ||||
|       required void Function() isZoomedFunction, | ||||
|       required ValueNotifier<bool> isZoomedListener, | ||||
| @@ -324,7 +321,7 @@ class ImageViewerRouteArgs { | ||||
|  | ||||
|   final String heroTag; | ||||
|  | ||||
|   final AssetResponseDto asset; | ||||
|   final Asset asset; | ||||
|  | ||||
|   final String authToken; | ||||
|  | ||||
| @@ -343,29 +340,24 @@ class ImageViewerRouteArgs { | ||||
| /// generated route for | ||||
| /// [VideoViewerPage] | ||||
| class VideoViewerRoute extends PageRouteInfo<VideoViewerRouteArgs> { | ||||
|   VideoViewerRoute( | ||||
|       {Key? key, required String videoUrl, required AssetResponseDto asset}) | ||||
|   VideoViewerRoute({Key? key, required Asset asset}) | ||||
|       : super(VideoViewerRoute.name, | ||||
|             path: '/video-viewer-page', | ||||
|             args: VideoViewerRouteArgs( | ||||
|                 key: key, videoUrl: videoUrl, asset: asset)); | ||||
|             args: VideoViewerRouteArgs(key: key, asset: asset)); | ||||
|  | ||||
|   static const String name = 'VideoViewerRoute'; | ||||
| } | ||||
|  | ||||
| class VideoViewerRouteArgs { | ||||
|   const VideoViewerRouteArgs( | ||||
|       {this.key, required this.videoUrl, required this.asset}); | ||||
|   const VideoViewerRouteArgs({this.key, required this.asset}); | ||||
|  | ||||
|   final Key? key; | ||||
|  | ||||
|   final String videoUrl; | ||||
|  | ||||
|   final AssetResponseDto asset; | ||||
|   final Asset asset; | ||||
|  | ||||
|   @override | ||||
|   String toString() { | ||||
|     return 'VideoViewerRouteArgs{key: $key, videoUrl: $videoUrl, asset: $asset}'; | ||||
|     return 'VideoViewerRouteArgs{key: $key, asset: $asset}'; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user