diff --git a/CHANGELOG.md b/CHANGELOG.md index cc2f1167..42ce7013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ - Choose between "WiFi + Mobile Data" or "WiFi Only" - Downloads automatically pause on mobile data and resume on WiFi -- **Cloud Save Settings (UI Only)**: New settings page for cloud/NAS upload configuration +- **Cloud Save Settings**: New settings page for cloud/NAS upload configuration - Settings > Cloud Save - configure auto-upload to NAS or cloud storage - Support for WebDAV (Synology, Nextcloud, QNAP) and SFTP providers - Server URL, username, password, and remote path configuration diff --git a/lib/screens/settings/download_settings_page.dart b/lib/screens/settings/download_settings_page.dart index 1821370e..0ed3f803 100644 --- a/lib/screens/settings/download_settings_page.dart +++ b/lib/screens/settings/download_settings_page.dart @@ -334,6 +334,35 @@ class _DownloadSettingsPageState extends ConsumerState { ), ), + // Download Network Mode + SliverToBoxAdapter( + child: SettingsSectionHeader(title: context.l10n.sectionDownload), + ), + SliverToBoxAdapter( + child: SettingsGroup( + children: [ + SettingsItem( + icon: Icons.wifi, + title: context.l10n.settingsDownloadNetwork, + subtitle: settings.downloadNetworkMode == 'wifi_only' + ? context.l10n.settingsDownloadNetworkWifiOnly + : context.l10n.settingsDownloadNetworkAny, + onTap: () => _showNetworkModePicker(context, ref, settings.downloadNetworkMode), + ), + SettingsSwitchItem( + icon: Icons.file_download_outlined, + title: context.l10n.settingsAutoExportFailed, + subtitle: context.l10n.settingsAutoExportFailedSubtitle, + value: settings.autoExportFailedDownloads, + onChanged: (value) { + ref.read(settingsProvider.notifier).setAutoExportFailedDownloads(value); + }, + showDivider: false, + ), + ], + ), + ), + // All Files Access section (Android 13+ only) if (Platform.isAndroid && _androidSdkVersion >= 33) ...[ SliverToBoxAdapter( @@ -387,69 +416,6 @@ class _DownloadSettingsPageState extends ConsumerState { ), ], - const SliverToBoxAdapter(child: SizedBox(height: 16)), - - // Auto Export Failed Downloads - SliverToBoxAdapter( - child: SettingsGroup( - children: [ - SettingsSwitchItem( - icon: Icons.file_download_outlined, - title: context.l10n.settingsAutoExportFailed, - subtitle: context.l10n.settingsAutoExportFailedSubtitle, - value: settings.autoExportFailedDownloads, - onChanged: (value) { - ref.read(settingsProvider.notifier).setAutoExportFailedDownloads(value); - }, - showDivider: false, - ), - ], - ), - ), - - const SliverToBoxAdapter(child: SizedBox(height: 16)), - - // Download Network Mode - SliverToBoxAdapter( - child: SettingsGroup( - children: [ - SettingsItem( - icon: Icons.wifi, - title: context.l10n.settingsDownloadNetwork, - subtitle: settings.downloadNetworkMode == 'wifi_only' - ? context.l10n.settingsDownloadNetworkWifiOnly - : context.l10n.settingsDownloadNetworkAny, - onTap: () => _showNetworkModePicker(context, ref, settings.downloadNetworkMode), - showDivider: false, - ), - ], - ), - ), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.fromLTRB(16, 8, 16, 0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Icon( - Icons.info_outline, - size: 16, - color: colorScheme.onSurfaceVariant, - ), - const SizedBox(width: 8), - Expanded( - child: Text( - context.l10n.settingsDownloadNetworkSubtitle, - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - ), - ), - ), - ], - ), - ), - ), - const SliverToBoxAdapter(child: SizedBox(height: 32)), ], ),