mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
feat(mobile): optimized thumbnail widget (#21073)
* thumbnail widget * use animation ticker, improvements * use static thumbnail resolution for now * fix android sample size * free memory sooner * formatting * tweaks * wait for disposal * remove debug prints * take two on animation * fix * remote constructor * missed one * unused imports * unnecessary import * formatting
This commit is contained in:
parent
ab2849781a
commit
fb59fa343d
18 changed files with 421 additions and 125 deletions
|
|
@ -150,26 +150,3 @@ ImageProvider getThumbnailImageProvider({BaseAsset? asset, String? remoteId, Siz
|
|||
|
||||
bool _shouldUseLocalAsset(BaseAsset asset) =>
|
||||
asset.hasLocal && (!asset.hasRemote || !AppSetting.get(Setting.preferRemoteImage));
|
||||
|
||||
ImageInfo? getCachedImage(ImageProvider key) {
|
||||
ImageInfo? thumbnail;
|
||||
final ImageStreamCompleter? stream = PaintingBinding.instance.imageCache.putIfAbsent(
|
||||
key,
|
||||
() => throw Exception(), // don't bother loading if it isn't cached
|
||||
onError: (_, __) {},
|
||||
);
|
||||
|
||||
if (stream != null) {
|
||||
void listener(ImageInfo info, bool synchronousCall) {
|
||||
thumbnail = info;
|
||||
}
|
||||
|
||||
try {
|
||||
stream.addListener(ImageStreamListener(listener));
|
||||
} finally {
|
||||
stream.removeListener(ImageStreamListener(listener));
|
||||
}
|
||||
}
|
||||
|
||||
return thumbnail;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue