diff --git a/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart index 093a601932..b97a5b6847 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart @@ -69,26 +69,6 @@ class ViewerBottomBar extends ConsumerWidget { : const DeleteActionButton(source: ActionSource.viewer, showConfirmation: true), ], ], - //todo check it! - // if (isWaitingForSyncApproval) ...[ - // DecoratedBox( - // decoration: BoxDecoration( - // border: Border.all(color: const Color.fromARGB(155, 243, 188, 106), width: 0.5), - // borderRadius: const BorderRadius.all(Radius.circular(24)), - // ), - // child: Column( - // children: [ - // const Text('asset_out_of_sync_trash_confirmation_title').tr(), - // const Row( - // children: [ - // KeepOnDeviceActionButton(source: ActionSource.viewer, isPreview: true), - // MoveToTrashActionButton(source: ActionSource.viewer, isPreview: true), - // ], - // ), - // ], - // ), - // ), - // ], ], ]; diff --git a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart index 72d707db0a..ed3873b510 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart @@ -20,11 +20,6 @@ import 'package:immich_mobile/presentation/widgets/bottom_sheet/base_bottom_shee import 'package:immich_mobile/providers/infrastructure/action.provider.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset_viewer/current_asset.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/setting.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/trash_sync.provider.dart'; -import 'package:immich_mobile/providers/routes.provider.dart'; -import 'package:immich_mobile/providers/server_info.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:immich_mobile/routing/router.dart'; @@ -46,29 +41,6 @@ class AssetDetailBottomSheet extends ConsumerWidget { if (asset == null) { return const SizedBox.shrink(); } -//todo check it! - // final isTrashEnable = ref.watch(serverInfoProvider.select((state) => state.serverFeatures.trash)); - // final isOwner = asset is RemoteAsset && asset.ownerId == ref.watch(currentUserProvider)?.id; - // final isInLockedView = ref.watch(inLockedViewProvider); - // final currentAlbum = ref.watch(currentRemoteAlbumProvider); - // final isArchived = asset is RemoteAsset && asset.visibility == AssetVisibility.archive; - // final advancedTroubleshooting = ref.watch(settingsProvider.notifier).get(Setting.advancedTroubleshooting); - // final isWaitingForTrashApproval = ref.watch(isWaitingForSyncApprovalProvider(asset.checksum)).value == true; - // - // final buttonContext = ActionButtonContext( - // asset: asset, - // isOwner: isOwner, - // isArchived: isArchived, - // isTrashEnabled: isTrashEnable, - // isInLockedView: isInLockedView, - // isStacked: asset is RemoteAsset && asset.stackId != null, - // currentAlbum: currentAlbum, - // advancedTroubleshooting: advancedTroubleshooting, - // isWaitingForTrashApproval: isWaitingForTrashApproval, - // source: ActionSource.viewer, - // ); - // - // final actions = ActionButtonBuilder.build(buttonContext); return BaseBottomSheet( actions: [], diff --git a/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart index 193cf60220..f65d64eca9 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart @@ -15,6 +15,7 @@ import 'package:immich_mobile/providers/activity.provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset_viewer/current_asset.provider.dart'; import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart'; import 'package:immich_mobile/providers/infrastructure/readonly_mode.provider.dart'; +import 'package:immich_mobile/providers/infrastructure/trash_sync.provider.dart'; import 'package:immich_mobile/providers/routes.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; @@ -49,6 +50,8 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget { final originalTheme = context.themeData; + final isWaitingForSyncApproval = ref.watch(isWaitingForSyncApprovalProvider(asset.checksum)).value == true; + final actions = [ if (asset.isMotionPhoto) const MotionPhotoActionButton(iconOnly: true), if (album != null && album.isActivityEnabled && album.isShared) @@ -59,9 +62,9 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget { }, ), - if (asset.hasRemote && isOwner && !asset.isFavorite) + if (asset.hasRemote && isOwner && !asset.isFavorite && !isWaitingForSyncApproval) const FavoriteActionButton(source: ActionSource.viewer, iconOnly: true), - if (asset.hasRemote && isOwner && asset.isFavorite) + if (asset.hasRemote && isOwner && asset.isFavorite && !isWaitingForSyncApproval) const UnFavoriteActionButton(source: ActionSource.viewer, iconOnly: true), ViewerKebabMenu(originalTheme: originalTheme), diff --git a/mobile/lib/presentation/widgets/asset_viewer/viewer_kebab_menu.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/viewer_kebab_menu.widget.dart index 10f3595d01..79a8d8db80 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/viewer_kebab_menu.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/viewer_kebab_menu.widget.dart @@ -9,6 +9,7 @@ import 'package:immich_mobile/providers/infrastructure/asset_viewer/current_asse import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart'; import 'package:immich_mobile/providers/infrastructure/setting.provider.dart'; import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart'; +import 'package:immich_mobile/providers/infrastructure/trash_sync.provider.dart'; import 'package:immich_mobile/providers/routes.provider.dart'; import 'package:immich_mobile/providers/server_info.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; @@ -35,6 +36,7 @@ class ViewerKebabMenu extends ConsumerWidget { final currentAlbum = ref.watch(currentRemoteAlbumProvider); final isArchived = asset is RemoteAsset && asset.visibility == AssetVisibility.archive; final advancedTroubleshooting = ref.watch(settingsProvider.notifier).get(Setting.advancedTroubleshooting); + final isWaitingForTrashApproval = ref.watch(isWaitingForSyncApprovalProvider(asset.checksum)).value == true; final actionContext = ActionButtonContext( asset: asset, @@ -49,6 +51,7 @@ class ViewerKebabMenu extends ConsumerWidget { isCasting: isCasting, timelineOrigin: timelineOrigin, originalTheme: originalTheme, + isWaitingForTrashApproval: isWaitingForTrashApproval, ); final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref); diff --git a/mobile/lib/utils/action_button.utils.dart b/mobile/lib/utils/action_button.utils.dart index 29af3e9371..b96c26b4fb 100644 --- a/mobile/lib/utils/action_button.utils.dart +++ b/mobile/lib/utils/action_button.utils.dart @@ -16,10 +16,8 @@ import 'package:immich_mobile/presentation/widgets/action_buttons/delete_action_ import 'package:immich_mobile/presentation/widgets/action_buttons/delete_local_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/download_action_button.widget.dart'; -import 'package:immich_mobile/presentation/widgets/action_buttons/keep_on_device_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/like_activity_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/move_to_lock_folder_action_button.widget.dart'; -import 'package:immich_mobile/presentation/widgets/action_buttons/move_to_trash_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/share_action_button.widget.dart'; @@ -83,9 +81,7 @@ enum ActionButtonType { deleteLocal, deletePermanent, delete, - advancedInfo, - keepOnDevice, - syncTrash; + advancedInfo; bool shouldShow(ActionButtonContext context) { return switch (this) { @@ -165,10 +161,9 @@ enum ActionButtonType { context.timelineOrigin != TimelineOrigin.lockedFolder && context.timelineOrigin != TimelineOrigin.archive && context.timelineOrigin != TimelineOrigin.localAlbum && + context.timelineOrigin != TimelineOrigin.syncTrash && context.isOwner, ActionButtonType.cast => context.isCasting || context.asset.hasRemote, - ActionButtonType.keepOnDevice => context.isWaitingForTrashApproval, - ActionButtonType.syncTrash => context.isWaitingForTrashApproval, }; } @@ -255,8 +250,6 @@ enum ActionButtonType { }, ), ActionButtonType.cast => CastActionButton(iconOnly: iconOnly, menuItem: menuItem), - ActionButtonType.keepOnDevice => const KeepOnDeviceActionButton(source: ActionSource.viewer, isPreview: true), - ActionButtonType.syncTrash => const MoveToTrashActionButton(source: ActionSource.viewer, isPreview: true), }; }