From 680efbe600497147249710151e7e983154598613 Mon Sep 17 00:00:00 2001 From: Lamparter <71598437+Lamparter@users.noreply.github.com> Date: Sun, 16 Mar 2025 18:58:25 +0000 Subject: [PATCH 1/3] Implement Sync drive --- src/Files.App/Utils/Cloud/CloudProviders.cs | 4 ++- .../Utils/Cloud/Detector/CloudDetector.cs | 1 + .../Utils/Cloud/Detector/SyncCloudDetector.cs | 31 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs diff --git a/src/Files.App/Utils/Cloud/CloudProviders.cs b/src/Files.App/Utils/Cloud/CloudProviders.cs index 5b9d208e1797..76cd960c5be5 100644 --- a/src/Files.App/Utils/Cloud/CloudProviders.cs +++ b/src/Files.App/Utils/Cloud/CloudProviders.cs @@ -45,6 +45,8 @@ public enum CloudProviders LucidLink, - kDrive + kDrive, + + Sync } } diff --git a/src/Files.App/Utils/Cloud/Detector/CloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/CloudDetector.cs index 85ce72308320..5342f26a3934 100644 --- a/src/Files.App/Utils/Cloud/Detector/CloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/CloudDetector.cs @@ -34,6 +34,7 @@ private static IEnumerable<ICloudDetector> EnumerateDetectors() yield return new GenericCloudDetector(); yield return new SynologyDriveCloudDetector(); yield return new LucidLinkCloudDetector(); + yield return new SyncCloudDetector(); } } } diff --git a/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs new file mode 100644 index 000000000000..e734ece4a52b --- /dev/null +++ b/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs @@ -0,0 +1,31 @@ +using System.IO; +using Windows.Storage; + +namespace Files.App.Utils.Cloud +{ + /// <summary> + /// Provides a utility for Sync Cloud detection. + /// </summary> + public sealed class SyncCloudDetector : AbstractCloudDetector + { + protected override async IAsyncEnumerable<ICloudProvider> GetProviders() + { + string syncFolderPath = Path.Combine(Constants.UserEnvironmentPaths.HomePath, "Sync"); + + if (Directory.Exists(syncFolderPath)) + { + foreach (string directory in Directory.GetDirectories(syncFolderPath)) + { + var folder = await StorageFolder.GetFolderFromPathAsync(directory); + + yield return new CloudProvider(CloudProviders.Sync) + { + Name = $"Sync - {folder.Name}", + SyncFolder = directory, + // IconData = (needs icon) + }; + } + } + } + } +} From 3b91d90266b5f31cefc75683eebd01eb9d686801 Mon Sep 17 00:00:00 2001 From: Lamparter <71598437+Lamparter@users.noreply.github.com> Date: Tue, 25 Mar 2025 18:55:29 +0000 Subject: [PATCH 2/3] Rename `Sync` to `SyncDrive` Signed-off-by: Lamparter <71598437+Lamparter@users.noreply.github.com> --- src/Files.App/Utils/Cloud/CloudProviders.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Files.App/Utils/Cloud/CloudProviders.cs b/src/Files.App/Utils/Cloud/CloudProviders.cs index 76cd960c5be5..ea88038a66b8 100644 --- a/src/Files.App/Utils/Cloud/CloudProviders.cs +++ b/src/Files.App/Utils/Cloud/CloudProviders.cs @@ -47,6 +47,6 @@ public enum CloudProviders kDrive, - Sync + SyncDrive } } From 4fbb0ed3f55b8de68c6caba29dad72ea8d416dc9 Mon Sep 17 00:00:00 2001 From: Lamparter <71598437+Lamparter@users.noreply.github.com> Date: Tue, 25 Mar 2025 18:55:50 +0000 Subject: [PATCH 3/3] Update src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs Signed-off-by: Lamparter <71598437+Lamparter@users.noreply.github.com> --- src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs index e734ece4a52b..b3eb3c87701c 100644 --- a/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/SyncCloudDetector.cs @@ -18,7 +18,7 @@ protected override async IAsyncEnumerable<ICloudProvider> GetProviders() { var folder = await StorageFolder.GetFolderFromPathAsync(directory); - yield return new CloudProvider(CloudProviders.Sync) + yield return new CloudProvider(CloudProviders.SyncDrive) { Name = $"Sync - {folder.Name}", SyncFolder = directory,