Show preview and testing devices
New Feature
In this PR I added the ability to interact with both Preview simulators and Testing (clone) simulators. Having the ability to manage preview and testing simulators can be very helpful during development.
[!WARNING] This is not a complete implementation. There are bugs throughout the app when a preview or testing simulator is selected. Certain actions are not available.
[!IMPORTANT] This is where I am asking for help to polish the app to get this merged into the main codebase. That is why I have created this as a draft pull request.
Copilot Summary
This pull request introduces a new concept of "Device Groups" to the ControlRoom application, allowing users to group and filter simulators based on predefined categories such as "Default," "Testing," and "Previews." The changes span multiple files, adding support for this feature in the user interface, preferences, and simulator management logic.
Device Group Feature:
-
New
DeviceGroupEnum: Introduced aDeviceGroupenum inSimCtl+Types.swiftto define groups like.default,.testing, and.previews, each with adisplayNameand associatedcommands. This provides a structured way to handle device group configurations. -
Device Group in Preferences: Added a new
@AppStoragepropertydeviceGroupinPreferences.swiftto persist the selected device group across app launches. -
Command Updates for Device Groups: Modified the
SimCtl.Commandinitializer inSimCtl+SubCommands.swiftto include device group-specific commands, enabling the appropriate configuration for each group.
Integration with Simulators:
- Simulator Loading Logic: Updated
SimulatorsController.swiftto reload simulators when the selected device group changes, ensuring the displayed simulators match the current group setting. [1] [2]
User Interface Enhancements:
- Device Group Picker in Sidebar: Added a
Pickerto theSidebarView.swifttoolbar, allowing users to select the desired device group directly from the sidebar UI.