Helper fn to get preview url for a file

This commit is contained in:
Ming Ming 2022-12-18 14:31:17 +08:00
parent ae8156e0b7
commit 308f351863
8 changed files with 34 additions and 57 deletions

View file

@ -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<AlbumBrowser>
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);

View file

@ -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,

View file

@ -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<DynamicAlbumBrowser>
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);

View file

@ -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);

View file

@ -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) {

View file

@ -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<PlacesBrowser> {
.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<PlacesBrowser> {
.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();

View file

@ -277,12 +277,8 @@ class _SearchLandingState extends State<SearchLanding> {
.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();

View file

@ -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<SmartAlbumBrowser>
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,