diff --git a/CHANGELOG.md b/CHANGELOG.md index 866eadc..9250189 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,11 @@ **New Features:** - Support for Shimano Di2 - Support Keyboard shortcuts with modifier keys (Ctrl, Alt, Shift, ...) +- Support cheap BLE HID remotes **Fixes:** -- fix detection of Elite Square Sterzo devices +- fix detection of Elite Square Sterzo devices +- recognize cheap Bluetooth device clicks also when SwiftControl is in the background ### 3.3.0 (31-10-2025) diff --git a/README.md b/README.md index 6d48d38..f2eb1ae 100644 --- a/README.md +++ b/README.md @@ -51,8 +51,9 @@ Check the compatibility matrix below! - Elite Square Smart Frame (beta) - Gamepads (beta) - Cheap Bluetooth buttons such as [these](https://www.amazon.com/s?k=bluetooth+remote) (beta) + - BLE HID devices and classic Bluetooth HID devices are supported - works on Android - - on iOS, macOS and Windows it would require SwiftControl to act as media player - let me know if that works for you + - on iOS and macOS requires SwiftControl to act as media player Support for other devices can be added; check the issues tab here on GitHub. diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root deleted file mode 120000 index 945c9b4..0000000 --- a/_codeql_detected_source_root +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file diff --git a/lib/bluetooth/connection.dart b/lib/bluetooth/connection.dart index 2bf71f6..bd399fd 100644 --- a/lib/bluetooth/connection.dart +++ b/lib/bluetooth/connection.dart @@ -6,7 +6,6 @@ import 'package:dartx/dartx.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:gamepads/gamepads.dart'; -import 'package:media_key_detector/media_key_detector.dart'; import 'package:swift_control/bluetooth/devices/bluetooth_device.dart'; import 'package:swift_control/bluetooth/devices/gamepad/gamepad_device.dart'; import 'package:swift_control/bluetooth/devices/hid/hid_device.dart'; @@ -167,9 +166,6 @@ class Connection { if (settings.getMyWhooshLinkEnabled() && settings.getTrainerApp() is MyWhoosh && !whooshLink.isStarted.value) { startMyWhooshServer(); } - mediaKeyDetector.addListener((mediaKey) { - print('Media key pressed: $mediaKey'); - }); } Future startMyWhooshServer() { diff --git a/lib/bluetooth/devices/shimano/shimano_di2.dart b/lib/bluetooth/devices/shimano/shimano_di2.dart index 9d49dc1..c81a7ec 100644 --- a/lib/bluetooth/devices/shimano/shimano_di2.dart +++ b/lib/bluetooth/devices/shimano/shimano_di2.dart @@ -45,7 +45,7 @@ class ShimanoDi2 extends BluetoothDevice { final readableIndex = index + 1; _lastButtons[index] = value; - getOrAddButton( + actionHandler.supportedApp?.keymap.getOrAddButton( 'D-Fly Channel $readableIndex', () => ControllerButton('D-Fly Channel $readableIndex'), );