fix: mobile storage status check (#19986)

* fix: _shouldUseLocalAsset check

* show storage indicators in local album view

* update local thumb provider to work with remote asset

* update checks

* do not show upload button when selection is only merged assets

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
shenlong 2025-07-17 22:43:21 +05:30 committed by GitHub
parent 03ff425664
commit 2046dcc5b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 66 additions and 32 deletions

View file

@ -12,7 +12,13 @@ ImageProvider getFullImageProvider(
// Create new provider and cache it
final ImageProvider provider;
if (_shouldUseLocalAsset(asset)) {
provider = LocalFullImageProvider(asset: asset as LocalAsset, size: size);
final id = asset is LocalAsset ? asset.id : (asset as RemoteAsset).localId!;
provider = LocalFullImageProvider(
id: id,
name: asset.name,
size: size,
type: asset.type,
);
} else {
final String assetId;
if (asset is LocalAsset && asset.hasRemote) {
@ -43,7 +49,13 @@ ImageProvider getThumbnailImageProvider({
}
if (_shouldUseLocalAsset(asset!)) {
return LocalThumbProvider(asset: asset as LocalAsset, size: size);
final id = asset is LocalAsset ? asset.id : (asset as RemoteAsset).localId!;
return LocalThumbProvider(
id: id,
updatedAt: asset.updatedAt,
name: asset.name,
size: size,
);
}
final String assetId;
@ -59,5 +71,5 @@ ImageProvider getThumbnailImageProvider({
}
bool _shouldUseLocalAsset(BaseAsset asset) =>
asset is LocalAsset &&
asset.hasLocal &&
(!asset.hasRemote || !AppSetting.get(Setting.preferRemoteImage));