From af4bf799361870532114347c0ef64117801cc5b2 Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 25 Feb 2021 20:40:04 +0100 Subject: [PATCH] Device providers - Fixed an issue removing device providers Surface auto-arrange - Fixed a crash when arranging with no devices --- src/Artemis.Core/Services/RgbService.cs | 4 ++-- .../Services/Storage/Models/SurfaceArrangement.cs | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index 3cec517d6..39998684b 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -74,7 +74,7 @@ namespace Artemis.Core.Services _modifyingProviders = true; List toRemove = _devices.Where(a => deviceProvider.Devices.Any(d => a.RgbDevice == d)).ToList(); - Surface.Detach(deviceProvider.Devices); + Surface.Detach(toRemove.Select(d => d.RgbDevice)); foreach (ArtemisDevice device in toRemove) RemoveDevice(device); @@ -118,7 +118,7 @@ namespace Artemis.Core.Services _modifyingProviders = true; List toRemove = _devices.Where(a => deviceProvider.Devices.Any(d => a.RgbDevice == d)).ToList(); - Surface.Detach(deviceProvider.Devices); + Surface.Detach(toRemove.Select(d => d.RgbDevice)); foreach (ArtemisDevice device in toRemove) RemoveDevice(device); diff --git a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs index ca0d1ce60..9448d8f40 100644 --- a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs +++ b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangement.cs @@ -79,6 +79,11 @@ namespace Artemis.Core.Services.Models public void Arrange(List devices) { ArrangedDevices.Clear(); + + // Not much to do here + if (!devices.Any()) + return; + foreach (ArtemisDevice surfaceDevice in devices) { surfaceDevice.X = 0;