mirror of
https://github.com/immich-app/immich
synced 2025-10-17 18:19:27 +00:00
fix: prefer remote images in new timeline (#22452)
fix: prefer remote images in new thumbnail Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
parent
cdbe1d7f10
commit
bea116e1b9
2 changed files with 5 additions and 27 deletions
|
|
@ -123,28 +123,14 @@ ImageProvider getFullImageProvider(BaseAsset asset, {Size size = const Size(1080
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageProvider getThumbnailImageProvider({BaseAsset? asset, String? remoteId, Size size = kThumbnailResolution}) {
|
ImageProvider? getThumbnailImageProvider(BaseAsset asset, {Size size = kThumbnailResolution}) {
|
||||||
assert(asset != null || remoteId != null, 'Either asset or remoteId must be provided');
|
if (_shouldUseLocalAsset(asset)) {
|
||||||
|
|
||||||
if (remoteId != null) {
|
|
||||||
return RemoteThumbProvider(assetId: remoteId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_shouldUseLocalAsset(asset!)) {
|
|
||||||
final id = asset is LocalAsset ? asset.id : (asset as RemoteAsset).localId!;
|
final id = asset is LocalAsset ? asset.id : (asset as RemoteAsset).localId!;
|
||||||
return LocalThumbProvider(id: id, size: size, assetType: asset.type);
|
return LocalThumbProvider(id: id, size: size, assetType: asset.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
final String assetId;
|
final assetId = asset is RemoteAsset ? asset.id : (asset as LocalAsset).remoteId;
|
||||||
if (asset is LocalAsset && asset.hasRemote) {
|
return assetId != null ? RemoteThumbProvider(assetId: assetId) : null;
|
||||||
assetId = asset.remoteId!;
|
|
||||||
} else if (asset is RemoteAsset) {
|
|
||||||
assetId = asset.id;
|
|
||||||
} else {
|
|
||||||
throw ArgumentError("Unsupported asset type: ${asset.runtimeType}");
|
|
||||||
}
|
|
||||||
|
|
||||||
return RemoteThumbProvider(assetId: assetId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _shouldUseLocalAsset(BaseAsset asset) =>
|
bool _shouldUseLocalAsset(BaseAsset asset) =>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
||||||
import 'package:immich_mobile/presentation/widgets/images/image_provider.dart';
|
import 'package:immich_mobile/presentation/widgets/images/image_provider.dart';
|
||||||
import 'package:immich_mobile/presentation/widgets/images/local_image_provider.dart';
|
|
||||||
import 'package:immich_mobile/presentation/widgets/images/remote_image_provider.dart';
|
import 'package:immich_mobile/presentation/widgets/images/remote_image_provider.dart';
|
||||||
import 'package:immich_mobile/presentation/widgets/images/thumb_hash_provider.dart';
|
import 'package:immich_mobile/presentation/widgets/images/thumb_hash_provider.dart';
|
||||||
import 'package:immich_mobile/presentation/widgets/timeline/constants.dart';
|
import 'package:immich_mobile/presentation/widgets/timeline/constants.dart';
|
||||||
|
|
@ -39,14 +38,7 @@ class Thumbnail extends StatefulWidget {
|
||||||
),
|
),
|
||||||
_ => null,
|
_ => null,
|
||||||
},
|
},
|
||||||
imageProvider = switch (asset) {
|
imageProvider = asset == null ? null : getThumbnailImageProvider(asset, size: size);
|
||||||
RemoteAsset() =>
|
|
||||||
asset.localId == null
|
|
||||||
? RemoteThumbProvider(assetId: asset.id)
|
|
||||||
: LocalThumbProvider(id: asset.localId!, size: size, assetType: asset.type),
|
|
||||||
LocalAsset() => LocalThumbProvider(id: asset.id, size: size, assetType: asset.type),
|
|
||||||
_ => null,
|
|
||||||
};
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<Thumbnail> createState() => _ThumbnailState();
|
State<Thumbnail> createState() => _ThumbnailState();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue