From 308f35186347ae53b6dab98d8a0a1b1574df820f Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Sun, 18 Dec 2022 14:31:17 +0800 Subject: [PATCH] Helper fn to get preview url for a file --- app/lib/widget/album_browser.dart | 10 +++----- .../builder/photo_list_item_builder.dart | 6 ++--- app/lib/widget/dynamic_album_browser.dart | 10 +++----- app/lib/widget/home_photos.dart | 5 ++-- app/lib/widget/network_thumbnail.dart | 23 ++++++++++++------- app/lib/widget/places_browser.dart | 17 ++++---------- app/lib/widget/search_landing.dart | 8 ++----- app/lib/widget/smart_album_browser.dart | 12 +++------- 8 files changed, 34 insertions(+), 57 deletions(-) diff --git a/app/lib/widget/album_browser.dart b/app/lib/widget/album_browser.dart index f69238f1..e973529e 100644 --- a/app/lib/widget/album_browser.dart +++ b/app/lib/widget/album_browser.dart @@ -6,7 +6,6 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/download_handler.dart'; @@ -37,6 +36,7 @@ import 'package:nc_photos/widget/album_share_outlier_browser.dart'; import 'package:nc_photos/widget/draggable_item_list_mixin.dart'; import 'package:nc_photos/widget/fancy_option_picker.dart'; import 'package:nc_photos/widget/handler/add_selection_to_album_handler.dart'; +import 'package:nc_photos/widget/network_thumbnail.dart'; import 'package:nc_photos/widget/photo_list_item.dart'; import 'package:nc_photos/widget/photo_list_util.dart' as photo_list_util; import 'package:nc_photos/widget/selectable_item_stream_list_mixin.dart'; @@ -735,12 +735,8 @@ class _AlbumBrowserState extends State for (int i = 0; i < _sortedItems.length; ++i) { final item = _sortedItems[i]; if (item is AlbumFileItem) { - final previewUrl = api_util.getFilePreviewUrl( - widget.account, - item.file, - width: k.photoThumbSize, - height: k.photoThumbSize, - ); + final previewUrl = + NetworkRectThumbnail.imageUrlForFile(widget.account, item.file); if ((_editAlbum ?? _album)?.sortProvider is AlbumTimeSortProvider && Pref().isAlbumBrowserShowDateOr()) { final date = dateHelper.onFile(item.file); diff --git a/app/lib/widget/builder/photo_list_item_builder.dart b/app/lib/widget/builder/photo_list_item_builder.dart index b3cc2973..4d07be59 100644 --- a/app/lib/widget/builder/photo_list_item_builder.dart +++ b/app/lib/widget/builder/photo_list_item_builder.dart @@ -2,14 +2,13 @@ import 'package:collection/collection.dart'; import 'package:flutter/widgets.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_init.dart' as app_init; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/entity/album.dart'; import 'package:nc_photos/entity/file_descriptor.dart'; import 'package:nc_photos/entity/file_util.dart' as file_util; -import 'package:nc_photos/k.dart' as k; import 'package:nc_photos/object_extension.dart'; +import 'package:nc_photos/widget/network_thumbnail.dart'; import 'package:nc_photos/widget/photo_list_item.dart'; import 'package:nc_photos/widget/photo_list_util.dart'; import 'package:nc_photos/widget/selectable_item_stream_list_mixin.dart'; @@ -160,8 +159,7 @@ class _PhotoListItemBuilder { } SelectableItem? _buildListItem(int i, Account account, FileDescriptor file) { - final previewUrl = api_util.getFilePreviewUrl(account, file, - width: k.photoThumbSize, height: k.photoThumbSize); + final previewUrl = NetworkRectThumbnail.imageUrlForFile(account, file); if (file_util.isSupportedImageFormat(file)) { return PhotoListImageItem( fileIndex: i, diff --git a/app/lib/widget/dynamic_album_browser.dart b/app/lib/widget/dynamic_album_browser.dart index 776dffdc..1e088d55 100644 --- a/app/lib/widget/dynamic_album_browser.dart +++ b/app/lib/widget/dynamic_album_browser.dart @@ -5,7 +5,6 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/debug_util.dart'; import 'package:nc_photos/di_container.dart'; @@ -33,6 +32,7 @@ import 'package:nc_photos/use_case/update_album.dart'; import 'package:nc_photos/use_case/update_album_with_actual_items.dart'; import 'package:nc_photos/widget/album_browser_mixin.dart'; import 'package:nc_photos/widget/fancy_option_picker.dart'; +import 'package:nc_photos/widget/network_thumbnail.dart'; import 'package:nc_photos/widget/photo_list_item.dart'; import 'package:nc_photos/widget/photo_list_util.dart' as photo_list_util; import 'package:nc_photos/widget/selectable_item_stream_list_mixin.dart'; @@ -618,12 +618,8 @@ class _DynamicAlbumBrowserState extends State for (int i = 0; i < _sortedItems.length; ++i) { final item = _sortedItems[i]; if (item is AlbumFileItem) { - final previewUrl = api_util.getFilePreviewUrl( - widget.account, - item.file, - width: k.photoThumbSize, - height: k.photoThumbSize, - ); + final previewUrl = + NetworkRectThumbnail.imageUrlForFile(widget.account, item.file); if ((_editAlbum ?? _album)?.sortProvider is AlbumTimeSortProvider && Pref().isAlbumBrowserShowDateOr()) { final date = dateHelper.onFile(item.file); diff --git a/app/lib/widget/home_photos.dart b/app/lib/widget/home_photos.dart index c9c910f9..cbbee1e3 100644 --- a/app/lib/widget/home_photos.dart +++ b/app/lib/widget/home_photos.dart @@ -11,7 +11,6 @@ import 'package:intl/intl.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/bloc/progress.dart'; @@ -45,6 +44,7 @@ import 'package:nc_photos/widget/handler/archive_selection_handler.dart'; import 'package:nc_photos/widget/handler/double_tap_exit_handler.dart'; import 'package:nc_photos/widget/handler/remove_selection_handler.dart'; import 'package:nc_photos/widget/home_app_bar.dart'; +import 'package:nc_photos/widget/network_thumbnail.dart'; import 'package:nc_photos/widget/page_visibility_mixin.dart'; import 'package:nc_photos/widget/photo_list_item.dart'; import 'package:nc_photos/widget/photo_list_util.dart' as photo_list_util; @@ -1017,8 +1017,7 @@ class _SmartAlbumList extends StatelessWidget { account: account, previewUrl: coverFile == null ? null - : api_util.getFilePreviewUrl(account, coverFile, - width: k.photoThumbSize, height: k.photoThumbSize), + : NetworkRectThumbnail.imageUrlForFile(account, coverFile), label: a.name, onTap: () { album_browser_util.push(context, account, a); diff --git a/app/lib/widget/network_thumbnail.dart b/app/lib/widget/network_thumbnail.dart index 87136e29..c7d0b4eb 100644 --- a/app/lib/widget/network_thumbnail.dart +++ b/app/lib/widget/network_thumbnail.dart @@ -18,14 +18,21 @@ class NetworkRectThumbnail extends StatelessWidget { required this.errorBuilder, }); - static String imageUrlForFile(Account account, FileDescriptor file) { - return api_util.getFilePreviewUrl( - account, - file, - width: k.photoThumbSize, - height: k.photoThumbSize, - ); - } + static String imageUrlForFile(Account account, FileDescriptor file) => + api_util.getFilePreviewUrl( + account, + file, + width: k.photoThumbSize, + height: k.photoThumbSize, + ); + + static String imageUrlForFileId(Account account, int fileId) => + api_util.getFilePreviewUrlByFileId( + account, + fileId, + width: k.photoThumbSize, + height: k.photoThumbSize, + ); @override Widget build(BuildContext context) { diff --git a/app/lib/widget/places_browser.dart b/app/lib/widget/places_browser.dart index 5f9babaf..fe2767ae 100644 --- a/app/lib/widget/places_browser.dart +++ b/app/lib/widget/places_browser.dart @@ -5,7 +5,6 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/bloc/list_location.dart'; import 'package:nc_photos/di_container.dart'; @@ -209,12 +208,8 @@ class _PlacesBrowserState extends State { .map((e) => _PlaceItem( account: widget.account, place: e.place, - thumbUrl: api_util.getFilePreviewUrlByFileId( - widget.account, - e.latestFileId, - width: k.photoThumbSize, - height: k.photoThumbSize, - ), + thumbUrl: NetworkRectThumbnail.imageUrlForFileId( + widget.account, e.latestFileId), onTap: () => _onPlaceTap(e), )) .toList(); @@ -223,12 +218,8 @@ class _PlacesBrowserState extends State { .map((e) => _CountryItem( account: widget.account, country: e.place, - thumbUrl: api_util.getFilePreviewUrlByFileId( - widget.account, - e.latestFileId, - width: k.photoThumbSize, - height: k.photoThumbSize, - ), + thumbUrl: NetworkRectThumbnail.imageUrlForFileId( + widget.account, e.latestFileId), onTap: () => _onCountryTap(e), )) .toList(); diff --git a/app/lib/widget/search_landing.dart b/app/lib/widget/search_landing.dart index 603fb896..bd71410c 100644 --- a/app/lib/widget/search_landing.dart +++ b/app/lib/widget/search_landing.dart @@ -277,12 +277,8 @@ class _SearchLandingState extends State { .map((e) => _LandingLocationItem( account: widget.account, name: e.place, - thumbUrl: api_util.getFilePreviewUrlByFileId( - widget.account, - e.latestFileId, - width: k.photoThumbSize, - height: k.photoThumbSize, - ), + thumbUrl: NetworkRectThumbnail.imageUrlForFileId( + widget.account, e.latestFileId), onTap: () => _onLocationItemTap(e), )) .toList(); diff --git a/app/lib/widget/smart_album_browser.dart b/app/lib/widget/smart_album_browser.dart index dd113147..c7bb7e6d 100644 --- a/app/lib/widget/smart_album_browser.dart +++ b/app/lib/widget/smart_album_browser.dart @@ -4,7 +4,6 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; -import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/download_handler.dart'; @@ -14,12 +13,12 @@ import 'package:nc_photos/entity/album/provider.dart'; import 'package:nc_photos/entity/file.dart'; import 'package:nc_photos/entity/file_util.dart' as file_util; import 'package:nc_photos/flutter_util.dart' as flutter_util; -import 'package:nc_photos/k.dart' as k; import 'package:nc_photos/object_extension.dart'; import 'package:nc_photos/share_handler.dart'; import 'package:nc_photos/use_case/preprocess_album.dart'; import 'package:nc_photos/widget/album_browser_mixin.dart'; import 'package:nc_photos/widget/handler/add_selection_to_album_handler.dart'; +import 'package:nc_photos/widget/network_thumbnail.dart'; import 'package:nc_photos/widget/photo_list_item.dart'; import 'package:nc_photos/widget/selectable_item_stream_list_mixin.dart'; import 'package:nc_photos/widget/viewer.dart'; @@ -293,13 +292,8 @@ class _SmartAlbumBrowserState extends State for (int i = 0; i < _sortedItems.length; ++i) { final item = _sortedItems[i]; if (item is AlbumFileItem) { - final previewUrl = api_util.getFilePreviewUrl( - widget.account, - item.file, - width: k.photoThumbSize, - height: k.photoThumbSize, - ); - + final previewUrl = + NetworkRectThumbnail.imageUrlForFile(widget.account, item.file); if (file_util.isSupportedImageFormat(item.file)) { yield _ImageListItem( index: i,