Skip to content

Ble - Bluetooth LE communication - #233

Merged
sameerasw merged 10 commits into
developfrom
ble
May 19, 2026
Merged

Ble - Bluetooth LE communication#233
sameerasw merged 10 commits into
developfrom
ble

Conversation

@sameerasw

Copy link
Copy Markdown
Owner

This pull request introduces Bluetooth Low Energy (BLE) support to the macOS app, enabling device connection, communication, and clipboard sync over BLE. The main changes include the addition of BLE management classes, integration of BLE state and actions into the app's state management, and support for chunked data transfer to handle BLE's data size limitations.

Bluetooth Low Energy (BLE) Integration

  • Added a new BLECentralManager class to handle BLE scanning, connection, authentication, service/characteristic discovery, chunked data transfer, and connection state management. This class uses Combine publishers to provide connection status updates and device information.
  • Introduced BLEConstants to centralize BLE service and characteristic UUIDs, protocol constants, and chunking parameters.
  • Implemented BLEChunkUtil for splitting and reassembling large payloads into BLE-compliant chunks, including header parsing utilities.

App State and Clipboard Sync Enhancements

  • Integrated BLE state management into AppState, including new published properties (isBLEEnabled, isBLEAutoConnectEnabled), persistence to UserDefaults, BLE connection status handling, and device management for BLE-connected devices. [1] [2] [3] [4] [5]
  • Enhanced clipboard sync to also send clipboard updates over BLE in addition to the existing WebSocket mechanism.

UX and Device Handling Improvements

  • When disconnecting or logging out, the app now ensures BLE connections are properly terminated and BLE-related state is reset.
  • Improved logic for determining if the connection is over the local network or BLE, ensuring accurate status reporting.

Assets

  • Added a Bluetooth logo asset for use in the UI, likely to indicate BLE status or features.

@sameerasw sameerasw self-assigned this May 19, 2026
@sameerasw sameerasw added the enhancement New feature or request label May 19, 2026
@sameerasw
sameerasw merged commit dfa73d8 into develop May 19, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in AirSync Features and Bugs May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant