fix(trash_sync_review): resolve merge conflicts

pull/23992/head
Peter Ombodi 2025-12-17 18:41:46 +02:00
parent 0db44050e0
commit 45182e385d
5 changed files with 10 additions and 59 deletions

View File

@ -69,26 +69,6 @@ class ViewerBottomBar extends ConsumerWidget {
: const DeleteActionButton(source: ActionSource.viewer, showConfirmation: true), : 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),
// ],
// ),
// ],
// ),
// ),
// ],
], ],
]; ];

View File

@ -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/action.provider.dart';
import 'package:immich_mobile/providers/infrastructure/album.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/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/providers/user.provider.dart';
import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
@ -46,29 +41,6 @@ class AssetDetailBottomSheet extends ConsumerWidget {
if (asset == null) { if (asset == null) {
return const SizedBox.shrink(); 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( return BaseBottomSheet(
actions: [], actions: [],

View File

@ -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/asset_viewer/current_asset.provider.dart';
import 'package:immich_mobile/providers/infrastructure/current_album.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/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/routes.provider.dart';
import 'package:immich_mobile/providers/user.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 originalTheme = context.themeData;
final isWaitingForSyncApproval = ref.watch(isWaitingForSyncApprovalProvider(asset.checksum)).value == true;
final actions = <Widget>[ final actions = <Widget>[
if (asset.isMotionPhoto) const MotionPhotoActionButton(iconOnly: true), if (asset.isMotionPhoto) const MotionPhotoActionButton(iconOnly: true),
if (album != null && album.isActivityEnabled && album.isShared) 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), 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), const UnFavoriteActionButton(source: ActionSource.viewer, iconOnly: true),
ViewerKebabMenu(originalTheme: originalTheme), ViewerKebabMenu(originalTheme: originalTheme),

View File

@ -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/current_album.provider.dart';
import 'package:immich_mobile/providers/infrastructure/setting.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/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/routes.provider.dart';
import 'package:immich_mobile/providers/server_info.provider.dart'; import 'package:immich_mobile/providers/server_info.provider.dart';
import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart';
@ -35,6 +36,7 @@ class ViewerKebabMenu extends ConsumerWidget {
final currentAlbum = ref.watch(currentRemoteAlbumProvider); final currentAlbum = ref.watch(currentRemoteAlbumProvider);
final isArchived = asset is RemoteAsset && asset.visibility == AssetVisibility.archive; final isArchived = asset is RemoteAsset && asset.visibility == AssetVisibility.archive;
final advancedTroubleshooting = ref.watch(settingsProvider.notifier).get(Setting.advancedTroubleshooting); final advancedTroubleshooting = ref.watch(settingsProvider.notifier).get(Setting.advancedTroubleshooting);
final isWaitingForTrashApproval = ref.watch(isWaitingForSyncApprovalProvider(asset.checksum)).value == true;
final actionContext = ActionButtonContext( final actionContext = ActionButtonContext(
asset: asset, asset: asset,
@ -49,6 +51,7 @@ class ViewerKebabMenu extends ConsumerWidget {
isCasting: isCasting, isCasting: isCasting,
timelineOrigin: timelineOrigin, timelineOrigin: timelineOrigin,
originalTheme: originalTheme, originalTheme: originalTheme,
isWaitingForTrashApproval: isWaitingForTrashApproval,
); );
final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref); final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref);

View File

@ -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_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/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/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/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_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_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/remove_from_lock_folder_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/share_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/share_action_button.widget.dart';
@ -83,9 +81,7 @@ enum ActionButtonType {
deleteLocal, deleteLocal,
deletePermanent, deletePermanent,
delete, delete,
advancedInfo, advancedInfo;
keepOnDevice,
syncTrash;
bool shouldShow(ActionButtonContext context) { bool shouldShow(ActionButtonContext context) {
return switch (this) { return switch (this) {
@ -165,10 +161,9 @@ enum ActionButtonType {
context.timelineOrigin != TimelineOrigin.lockedFolder && context.timelineOrigin != TimelineOrigin.lockedFolder &&
context.timelineOrigin != TimelineOrigin.archive && context.timelineOrigin != TimelineOrigin.archive &&
context.timelineOrigin != TimelineOrigin.localAlbum && context.timelineOrigin != TimelineOrigin.localAlbum &&
context.timelineOrigin != TimelineOrigin.syncTrash &&
context.isOwner, context.isOwner,
ActionButtonType.cast => context.isCasting || context.asset.hasRemote, 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.cast => CastActionButton(iconOnly: iconOnly, menuItem: menuItem),
ActionButtonType.keepOnDevice => const KeepOnDeviceActionButton(source: ActionSource.viewer, isPreview: true),
ActionButtonType.syncTrash => const MoveToTrashActionButton(source: ActionSource.viewer, isPreview: true),
}; };
} }