fix(mobile): handle readonly and offline assets (#5565)

* feat: add isReadOnly and isOffline fields to Asset collection

* refactor: move asset iterable filters to extension

* hide asset actions based on offline and readOnly fields

* pr changes

* chore: doc comments

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
shenlong 2024-01-06 03:02:16 +00:00 committed by GitHub
parent 56cde0438c
commit a233e176e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 333 additions and 105 deletions

View file

@ -156,7 +156,7 @@ class ExifBottomSheet extends HookConsumerWidget {
buildLocation() {
// Guard no lat/lng
if (!hasCoordinates()) {
return asset.isRemote
return asset.isRemote && !asset.isReadOnly
? ListTile(
minLeadingWidth: 0,
contentPadding: const EdgeInsets.all(0),
@ -194,7 +194,7 @@ class ExifBottomSheet extends HookConsumerWidget {
fontWeight: FontWeight.w600,
),
).tr(),
if (asset.isRemote)
if (asset.isRemote && !asset.isReadOnly)
IconButton(
onPressed: () => handleEditLocation(
ref,
@ -251,7 +251,7 @@ class ExifBottomSheet extends HookConsumerWidget {
fontSize: 14,
),
),
if (asset.isRemote)
if (asset.isRemote && !asset.isReadOnly)
IconButton(
onPressed: () => handleEditDateTime(
ref,

View file

@ -166,7 +166,8 @@ class TopControlAppBar extends HookConsumerWidget {
if (asset.isRemote && isOwner) buildFavoriteButton(a),
if (asset.livePhotoVideoId != null) buildLivePhotoButton(),
if (asset.isLocal && !asset.isRemote) buildUploadButton(),
if (asset.isRemote && !asset.isLocal && isOwner) buildDownloadButton(),
if (asset.isRemote && !asset.isLocal && !asset.isOffline && isOwner)
buildDownloadButton(),
if (asset.isRemote && (isOwner || isPartner)) buildAddToAlbumButtom(),
if (album != null && album.shared) buildActivitiesButton(),
buildMoreInfoButton(),