diff --git a/An2WinFileTransfer/An2WinFileTransfer/Services/DeviceService.cs b/An2WinFileTransfer/An2WinFileTransfer/Services/DeviceService.cs index 323e055..47e71ca 100644 --- a/An2WinFileTransfer/An2WinFileTransfer/Services/DeviceService.cs +++ b/An2WinFileTransfer/An2WinFileTransfer/Services/DeviceService.cs @@ -7,28 +7,40 @@ namespace An2WinFileTransfer.Services { public class DeviceService { + private readonly IEnumerable _mediaDevices; + + public DeviceService() + { + _mediaDevices = MediaDevice.GetDevices(); + } + public IEnumerable GetConnectedDeviceNames() { - return MediaDevice.GetDevices().Select(d => d.FriendlyName); + return _mediaDevices.Select(d => d.FriendlyName); } public MediaDevice ConnectToDevice(string deviceName) { - var device = MediaDevice.GetDevices() - .FirstOrDefault(d => d.FriendlyName == deviceName); + var device = _mediaDevices.FirstOrDefault(d => d.FriendlyName == deviceName); if (device == null) { throw new InvalidOperationException($"Device '{deviceName}' not found."); } - device.Connect(); + if (!device.IsConnected) + { + device.Connect(); + } + return device; } public void DisconnectDevice(MediaDevice device) { - if (device?.IsConnected == true) + if (device == null) return; + + if (device.IsConnected) { device.Disconnect(); } diff --git a/An2WinFileTransfer/An2WinFileTransfer/UI/Forms/FormMain.cs b/An2WinFileTransfer/An2WinFileTransfer/UI/Forms/FormMain.cs index 6a2ed10..963c061 100644 --- a/An2WinFileTransfer/An2WinFileTransfer/UI/Forms/FormMain.cs +++ b/An2WinFileTransfer/An2WinFileTransfer/UI/Forms/FormMain.cs @@ -7,7 +7,6 @@ using An2WinFileTransfer.Extensions; using An2WinFileTransfer.Models; using An2WinFileTransfer.Services; -using MediaDevices; namespace An2WinFileTransfer.UI.Forms { @@ -169,16 +168,14 @@ private IEnumerable LoadFileTypes() private void PopulateDeviceList() { - _connectedDevices = MediaDevice.GetDevices().Select(d => d.FriendlyName); + _connectedDevices = _deviceService.GetConnectedDeviceNames(); -#if !DEBUG if (_connectedDevices.IsNullOrEmpty()) { MessageBox.Show("No connected MTP devices found. Please connect your device and enable file transfer mode.", "No Devices Found", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } -#endif comboBoxDeviceNames.Items.Clear(); comboBoxDeviceNames.Items.AddRange(_connectedDevices.OrderBy(n => n).ToArray());