From e154240335519b4591b0cd038e11babf62f02b41 Mon Sep 17 00:00:00 2001 From: mertalev <101130780+mertalev@users.noreply.github.com> Date: Wed, 30 Jul 2025 20:21:24 -0400 Subject: [PATCH] top 10 worst rebases of all time, 0/10 --- .../repositories/asset_media.repository.dart | 11 +--- .../presentation/pages/drift_place.page.dart | 4 +- .../widgets/album/album_selector.widget.dart | 6 +- .../asset_viewer/asset_viewer.page.dart | 16 +---- .../asset_viewer/asset_viewer.state.dart | 5 +- .../widgets/images/image_provider.dart | 5 +- .../widgets/images/local_image_provider.dart | 16 +---- .../widgets/images/thumbnail.widget.dart | 60 ++++++------------- .../widgets/images/thumbnail_tile.widget.dart | 20 +++---- .../widgets/memory/memory_card.widget.dart | 5 +- .../widgets/memory/memory_lane.widget.dart | 11 +--- .../widgets/timeline/fixed/segment.model.dart | 26 ++++---- mobile/lib/widgets/common/immich_app_bar.dart | 5 +- mobile/lib/widgets/memories/memory_card.dart | 6 +- 14 files changed, 62 insertions(+), 134 deletions(-) diff --git a/mobile/lib/infrastructure/repositories/asset_media.repository.dart b/mobile/lib/infrastructure/repositories/asset_media.repository.dart index 7c3c3fddb6..13b2b818c6 100644 --- a/mobile/lib/infrastructure/repositories/asset_media.repository.dart +++ b/mobile/lib/infrastructure/repositories/asset_media.repository.dart @@ -36,11 +36,7 @@ class AssetMediaRepository { } } - Future getThumbnail( - String id, { - int quality = 80, - ui.Size size = const ui.Size.square(256), - }) => + Future getThumbnail(String id, {int quality = 80, ui.Size size = const ui.Size.square(256)}) => AssetEntity( id: id, // The below fields are not used in thumbnailDataWithSize but are required @@ -49,8 +45,5 @@ class AssetMediaRepository { typeInt: AssetType.image.index, width: size.width.toInt(), height: size.height.toInt(), - ).thumbnailDataWithSize( - ThumbnailSize(size.width.toInt(), size.height.toInt()), - quality: quality, - ); + ).thumbnailDataWithSize(ThumbnailSize(size.width.toInt(), size.height.toInt()), quality: quality); } diff --git a/mobile/lib/presentation/pages/drift_place.page.dart b/mobile/lib/presentation/pages/drift_place.page.dart index bda0c43c0d..4cf672f71c 100644 --- a/mobile/lib/presentation/pages/drift_place.page.dart +++ b/mobile/lib/presentation/pages/drift_place.page.dart @@ -164,9 +164,7 @@ class _PlaceTile extends StatelessWidget { onTap: () => context.pushRoute(DriftPlaceDetailRoute(place: place.$1)), title: Text(place.$1, style: context.textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w500)), leading: ClipRRect( - borderRadius: const BorderRadius.all( - Radius.circular(20), - ), + borderRadius: const BorderRadius.all(Radius.circular(20)), child: Thumbnail( imageProvider: RemoteThumbProvider(assetId: place.$2), size: const Size(80, 80), diff --git a/mobile/lib/presentation/widgets/album/album_selector.widget.dart b/mobile/lib/presentation/widgets/album/album_selector.widget.dart index 759b637b92..9fdfcda845 100644 --- a/mobile/lib/presentation/widgets/album/album_selector.widget.dart +++ b/mobile/lib/presentation/widgets/album/album_selector.widget.dart @@ -436,7 +436,11 @@ class _AlbumList extends ConsumerWidget { leading: album.thumbnailAssetId != null ? ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(15)), - child: SizedBox(width: 80, height: 80, child: Thumbnail(imageProvider: RemoteThumbProvider(assetId: album.thumbnailAssetId!))), + child: SizedBox( + width: 80, + height: 80, + child: Thumbnail(imageProvider: RemoteThumbProvider(assetId: album.thumbnailAssetId!)), + ), ) : SizedBox( width: 80, diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart index e4de4ae2ca..bf92dcfa40 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart @@ -147,11 +147,7 @@ class _AssetViewerState extends ConsumerState { // Precache both thumbnail and full image for smooth transitions unawaited( Future.wait([ - precacheImage( - getThumbnailImageProvider(asset: asset), - context, - onError: (_, __) {}, - ), + precacheImage(getThumbnailImageProvider(asset: asset), context, onError: (_, __) {}), precacheImage(getFullImageProvider(asset, size: screenSize), context, onError: (_, __) {}), ]), ); @@ -481,10 +477,7 @@ class _AssetViewerState extends ConsumerState { width: double.infinity, height: double.infinity, color: backgroundColor, - child: Thumbnail.fromBaseAsset( - asset: asset, - fit: BoxFit.contain, - ), + child: Thumbnail.fromBaseAsset(asset: asset, fit: BoxFit.contain), ); } @@ -534,10 +527,7 @@ class _AssetViewerState extends ConsumerState { width: ctx.width, height: ctx.height, color: backgroundColor, - child: Thumbnail.fromBaseAsset( - asset: asset, - fit: BoxFit.contain, - ), + child: Thumbnail.fromBaseAsset(asset: asset, fit: BoxFit.contain), ), ); } diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart index e6e7464962..b2e7313bdf 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart @@ -93,10 +93,7 @@ class AssetViewerStateNotifier extends AutoDisposeNotifier { if (showing == state.showingBottomSheet) { return; } - state = state.copyWith( - showingBottomSheet: showing, - showingControls: showing || state.showingControls, - ); + state = state.copyWith(showingBottomSheet: showing, showingControls: showing || state.showingControls); if (showing) { ref.read(videoPlayerControlsProvider.notifier).pause(); } diff --git a/mobile/lib/presentation/widgets/images/image_provider.dart b/mobile/lib/presentation/widgets/images/image_provider.dart index a1bfac4657..f42f5db4c1 100644 --- a/mobile/lib/presentation/widgets/images/image_provider.dart +++ b/mobile/lib/presentation/widgets/images/image_provider.dart @@ -32,10 +32,7 @@ ImageProvider getThumbnailImageProvider({ String? remoteId, Size size = const Size.square(kTimelineThumbnailSize), }) { - assert( - asset != null || remoteId != null, - 'Either asset or remoteId must be provided', - ); + assert(asset != null || remoteId != null, 'Either asset or remoteId must be provided'); if (remoteId != null) { return RemoteThumbProvider(assetId: remoteId); diff --git a/mobile/lib/presentation/widgets/images/local_image_provider.dart b/mobile/lib/presentation/widgets/images/local_image_provider.dart index da470d64b2..43c33b50b7 100644 --- a/mobile/lib/presentation/widgets/images/local_image_provider.dart +++ b/mobile/lib/presentation/widgets/images/local_image_provider.dart @@ -12,11 +12,7 @@ class LocalThumbProvider extends ImageProvider { final Size size; final DateTime? updatedAt; - const LocalThumbProvider({ - required this.id, - required this.size, - this.updatedAt, - }); + const LocalThumbProvider({required this.id, required this.size, this.updatedAt}); @override Future obtainKey(ImageConfiguration configuration) { @@ -24,10 +20,7 @@ class LocalThumbProvider extends ImageProvider { } @override - ImageStreamCompleter loadImage( - LocalThumbProvider key, - ImageDecoderCallback decode, - ) { + ImageStreamCompleter loadImage(LocalThumbProvider key, ImageDecoderCallback decode) { return OneFrameImageStreamCompleter( _codec(key), informationCollector: () => [ @@ -71,10 +64,7 @@ class LocalFullImageProvider extends ImageProvider { } @override - ImageStreamCompleter loadImage( - LocalFullImageProvider key, - ImageDecoderCallback decode, - ) { + ImageStreamCompleter loadImage(LocalFullImageProvider key, ImageDecoderCallback decode) { return OneFrameImageStreamCompleter(_codec(key)); } diff --git a/mobile/lib/presentation/widgets/images/thumbnail.widget.dart b/mobile/lib/presentation/widgets/images/thumbnail.widget.dart index 1702d926f2..d370bc4a87 100644 --- a/mobile/lib/presentation/widgets/images/thumbnail.widget.dart +++ b/mobile/lib/presentation/widgets/images/thumbnail.widget.dart @@ -41,8 +41,8 @@ class Thumbnail extends StatefulWidget { this.size = const ui.Size.square(kTimelineThumbnailSize), this.thumbhashMode = ThumbhashMode.enabled, super.key, - }) : blurhash = asset.thumbhash, - imageProvider = _getImageProviderFromAsset(asset, size); + }) : blurhash = asset.thumbhash, + imageProvider = _getImageProviderFromAsset(asset, size); Thumbnail.fromBaseAsset({ required BaseAsset? asset, @@ -50,11 +50,11 @@ class Thumbnail extends StatefulWidget { this.size = const ui.Size.square(kTimelineThumbnailSize), this.thumbhashMode = ThumbhashMode.enabled, super.key, - }) : blurhash = switch (asset) { - RemoteAsset() => asset.thumbHash, - _ => null, - }, - imageProvider = _getImageProviderFromBaseAsset(asset, size); + }) : blurhash = switch (asset) { + RemoteAsset() => asset.thumbHash, + _ => null, + }, + imageProvider = _getImageProviderFromBaseAsset(asset, size); static ImageProvider? _getImageProviderFromAsset(Asset asset, ui.Size size) { if (asset.localId != null) { @@ -65,10 +65,7 @@ class Thumbnail extends StatefulWidget { return null; } - static ImageProvider? _getImageProviderFromBaseAsset( - BaseAsset? asset, - ui.Size size, - ) { + static ImageProvider? _getImageProviderFromBaseAsset(BaseAsset? asset, ui.Size size) { switch (asset) { case RemoteAsset(): if (asset.localId != null) { @@ -217,19 +214,12 @@ class _ThumbnailState extends State { Widget build(BuildContext context) { final colorScheme = context.colorScheme; final gradient = _gradientCache[colorScheme] ??= LinearGradient( - colors: [ - colorScheme.surfaceContainer, - colorScheme.surfaceContainer.darken(amount: .1), - ], + colors: [colorScheme.surfaceContainer, colorScheme.surfaceContainer.darken(amount: .1)], begin: Alignment.topCenter, end: Alignment.bottomCenter, ); - return _ThumbnailLeaf( - image: _providerImage, - fit: widget.fit, - placeholderGradient: gradient, - ); + return _ThumbnailLeaf(image: _providerImage, fit: widget.fit, placeholderGradient: gradient); } @override @@ -245,26 +235,15 @@ class _ThumbnailLeaf extends LeafRenderObjectWidget { final BoxFit fit; final Gradient placeholderGradient; - const _ThumbnailLeaf({ - required this.image, - required this.fit, - required this.placeholderGradient, - }); + const _ThumbnailLeaf({required this.image, required this.fit, required this.placeholderGradient}); @override RenderObject createRenderObject(BuildContext context) { - return _ThumbnailRenderBox( - image: image, - fit: fit, - placeholderGradient: placeholderGradient, - ); + return _ThumbnailRenderBox(image: image, fit: fit, placeholderGradient: placeholderGradient); } @override - void updateRenderObject( - BuildContext context, - _ThumbnailRenderBox renderObject, - ) { + void updateRenderObject(BuildContext context, _ThumbnailRenderBox renderObject) { renderObject.fit = fit; renderObject.image = image; renderObject.placeholderGradient = placeholderGradient; @@ -285,14 +264,11 @@ class _ThumbnailRenderBox extends RenderBox { @override bool isRepaintBoundary = true; - _ThumbnailRenderBox({ - required ui.Image? image, - required BoxFit fit, - required Gradient placeholderGradient, - }) : _image = image, - _fit = fit, - _placeholderGradient = placeholderGradient, - _lastImageRequest = DateTime.now(); + _ThumbnailRenderBox({required ui.Image? image, required BoxFit fit, required Gradient placeholderGradient}) + : _image = image, + _fit = fit, + _placeholderGradient = placeholderGradient, + _lastImageRequest = DateTime.now(); @override void paint(PaintingContext context, Offset offset) { diff --git a/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart b/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart index 186b902bbc..cc5c38d8c3 100644 --- a/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart +++ b/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart @@ -74,10 +74,10 @@ class ThumbnailTile extends ConsumerWidget { child: Thumbnail.fromBaseAsset( asset: asset, thumbhashMode: isScrubbing - ? ThumbhashMode.only + ? ThumbhashMode.only : asset != null && asset.hasLocal - ? ThumbhashMode.disabled - : ThumbhashMode.enabled, + ? ThumbhashMode.disabled + : ThumbhashMode.enabled, ), ), ), @@ -86,23 +86,17 @@ class ThumbnailTile extends ConsumerWidget { ? const Align( alignment: Alignment.topRight, child: Padding( - padding: EdgeInsets.only( - right: 10.0, - top: 24.0, - ), + padding: EdgeInsets.only(right: 10.0, top: 24.0), child: _TileOverlayIcon(Icons.burst_mode_rounded), ), ) : const Align( alignment: Alignment.topRight, child: Padding( - padding: EdgeInsets.only( - right: 10.0, - top: 6.0, - ), + padding: EdgeInsets.only(right: 10.0, top: 6.0), child: _TileOverlayIcon(Icons.burst_mode_rounded), - ), - ), + ), + ), if (asset != null && asset.isVideo) Align( alignment: Alignment.topRight, diff --git a/mobile/lib/presentation/widgets/memory/memory_card.widget.dart b/mobile/lib/presentation/widgets/memory/memory_card.widget.dart index ec3c370222..af111916ca 100644 --- a/mobile/lib/presentation/widgets/memory/memory_card.widget.dart +++ b/mobile/lib/presentation/widgets/memory/memory_card.widget.dart @@ -102,10 +102,7 @@ class _BlurredBackdrop extends HookWidget { child: DecoratedBox( decoration: BoxDecoration( image: DecorationImage( - image: getFullImageProvider( - asset, - size: Size(context.width, context.height), - ), + image: getFullImageProvider(asset, size: Size(context.width, context.height)), fit: BoxFit.cover, ), ), diff --git a/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart b/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart index 7704adfa2c..0bde15b7cb 100644 --- a/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart +++ b/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart @@ -57,15 +57,8 @@ class DriftMemoryCard extends ConsumerWidget { child: Stack( children: [ ColorFiltered( - colorFilter: ColorFilter.mode( - Colors.black.withValues(alpha: 0.2), - BlendMode.darken, - ), - child: SizedBox( - width: 205, - height: 200, - child: Thumbnail.fromBaseAsset(asset: memory.assets[0]), - ), + colorFilter: ColorFilter.mode(Colors.black.withValues(alpha: 0.2), BlendMode.darken), + child: SizedBox(width: 205, height: 200, child: Thumbnail.fromBaseAsset(asset: memory.assets[0])), ), Positioned( bottom: 16, diff --git a/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart b/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart index e8b85e8fc9..39ca617963 100644 --- a/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart +++ b/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart @@ -80,19 +80,19 @@ class FixedSegment extends Segment { } const FixedSegment.empty() - : this( - firstIndex: 0, - lastIndex: 0, - startOffset: 0, - endOffset: 0, - firstAssetIndex: 0, - bucket: const Bucket(assetCount: 0), - tileHeight: 1, - columnCount: 0, - headerExtent: 0, - spacing: 0, - header: HeaderType.none, - ); + : this( + firstIndex: 0, + lastIndex: 0, + startOffset: 0, + endOffset: 0, + firstAssetIndex: 0, + bucket: const Bucket(assetCount: 0), + tileHeight: 1, + columnCount: 0, + headerExtent: 0, + spacing: 0, + header: HeaderType.none, + ); } class _FixedSegmentRow extends ConsumerWidget { diff --git a/mobile/lib/widgets/common/immich_app_bar.dart b/mobile/lib/widgets/common/immich_app_bar.dart index 8ce902b161..87901871a2 100644 --- a/mobile/lib/widgets/common/immich_app_bar.dart +++ b/mobile/lib/widgets/common/immich_app_bar.dart @@ -41,7 +41,10 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget { borderRadius: const BorderRadius.all(Radius.circular(12)), child: Badge( label: const DecoratedBox( - decoration: BoxDecoration(color: Colors.black, borderRadius: BorderRadius.all(Radius.circular(widgetSize / 2))), + decoration: BoxDecoration( + color: Colors.black, + borderRadius: BorderRadius.all(Radius.circular(widgetSize / 2)), + ), child: Icon(Icons.info, color: Color.fromARGB(255, 243, 188, 106), size: widgetSize / 2), ), backgroundColor: Colors.transparent, diff --git a/mobile/lib/widgets/memories/memory_card.dart b/mobile/lib/widgets/memories/memory_card.dart index 2d88f98845..a658deeed6 100644 --- a/mobile/lib/widgets/memories/memory_card.dart +++ b/mobile/lib/widgets/memories/memory_card.dart @@ -101,11 +101,7 @@ class _BlurredBackdrop extends HookWidget { child: DecoratedBox( decoration: BoxDecoration( image: DecorationImage( - image: ImmichImage.imageProvider( - asset: asset, - height: context.height, - width: context.width, - ), + image: ImmichImage.imageProvider(asset: asset, height: context.height, width: context.width), fit: BoxFit.cover, ), ),