Commit Graph

26 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
b6ed1c047d Add Android global actions support
Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
2026-01-17 12:06:48 +00:00
Jonas Bark
8ac6f58d8e fix detection for hardware buttons when BikeControl is in foreground, change notification icon 2026-01-16 12:38:10 +01:00
Jonas Bark
c8613b5975 fix implementation 2026-01-12 18:42:54 +01:00
copilot-swe-agent[bot]
14e6c1186c Address code review feedback: memory leak and thread safety
- Store keymap update subscription to allow cancellation on re-init
- Fix List<String?> to List<String> in setHandledKeys signature
- Use ConcurrentHashMap.newKeySet() for thread-safe handledKeys access
- Clear and update the set instead of replacing it

Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
2026-01-12 16:52:22 +00:00
copilot-swe-agent[bot]
823eb9e9a4 Change approach: Use keymap-based filtering for HID key events
- Add setHandledKeys API to pass list of keys with keymaps to Android side
- Android AccessibilityService checks if key is in handled keys set before swallowing
- Dart side updates handled keys list whenever keymap changes
- Remove hardcoded media/volume key filtering
- This allows keyboards to work for typing while still capturing mapped keys

Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
2026-01-12 16:49:19 +00:00
copilot-swe-agent[bot]
89c9ed598c Fix Android accessibility service to only intercept media/volume keys
- Add isMediaOrVolumeKey() helper to filter key events by key code
- Only swallow media and volume keys (play/pause, next, volume up/down, etc.)
- Let all other keys (typing keys, navigation, etc.) pass through to the system
- This fixes Bluetooth keyboard interference when BikeControl is running

Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
2026-01-12 16:36:18 +00:00
Jonas Bark
73a0fe6203 fix hid device functionality when accessibility service is active 2025-12-05 19:48:34 +01:00
Jonas Bark
fefcb1db53 status widget for accessibility service 2025-11-23 20:57:52 +00:00
Jonas Bark
231aadbc27 detect media key source - don't handle it when coming from phone #110 2025-11-08 22:31:12 +01:00
Jonas Bark
820d0b37db allow to ignore HID device input 2025-11-04 10:05:52 +01:00
Jonas Bark
c18ac16208 support HID key events on Android #110 2025-11-04 09:53:52 +01:00
Jonas Bark
b669d4c5ea Android: fix touches for very old Android versions 2025-10-19 08:55:15 +02:00
Jonas Bark
54b2f73384 fix delayed clicks in some apps 2025-10-02 21:05:15 +02:00
Jonas Bark
221d5a0b8d fix crashes on some Android devices 2025-09-27 12:18:50 +02:00
Jonas Bark
2195c19ed9 allow long touches / keyboard presses (fixes #61) 2025-09-08 14:01:28 +02:00
copilot-swe-agent[bot]
93bdfeeaa7 Refactor action method parameters from isPressed/isRepeated to isKeyDown/isKeyUp
Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com>
2025-09-07 10:18:20 +00:00
Jonas Bark
ada4cf0dfd Android: better approximation of button placement for freeform windows 2025-04-07 15:21:45 +02:00
Jonas Bark
11aec5fba1 Zwift Ride: add buttonPowerDown to shift gears
Zwift Play: Fix buttonShift assignment
Android: fix Media next button
2025-03-31 20:20:47 +02:00
Jonas Bark
32e8fc9bf5 try to resolve https://github.com/jonasbark/swiftcontrol/issues/3#issuecomment-2763361122 2025-03-29 14:37:07 +01:00
Jonas Bark
cf9401d81c resolve https://github.com/jonasbark/swiftcontrol/issues/2 2025-03-29 12:53:27 +01:00
Jonas Bark
9a88313199 control media (Android only for now), add menu 2025-03-28 15:24:25 +01:00
Jonas Bark
5ed4865562 fix android window foreground issue 2025-03-27 19:57:34 +01:00
Jonas Bark
9c46cf67ca Android works 2025-03-27 18:17:25 +01:00
Jonas Bark
73bf894cd0 foreground notification on Android 2025-03-27 17:44:27 +01:00
Jonas Bark
c46253a77f accessibility implementation #2 2025-03-27 16:38:01 +01:00
Jonas Bark
e60c6a4707 accessibility implementation #1 2025-03-27 16:15:53 +01:00