Commit Graph

73 Commits

Author SHA1 Message Date
Kevin Evans 5689e551f7 fix: confusing param name (#182)
* fix: confusing param name

* Update lib/src/universal_ble.dart

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update lib/src/universal_ble.dart

Co-authored-by: Navideck Labs <130186950+navidecklabs@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Navideck Labs <130186950+navidecklabs@users.noreply.github.com>
2025-10-03 21:58:50 +02:00
Rohit Sangwan af873b3153 Implement exclusion filter (#175)
* Implement exclusion filter

* Fix web filters

* Apply Ai Suggestions

* Fix scanFilterTest

* Resolve Ai comments

* Update readme and changelog

* Update CHANGELOG.md

Co-authored-by: Foti Dim <foti@navideck.com>

* Update exclusion filter doc

* Fix wording

---------

Co-authored-by: Foti Dim <foti@navideck.com>
Co-authored-by: Foti Dim <fotios.dimanidis@a2zebra.de>
2025-09-01 10:31:56 +03:00
Rohit Sangwan 71e19988a9 Add clear queue api (#171)
* Add clear queue api

* Minor improvement

* Update changelog

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-07-16 12:36:39 +02:00
Rohit Sangwan 0f4bae71e1 Add timeout argument to all APIs (#172)
* Add timeout argument to all apis

* Update Version and changelog

* Bump version

* Update readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-07-16 11:47:48 +02:00
Rohit Sangwan 2170588045 Fix characteristic value listener and add tests (#168)
* Improve characteristic value listener

* Implement characteristic tests

* Bump version and update changelog
2025-07-08 08:13:45 +02:00
Rohit Sangwan 0758f5e91d Add high level API (#160)
* Add high-level api extensions for BleDevice and Characteristic

* Add doc comments and move few files to utils

* Add advance documentation

* Make the high level APIs the new default in the readme

* More readme cleanups

* Add pair api, improve notifications apis and deprecate writeValue

* Use highLevel apis in Example

* Rename HighLevel isPaired api to hasPairing api

* Update Readme

* Rename low level readValue api to read and update Readme

* Update UniversalBle to use new apis instead of deprecated internally

* Split queueCommand and queueCommandWithoutTimeout

* Split setNotifiable into subscribeNotifications, subscribeIndications and unsubscribe

* Fix web imports

* Update changelog

* Switch back to isPaired

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>

* Fix BleDevice toString method

* Switch back to isPaired

* Change peripheral to device

* Rename cached to preferCached

* Remove preferCached from discoverServices()

* Update changelog

* Use cached services

* Add ///

* Reverse withoutResponse to withResponse to avoid negation

* Link to low level API

* Move connectionState to public readme

* Rename disableSubscriptions to unsubscribe

* Improve documentation

* Fix getService cache

* Add NotFoundException

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-06-19 13:02:14 +02:00
Rohit Sangwan 72090571a3 Add WebBluetoothGloballyDisabled exception and fix availability state (#165)
* Add WebBluetoothGloballyDisabled exception and fix availability state

* Update changelog and version

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-06-13 00:30:13 +02:00
Foti Dim fa98d2989b Switch to flutter_lints: ^6.0.0 2025-05-29 21:35:04 +02:00
Rohit Sangwan 8069ff52d5 Implement streams to get updates (#155)
* Implement streams to get updates

* Resolve comments

* Update Readme

* Apply suggestions from code review

Co-authored-by: Foti Dim <foti@navideck.com>

* Update Changelog

* Update Readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-05-08 12:52:18 +02:00
tfroidcoeur 3194b0ad49 Fix: linux: getSystemDevices (#154)
Make sure getSystemDevices connects the bluez client first.
This ensures that the list of devices is correctly populated.

Signed-off-by: Tim Froidcoeur <tim.froidcoeur@comate.be>
Co-authored-by: Tim Froidcoeur <tim.froidcoeur@comate.be>
2025-04-26 22:02:49 +02:00
Foti Dim 334bc1c680 Improve docs for isPaired 2025-03-19 22:17:06 +01:00
Foti Dim 3170b4b77b Improve requestMTU() docs (#140)
* Improve requestMTU() docs

* Update Linux info
2025-02-17 08:20:43 +01:00
Foti Dim 2c0d36b9d1 Improve ManufacturerDataFilter (#139)
* Improve-ManufacturerDataFilter-docs

* Improve ManufacturerDataFilter namings and code

* Perform more renamings
Add tests
2025-02-17 06:42:28 +01:00
Rohit Sangwan b1b6b680c1 Improve callbacks error handling (#130)
* Improve callbacks error handling

* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-01-15 17:23:25 +01:00
Rohit Sangwan f3411280e9 Enhance getSystemDevice API on macOS with Broader Default Services Fi… (#121)
* Enhance getSystemDevice API on macOS with Broader Default Services Filter

* Update docs

* Update darwin/Classes/UniversalBlePlugin.swift

Co-authored-by: Foti Dim <foti@navideck.com>

* Reorder fields

* Use ScanFilter ui for getting system devices

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
Co-authored-by: Foti Dim <foti@navideck.com>
2025-01-02 15:58:51 +05:30
Rohit Sangwan 1292199426 Add API to disable Bluetooth (#113)
* Add api to disable Bluetooth

* Implement Android support

* Fix apple build

* Update Readme

* Combine rows

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-12-09 21:18:01 +05:30
Rohit Sangwan 5be22ac0e6 Remove "Characteristic already notifying" error (#110) 2024-12-09 18:48:18 +05:30
Rohit Sangwan 61e1448fe9 Improve Darwin Manager Initialization (#103)
* Improve Darwin Manager Initialization

* throw error on startScan if permission rejected

* Update Changelog
2024-12-05 13:27:53 +05:30
Foti Dim ce06a7fa39 Fix multiple app filtering in Linux (#100) 2024-11-20 16:21:59 +01:00
Foti Dim 4e225b756c Add rawName property
Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-10-08 17:58:38 +02:00
Rohit Sangwan e4b6bd74ba Rename filterMfdList to manufacturerDataFilters and replace mfd with msd 2024-10-03 11:59:14 +05:30
Rohit Sangwan b77d0aaeb4 Add error in connection updates (#89)
* Add error in connection updates

* implement windows

* Update changelog and Docs

* minor fix in connect()

* Add default timeout in connect

* Document new pair and connect API

* Fix Connect and Pair apis to throw proper errors and Improve logging

* remove import

* Rename PairingException and update Exception doc

* Update changelog

* Update comments

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-09-26 23:08:25 +02:00
Foti Dim f41aceaa0e Revert "Add default timeout in Connect, Pair and IsPaired apis"
This reverts commit b978b81cb1.
2024-09-25 16:42:29 +02:00
Foti Dim 4914687284 Rename to triggersConfirmOnlyPairing 2024-09-24 17:33:00 +02:00
Foti Dim 73e4d5e68e Improve comments 2024-09-23 21:07:31 +02:00
Foti Dim 3ecbcb9b43 Rename in-app pairing capabilities (#88) 2024-09-23 07:13:41 +02:00
Foti Dim bf270c2bf4 Fix _triggersPairingWithEncryptedChar condition 2024-09-21 10:11:59 +02:00
Foti Dim c57cc778da Improve supportsInAppPairing documentation 2024-09-19 22:36:09 +02:00
Rohit Sangwan b978b81cb1 Add default timeout in Connect, Pair and IsPaired apis 2024-09-19 12:50:31 +05:30
Foti Dim 694262d9a9 Allow pairing on all platforms
Mark Web/Linux as not supporting in-app pairing
2024-09-18 06:49:11 +02:00
Rohit Sangwan 7dc22c58a5 Improve scan filter api (#78)
* Improve scan filter api

* Implement Windows filters

* Add manufacturerDataList and deprecate manufacturerData

* Fix Windows

* Update Readme and changelog

* Remove import

* Fix Linux

* Update readme and changelog

* Cleanup Todo

* Improve ManufacturerData

* Rename webConfig and Manufacturer.data

* Return false for receivesAdvertisements on Linux/Web

* Add delay in discoverServices on Linux

* Remove import

* Update changelog

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-09-16 23:43:51 +02:00
Foti Dim c37036135d Auto convert all services passed to getSystemDevices 2024-08-16 14:45:47 +02:00
Rohit Sangwan f7c05b2490 Remove error from onPairingStateChange (#75)
* Remove error from onPairingStateChange

* Update ChangeLog and Readme

* Update Changelog
2024-08-13 16:19:21 +02:00
Foti Dim 40819d5796 Return pair result 2024-08-12 21:15:56 +02:00
Foti Dim 7606e8fd29 Implement pairing on Apple (#59) 2024-08-09 22:42:40 +02:00
Rohit Sangwan 5ce6c3d362 Improve web support (#66)
* Improve web support

* Rename to _hasSelectedCharacteristicProperty

* Update comment

* Make _bleService private

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-07-31 09:28:50 +02:00
Rohit Sangwan 28b0bc6b7c Add platform specific options in start scan (#65)
* Add platform specific options in start scan

* Add code level doc and ChangeLog

* Minor improvements
2024-07-21 17:05:29 +02:00
Rohit Sangwan 0d6b612497 Receive advertisement events on web (#63)
* Fix web manufacturer discovery

* Minor Fixes

* Cleanups

* Add canWatchAdvertisements api

* Improve Cleanups

* Improve code level documentation

* Improve documentation

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-07-19 10:39:49 +02:00
Foti Dim c0c678c735 Trim spaces in UUIDs 2024-07-15 11:53:00 +02:00
Foti Dim efaa72acbd Improve BleUuid API and tests (#62)
* Improve tests

* Fix tests

* More improvements and ToDos

* Final API changes
Add tests

* Update readme

---------

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-07-15 05:59:30 +02:00
Rohit Sangwan dffbbd4ba6 Allow modification of ScanFilter properties 2024-07-12 16:23:17 +05:30
Rohit Sangwan 9cade4a6ee Fix UUID parsing on Web 2024-07-12 11:44:39 +05:30
Rohit Sangwan 9bb209f8b5 Unify UUID formatting (#55)
* Unify UUID formatting

* Update Readme

* Update Readme

* Apply suggestions from code review

Co-authored-by: Foti Dim <foti@navideck.com>

* Resolve Comments

* Add test and support 32bit uuid parsing

* Add a toString() method to the BleDevice class for easier debugging and logging

* Rename Uuid to BleUuid

* Rename uuid file to ble_uuid

* Update Readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-07-05 17:53:55 +02:00
Rohit Sangwan 8d0cfe98d9 Add connecting and disconnecting states to BleConnectionState (#54)
* Add connecting and disconnecting state

* Replace BleConnectionState with boolean in onConnectionChanged callback

* Improve Docs and Changelog

* Implement GetConnectionState in Windows

* Update CHANGELOG.md

Co-authored-by: Foti Dim <foti@navideck.com>

* Add  code level doc of connectionState getter

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-06-20 20:47:02 +02:00
Foti Dim 796bb14ccc Do not initialize global queue if not needed (#53) 2024-06-17 10:39:17 +02:00
Foti Dim 15453eb28f Rename onConnectionChanged and onValueChanged
Update changelog
Format files
2024-06-15 09:13:01 +02:00
Foti Dim 58677246b3 Improve queue naming 2024-06-13 22:40:06 +02:00
Foti Dim 6361574b77 Add connection properties in BleDevice (#50)
* Rename to BleDevice

* Add isConnected property

* Make isConnected true

* Add isConnected api

* Implement Windows

* Merge add-isConnected-api

* Rename getConnectedDevices to getSystemDevices

* Add code level Doc for isConnected

* Add isPaired

* Revert isPaired

* Add isSystemDevice property in BleDevice

* Return enum instead of bool

---------

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-06-13 16:14:54 +02:00
Rohit Sangwan b74191bb97 Implement pairing with dialog on windows (#46)
* Implement pairing with dialog on windows

* Minor fix

* Add pin pairing request for windows 10

* Implement native windows dialog for asking pin pairing

* Cleanups

* Improve pairing dialog ui

* Use PairAsync for Windows 11

* Fix OK button text

* Improve pin entry layout

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>

* Dialog adjustments

* Make dialog non resizable

* Make window topmost

* Final adjustments

* Update changelog

* Release dialog resources properly

* Release dialog resources properly

* Remove duplicate import

* Minor Fix

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-06-11 12:28:25 +02:00
Rohit Sangwan 2fe21962d2 Add queue per device (#48)
* Add queue per device

* Improve API and documentation

* Update lib/src/universal_ble.dart

* Update lib/src/ble_command_queue.dart

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
Co-authored-by: Foti Dim <foti@navideck.com>
2024-06-07 20:55:46 +05:30