diff --git a/AudioPriorityBar/Services/PriorityManager.swift b/AudioPriorityBar/Services/PriorityManager.swift index 337dc2f..aa67983 100644 --- a/AudioPriorityBar/Services/PriorityManager.swift +++ b/AudioPriorityBar/Services/PriorityManager.swift @@ -179,10 +179,21 @@ class PriorityManager { } func unhideDevice(_ device: AudioDevice) { - let key = hiddenKey(for: device) - var hidden = defaults.array(forKey: key) as? [String] ?? [] - hidden.removeAll { $0 == device.uid } - defaults.set(hidden, forKey: key) + // For outputs, remove from BOTH hidden category lists so the device + // becomes visible regardless of which mode the user is currently in. + // Otherwise clicking "unhide" in the ignored popover can silently + // land the device in a category whose section is not currently shown. + let keys: [String] + if device.type == .input { + keys = [hiddenMicsKey] + } else { + keys = [hiddenSpeakersKey, hiddenHeadphonesKey] + } + for key in keys { + var hidden = defaults.array(forKey: key) as? [String] ?? [] + hidden.removeAll { $0 == device.uid } + defaults.set(hidden, forKey: key) + } } func unhideDevice(_ device: AudioDevice, fromCategory category: OutputCategory) { diff --git a/AudioPriorityBar/Views/DeviceListView.swift b/AudioPriorityBar/Views/DeviceListView.swift index 4077372..f9a1d05 100644 --- a/AudioPriorityBar/Views/DeviceListView.swift +++ b/AudioPriorityBar/Views/DeviceListView.swift @@ -21,7 +21,7 @@ struct DeviceListView: View { var body: some View { VStack(spacing: 4) { - ForEach(Array(devices.enumerated()), id: \.element.id) { index, device in + ForEach(Array(devices.enumerated()), id: \.element) { index, device in DraggableDeviceRow( device: device, index: index, diff --git a/AudioPriorityBar/Views/MenuBarView.swift b/AudioPriorityBar/Views/MenuBarView.swift index 39b5354..2b94933 100644 --- a/AudioPriorityBar/Views/MenuBarView.swift +++ b/AudioPriorityBar/Views/MenuBarView.swift @@ -373,7 +373,7 @@ struct HiddenDevicesToggleView: View { .buttonStyle(.plain) .popover(isPresented: $isExpanded, arrowEdge: .bottom) { VStack(alignment: .leading, spacing: 4) { - ForEach(allHiddenDevices, id: \.id) { device in + ForEach(allHiddenDevices, id: \.self) { device in HiddenDeviceRow(device: device) } }