|
@@ -48,6 +48,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|
|
final int initialIndex;
|
|
|
final int heroOffset;
|
|
|
final bool showStack;
|
|
|
+ final bool isOwner;
|
|
|
|
|
|
GalleryViewerPage({
|
|
|
super.key,
|
|
@@ -56,6 +57,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|
|
required this.totalAssets,
|
|
|
this.heroOffset = 0,
|
|
|
this.showStack = false,
|
|
|
+ this.isOwner = true,
|
|
|
}) : controller = PageController(initialPage: initialIndex);
|
|
|
|
|
|
final PageController controller;
|
|
@@ -334,6 +336,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|
|
child: Container(
|
|
|
color: Colors.black.withOpacity(0.4),
|
|
|
child: TopControlAppBar(
|
|
|
+ isOwner: isOwner,
|
|
|
isPlayingMotionVideo: isPlayingMotionVideo.value,
|
|
|
asset: asset(),
|
|
|
onMoreInfoPressed: showInfo,
|
|
@@ -573,35 +576,50 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|
|
label: 'control_bottom_app_bar_share'.tr(),
|
|
|
tooltip: 'control_bottom_app_bar_share'.tr(),
|
|
|
),
|
|
|
- asset().isArchived
|
|
|
- ? BottomNavigationBarItem(
|
|
|
- icon: const Icon(Icons.unarchive_rounded),
|
|
|
- label: 'control_bottom_app_bar_unarchive'.tr(),
|
|
|
- tooltip: 'control_bottom_app_bar_unarchive'.tr(),
|
|
|
- )
|
|
|
- : BottomNavigationBarItem(
|
|
|
- icon: const Icon(Icons.archive_outlined),
|
|
|
- label: 'control_bottom_app_bar_archive'.tr(),
|
|
|
- tooltip: 'control_bottom_app_bar_archive'.tr(),
|
|
|
- ),
|
|
|
- if (stack.isNotEmpty)
|
|
|
+ if (isOwner)
|
|
|
+ asset().isArchived
|
|
|
+ ? BottomNavigationBarItem(
|
|
|
+ icon: const Icon(Icons.unarchive_rounded),
|
|
|
+ label: 'control_bottom_app_bar_unarchive'.tr(),
|
|
|
+ tooltip: 'control_bottom_app_bar_unarchive'.tr(),
|
|
|
+ )
|
|
|
+ : BottomNavigationBarItem(
|
|
|
+ icon: const Icon(Icons.archive_outlined),
|
|
|
+ label: 'control_bottom_app_bar_archive'.tr(),
|
|
|
+ tooltip: 'control_bottom_app_bar_archive'.tr(),
|
|
|
+ ),
|
|
|
+ if (isOwner && stack.isNotEmpty)
|
|
|
BottomNavigationBarItem(
|
|
|
icon: const Icon(Icons.burst_mode_outlined),
|
|
|
label: 'control_bottom_app_bar_stack'.tr(),
|
|
|
tooltip: 'control_bottom_app_bar_stack'.tr(),
|
|
|
),
|
|
|
- BottomNavigationBarItem(
|
|
|
- icon: const Icon(Icons.delete_outline),
|
|
|
- label: 'control_bottom_app_bar_delete'.tr(),
|
|
|
- tooltip: 'control_bottom_app_bar_delete'.tr(),
|
|
|
- ),
|
|
|
+ if (isOwner)
|
|
|
+ BottomNavigationBarItem(
|
|
|
+ icon: const Icon(Icons.delete_outline),
|
|
|
+ label: 'control_bottom_app_bar_delete'.tr(),
|
|
|
+ tooltip: 'control_bottom_app_bar_delete'.tr(),
|
|
|
+ ),
|
|
|
+ if (!isOwner)
|
|
|
+ BottomNavigationBarItem(
|
|
|
+ icon: const Icon(Icons.download_outlined),
|
|
|
+ label: 'download'.tr(),
|
|
|
+ tooltip: 'download'.tr(),
|
|
|
+ ),
|
|
|
];
|
|
|
|
|
|
List<Function(int)> actionslist = [
|
|
|
(_) => shareAsset(),
|
|
|
- (_) => handleArchive(asset()),
|
|
|
- if (stack.isNotEmpty) (_) => showStackActionItems(),
|
|
|
- (_) => handleDelete(asset()),
|
|
|
+ if (isOwner) (_) => handleArchive(asset()),
|
|
|
+ if (isOwner && stack.isNotEmpty) (_) => showStackActionItems(),
|
|
|
+ if (isOwner) (_) => handleDelete(asset()),
|
|
|
+ if (!isOwner)
|
|
|
+ (_) => asset().isLocal
|
|
|
+ ? null
|
|
|
+ : ref.watch(imageViewerStateProvider.notifier).downloadAsset(
|
|
|
+ asset(),
|
|
|
+ context,
|
|
|
+ ),
|
|
|
];
|
|
|
|
|
|
return IgnorePointer(
|