refactor: remove cloud save feature entirely

This feature was deemed unnecessary and was adding complexity to the app.

Removed:
- lib/services/cloud_upload_service.dart
- lib/providers/upload_queue_provider.dart
- lib/screens/settings/cloud_settings_page.dart
- lib/screens/settings/widgets/ (cloud status hero card)
- All cloud* settings from AppSettings model
- All cloud-related localization keys (~70 keys)
- Cloud settings from settings_provider.dart
- Cloud menu item from settings_tab.dart
- Cloud upload trigger from download_queue_provider.dart

Dependencies removed:
- webdav_client: ^1.2.2
- dartssh2: ^2.13.0

CHANGELOG updated to remove all cloud save references.
This commit is contained in:
zarzet
2026-02-03 23:10:19 +07:00
parent a2eb89e230
commit 99e0d3d361
27 changed files with 1818 additions and 9088 deletions
-34
View File
@@ -37,15 +37,6 @@ class AppSettings {
final bool autoExportFailedDownloads; // Auto export failed downloads to TXT file
final String downloadNetworkMode; // 'any' = WiFi + Mobile, 'wifi_only' = WiFi only
// Cloud Upload Settings
final bool cloudUploadEnabled; // Enable auto-upload after download
final String cloudProvider; // 'none', 'webdav', 'sftp', 'gdrive'
final String cloudServerUrl; // WebDAV/SFTP server URL
final String cloudUsername; // Server username
final String cloudPassword; // Server password (stored securely)
final String cloudRemotePath; // Remote folder path (e.g. /Music/SpotiFLAC)
final bool cloudAllowInsecureHttp; // Allow HTTP for WebDAV (insecure)
// Local Library Settings
final bool localLibraryEnabled; // Enable local library scanning
final String localLibraryPath; // Path to scan for audio files
@@ -84,14 +75,6 @@ class AppSettings {
this.useAllFilesAccess = false,
this.autoExportFailedDownloads = false,
this.downloadNetworkMode = 'any',
// Cloud Upload defaults
this.cloudUploadEnabled = false,
this.cloudProvider = 'none',
this.cloudServerUrl = '',
this.cloudUsername = '',
this.cloudPassword = '',
this.cloudRemotePath = '/Music/SpotiFLAC',
this.cloudAllowInsecureHttp = false,
// Local Library defaults
this.localLibraryEnabled = false,
this.localLibraryPath = '',
@@ -132,14 +115,6 @@ class AppSettings {
bool? useAllFilesAccess,
bool? autoExportFailedDownloads,
String? downloadNetworkMode,
// Cloud Upload
bool? cloudUploadEnabled,
String? cloudProvider,
String? cloudServerUrl,
String? cloudUsername,
String? cloudPassword,
String? cloudRemotePath,
bool? cloudAllowInsecureHttp,
// Local Library
bool? localLibraryEnabled,
String? localLibraryPath,
@@ -178,15 +153,6 @@ class AppSettings {
useAllFilesAccess: useAllFilesAccess ?? this.useAllFilesAccess,
autoExportFailedDownloads: autoExportFailedDownloads ?? this.autoExportFailedDownloads,
downloadNetworkMode: downloadNetworkMode ?? this.downloadNetworkMode,
// Cloud Upload
cloudUploadEnabled: cloudUploadEnabled ?? this.cloudUploadEnabled,
cloudProvider: cloudProvider ?? this.cloudProvider,
cloudServerUrl: cloudServerUrl ?? this.cloudServerUrl,
cloudUsername: cloudUsername ?? this.cloudUsername,
cloudPassword: cloudPassword ?? this.cloudPassword,
cloudRemotePath: cloudRemotePath ?? this.cloudRemotePath,
cloudAllowInsecureHttp:
cloudAllowInsecureHttp ?? this.cloudAllowInsecureHttp,
// Local Library
localLibraryEnabled: localLibraryEnabled ?? this.localLibraryEnabled,
localLibraryPath: localLibraryPath ?? this.localLibraryPath,
-15
View File
@@ -42,14 +42,6 @@ AppSettings _$AppSettingsFromJson(Map<String, dynamic> json) => AppSettings(
autoExportFailedDownloads:
json['autoExportFailedDownloads'] as bool? ?? false,
downloadNetworkMode: json['downloadNetworkMode'] as String? ?? 'any',
cloudUploadEnabled: json['cloudUploadEnabled'] as bool? ?? false,
cloudProvider: json['cloudProvider'] as String? ?? 'none',
cloudServerUrl: json['cloudServerUrl'] as String? ?? '',
cloudUsername: json['cloudUsername'] as String? ?? '',
cloudPassword: json['cloudPassword'] as String? ?? '',
cloudRemotePath: json['cloudRemotePath'] as String? ?? '/Music/SpotiFLAC',
cloudAllowInsecureHttp:
json['cloudAllowInsecureHttp'] as bool? ?? false,
localLibraryEnabled: json['localLibraryEnabled'] as bool? ?? false,
localLibraryPath: json['localLibraryPath'] as String? ?? '',
localLibraryShowDuplicates:
@@ -90,13 +82,6 @@ Map<String, dynamic> _$AppSettingsToJson(AppSettings instance) =>
'useAllFilesAccess': instance.useAllFilesAccess,
'autoExportFailedDownloads': instance.autoExportFailedDownloads,
'downloadNetworkMode': instance.downloadNetworkMode,
'cloudUploadEnabled': instance.cloudUploadEnabled,
'cloudProvider': instance.cloudProvider,
'cloudServerUrl': instance.cloudServerUrl,
'cloudUsername': instance.cloudUsername,
'cloudPassword': instance.cloudPassword,
'cloudRemotePath': instance.cloudRemotePath,
'cloudAllowInsecureHttp': instance.cloudAllowInsecureHttp,
'localLibraryEnabled': instance.localLibraryEnabled,
'localLibraryPath': instance.localLibraryPath,
'localLibraryShowDuplicates': instance.localLibraryShowDuplicates,