mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
* wip: timeline * more segment extensions * added scrubber * refactor: timeline state * more refactors * fix scrubber segments * added remote thumb & thumbhash provider * feat: merged view * scrub / merged asset fixes * rename stuff & add tile indicators * fix local album timeline query * ignore hidden assets during sync * ignore recovered assets during sync * old scrubber * add video indicator * handle groupBy * handle partner inTimeline * show duration * reduce widget nesting in thumb tile * merge main * chore: extend cacheExtent * ignore touch events on scrub label when not visible * scrub label ignore events and hide immediately * auto reload on sync * refactor image providers * throttle db updates --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
29 lines
921 B
Dart
29 lines
921 B
Dart
import 'dart:typed_data';
|
|
import 'dart:ui';
|
|
|
|
import 'package:immich_mobile/domain/interfaces/asset_media.interface.dart';
|
|
import 'package:photo_manager/photo_manager.dart';
|
|
|
|
class AssetMediaRepository implements IAssetMediaRepository {
|
|
const AssetMediaRepository();
|
|
|
|
@override
|
|
Future<Uint8List?> getThumbnail(
|
|
String id, {
|
|
int quality = 80,
|
|
Size size = const Size.square(256),
|
|
}) =>
|
|
AssetEntity(
|
|
id: id,
|
|
// The below fields are not used in thumbnailDataWithSize but are required
|
|
// to create an AssetEntity instance. It is faster to create a dummy AssetEntity
|
|
// instance than to fetch the asset from the device first.
|
|
typeInt: AssetType.image.index,
|
|
width: size.width.toInt(),
|
|
height: size.height.toInt(),
|
|
).thumbnailDataWithSize(
|
|
ThumbnailSize(size.width.toInt(), size.height.toInt()),
|
|
quality: quality,
|
|
);
|
|
}
|