From ba0bac11b5af45fe7f7e676650a01046cc67204f Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Thu, 2 May 2024 12:35:36 +0200 Subject: [PATCH] Exception wrapping --- app/Display/ScreenNative.cs | 3 ++- app/Helpers/ClamshellModeControl.cs | 31 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/Display/ScreenNative.cs b/app/Display/ScreenNative.cs index e2346aaa..1b62de44 100644 --- a/app/Display/ScreenNative.cs +++ b/app/Display/ScreenNative.cs @@ -166,7 +166,8 @@ namespace GHelper.Display { try { - var devices = GetAllDevices().ToArray(); + var devicesList = GetAllDevices(); + var devices = devicesList.ToArray(); string internalName = AppConfig.GetString("internal_display"); foreach (var device in devices) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index 16b7492e..c1f6793b 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -15,22 +15,29 @@ namespace GHelper.Helpers public bool IsExternalDisplayConnected() { - var devices = ScreenInterrogatory.GetAllDevices().ToArray(); - - string internalName = AppConfig.GetString("internal_display"); - - foreach (var device in devices) + try { - if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL && - device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED - && device.monitorFriendlyDeviceName != internalName) + var devicesList = ScreenInterrogatory.GetAllDevices(); + var devices = devicesList.ToArray(); + + string internalName = AppConfig.GetString("internal_display"); + + foreach (var device in devices) { - Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString()); + if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL && + device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED + && device.monitorFriendlyDeviceName != internalName) + { + Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString()); + + //Already found one, we do not have to check whether there are more + return true; + } - //Already found one, we do not have to check whether there are more - return true; } - + } catch (Exception ex) + { + Logger.WriteLine(ex.ToString()); } return false;