mirror of
https://github.com/immich-app/immich.git
synced 2026-05-23 08:02:29 -04:00
36 lines
1.1 KiB
Dart
36 lines
1.1 KiB
Dart
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
|
import 'package:immich_mobile/platform/view_intent_api.g.dart';
|
|
import 'package:path/path.dart';
|
|
|
|
extension ViewIntentPayloadX on ViewIntentPayload {
|
|
String get fileName {
|
|
final resolvedPath = path;
|
|
if (resolvedPath != null && resolvedPath.isNotEmpty) {
|
|
return basename(resolvedPath);
|
|
}
|
|
return localAssetId ?? 'view_intent_asset';
|
|
}
|
|
|
|
bool get isImage => mimeType.toLowerCase().startsWith('image/');
|
|
|
|
bool get isVideo => mimeType.toLowerCase().startsWith('video/');
|
|
|
|
AssetPlaybackStyle get playbackStyle {
|
|
if (isVideo) {
|
|
return AssetPlaybackStyle.video;
|
|
}
|
|
|
|
final normalizedMimeType = mimeType.toLowerCase();
|
|
if (normalizedMimeType == 'image/gif' || normalizedMimeType == 'image/webp') {
|
|
return AssetPlaybackStyle.imageAnimated;
|
|
}
|
|
|
|
final normalizedPath = path?.toLowerCase();
|
|
if (normalizedPath != null && (normalizedPath.endsWith('.gif') || normalizedPath.endsWith('.webp'))) {
|
|
return AssetPlaybackStyle.imageAnimated;
|
|
}
|
|
|
|
return AssetPlaybackStyle.image;
|
|
}
|
|
}
|