diff --git a/mobile/lib/widgets/settings/advanced_settings.dart b/mobile/lib/widgets/settings/advanced_settings.dart index 8c75f2e4dc..cb7528f073 100644 --- a/mobile/lib/widgets/settings/advanced_settings.dart +++ b/mobile/lib/widgets/settings/advanced_settings.dart @@ -148,6 +148,10 @@ class AdvancedSettings extends HookConsumerWidget { } } +TrashSyncMode trashSyncModeFromReviewRemoteDeletionsToggle(bool enabled) { + return enabled ? TrashSyncMode.review : TrashSyncMode.off; +} + final _manageMediaPermissionProvider = FutureProvider((ref) async { return ref.watch(permissionRepositoryProvider).hasManageMediaPermission(); }); @@ -164,6 +168,12 @@ class _TrashSyncModeSelector extends HookConsumerWidget { final reviewRemoteDeletionsSubtitle = Platform.isAndroid ? context.t.advanced_settings_review_remote_deletions_subtitle_android : context.t.advanced_settings_review_remote_deletions_subtitle; + final reviewRemoteDeletionsEnabled = useState(isTrashSyncEnabled); + + useValueChanged(isTrashSyncEnabled, (_, __) { + reviewRemoteDeletionsEnabled.value = isTrashSyncEnabled; + return isTrashSyncEnabled; + }); void showManageMediaRequiredSnackBar() { if (!context.mounted) { @@ -218,6 +228,17 @@ class _TrashSyncModeSelector extends HookConsumerWidget { await attemptToEnableSetting(mode); } + if (Platform.isIOS) { + return SettingsSwitchListTile( + valueNotifier: reviewRemoteDeletionsEnabled, + title: context.t.advanced_settings_review_remote_deletions_title, + subtitle: reviewRemoteDeletionsSubtitle, + onChanged: (enabled) async { + await setTrashSyncMode(trashSyncModeFromReviewRemoteDeletionsToggle(enabled)); + }, + ); + } + return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [