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,