fixed image loading error handling
This commit is contained in:
parent
9a8f0d8606
commit
2991df5f49
3 changed files with 12 additions and 6 deletions
|
@ -39,11 +39,13 @@ class AppIconImage extends ImageProvider<AppIconImageKey> {
|
||||||
Future<ui.Codec> _loadAsync(AppIconImageKey key, DecoderCallback decode) async {
|
Future<ui.Codec> _loadAsync(AppIconImageKey key, DecoderCallback decode) async {
|
||||||
try {
|
try {
|
||||||
final bytes = await AndroidAppService.getAppIcon(key.packageName, key.size);
|
final bytes = await AndroidAppService.getAppIcon(key.packageName, key.size);
|
||||||
if (bytes == null) return null;
|
if (bytes == null) {
|
||||||
|
throw StateError('$packageName app icon loading failed');
|
||||||
|
}
|
||||||
return await decode(bytes);
|
return await decode(bytes);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
debugPrint('$runtimeType _loadAsync failed with packageName=$packageName, error=$error');
|
debugPrint('$runtimeType _loadAsync failed with packageName=$packageName, error=$error');
|
||||||
return null;
|
throw StateError('$packageName app icon decoding failed');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,11 +50,13 @@ class ThumbnailProvider extends ImageProvider<ThumbnailProviderKey> {
|
||||||
Future<ui.Codec> _loadAsync(ThumbnailProviderKey key, DecoderCallback decode) async {
|
Future<ui.Codec> _loadAsync(ThumbnailProviderKey key, DecoderCallback decode) async {
|
||||||
try {
|
try {
|
||||||
final bytes = await ImageFileService.getThumbnail(key.entry, extent, extent, taskKey: _cancellationKey);
|
final bytes = await ImageFileService.getThumbnail(key.entry, extent, extent, taskKey: _cancellationKey);
|
||||||
if (bytes == null) return null;
|
if (bytes == null) {
|
||||||
|
throw StateError('${entry.uri} (${entry.mimeType}) loading failed');
|
||||||
|
}
|
||||||
return await decode(bytes);
|
return await decode(bytes);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
debugPrint('$runtimeType _loadAsync failed with path=${entry.path}, error=$error');
|
debugPrint('$runtimeType _loadAsync failed with path=${entry.path}, error=$error');
|
||||||
return null;
|
throw StateError('${entry.mimeType} decoding failed');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,11 +55,13 @@ class UriImage extends ImageProvider<UriImage> {
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
if (bytes == null) return null;
|
if (bytes == null) {
|
||||||
|
throw StateError('$uri ($mimeType) loading failed');
|
||||||
|
}
|
||||||
return await decode(bytes);
|
return await decode(bytes);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
debugPrint('$runtimeType _loadAsync failed with mimeType=$mimeType, uri=$uri, error=$error');
|
debugPrint('$runtimeType _loadAsync failed with mimeType=$mimeType, uri=$uri, error=$error');
|
||||||
return null;
|
throw StateError('$mimeType decoding failed');
|
||||||
} finally {
|
} finally {
|
||||||
unawaited(chunkEvents.close());
|
unawaited(chunkEvents.close());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue