update getting album thumbnail and album thumbnail provider

This commit is contained in:
Wenqi Li 2023-07-25 22:36:41 +08:00
parent ce01bdb79e
commit 8e6ac397a7
4 changed files with 16 additions and 15 deletions

View File

@ -84,7 +84,7 @@ class PhotoGallery {
}
/// Get album thumbnail by album id
static Future<List<int>?> getAlbumThumbnail({
static Future<List<int>> getAlbumThumbnail({
required String albumId,
MediumType? mediumType,
bool newest = true,
@ -100,7 +100,8 @@ class PhotoGallery {
'height': height,
'highQuality': highQuality,
});
return bytes != null ? new List<int>.from(bytes) : null;
if (bytes == null) throw "Failed to fetch thumbnail of album $albumId";
return new List<int>.from(bytes);
}
/// get medium file by medium id

View File

@ -27,18 +27,18 @@ class AlbumThumbnailProvider extends ImageProvider<AlbumThumbnailProvider> {
Future<ui.Codec> _loadAsync(AlbumThumbnailProvider key, ImageDecoderCallback decode) async {
assert(key == this);
final data = await PhotoGallery.getAlbumThumbnail(
albumId: album.id,
mediumType: album.mediumType,
newest: album.newest,
height: height,
width: width,
highQuality: highQuality,
);
ui.ImmutableBuffer buffer;
if (data != null) {
late ui.ImmutableBuffer buffer;
try {
final data = await PhotoGallery.getAlbumThumbnail(
albumId: album.id,
mediumType: album.mediumType,
newest: album.newest,
height: height,
width: width,
highQuality: highQuality,
);
buffer = await ui.ImmutableBuffer.fromUint8List(Uint8List.fromList(data));
} else {
} catch (e) {
buffer = await ui.ImmutableBuffer.fromAsset("packages/photo_gallery/images/grey.bmp");
}
return decode(buffer);

View File

@ -49,7 +49,7 @@ class Album {
/// Get thumbnail data for this album.
///
/// It will display the lastly taken medium thumbnail.
Future<List<int>?> getThumbnail({
Future<List<int>> getThumbnail({
int? width,
int? height,
bool? highQuality = false,

View File

@ -74,7 +74,7 @@ void main() {
test('get album thumbnail', () async {
String albumId = "__ALL__";
List? result = await PhotoGallery.getAlbumThumbnail(albumId: albumId);
List result = await PhotoGallery.getAlbumThumbnail(albumId: albumId);
List expected = Generator.generateMockAlbumThumbnail(albumId: albumId);
expect(result, expected);
});