How can I detect what input is being received so I can dynamically change the UI (Input System)?

I’m trying to change my UI based on what the player is using. For example, if I’m using keyboard/mouse I want to display UI button prompts for Keyboard/mouse, same goes if I start using Gamepad, touchscreen, etc…

Previously I was using Player Input Component to handle that but ran into issues with using the On-screen stick as it tried to auto-switch to gamepad even though I was simulating a mobile device. This prevent me from using a virtual joystick and the touchscreen. So, I got rid of the Player Input Component entirely and was able to use the joystick and the touchscreen.

I feel like this shouldn’t be that difficult, but, I’ve look everywhere and haven’t found a clear solution.

You can use InputSystem.devices to get a list of all connected devices : Class InputSystem | Input System | 1.0.2