Commit Graph

44 Commits

Author SHA1 Message Date
Foti Dim bcf65e4573 Improve example app (#210)
* Improve example app

- Introduced utility functions for sorting BLE services and filtering characteristics based on properties.
- Updated the peripheral detail page to support reading all characteristics and improved value formatting for better readability.
- Added navigation functionality for adjacent characteristics and integrated property filters in the services list widget.
- Enhanced the services side widget to manage selected properties and provide a clearer UI for service interactions.
- Implemented copy functionality for logs and improved overall user experience in the peripheral details section.

* Remove expandable

* Automatically start scanning on launch

* Show loading indicator for discovering services

* Decrease the height of TextFormField
2026-01-23 07:29:28 +01:00
Foti Dim 1334057a8a Show and filter by company name (#208)
* Update company identifier handling and enhance scanning features

- Updated `pubspec.lock` to version 1.2.0 and added `yaml` dependency.
- Introduced `CompanyIdentifierService` for loading and querying company identifiers from a new YAML file.
- Enhanced scanning functionality to support filtering by company names and IDs.
- Updated UI components to display company names alongside manufacturer data in scanned items.
- Improved search functionality to include company names in the filter criteria.

* Address AI comments

* Address AI comments

* Allow searching by company id

* Remove redundant loading state update in CompanyIdentifierService

* Enhance company ID parsing in CompanyIdentifierService

- Updated the `_parseCompanyId` method to support additional formats for company IDs, including non-prefixed strings interpreted as decimal or hexadecimal based on their content.
- Improved parsing logic to first attempt hexadecimal conversion if the string contains hex characters, enhancing flexibility in input handling.
2026-01-19 05:35:19 +01:00
Foti Dim 2a65823e6c Update Bluetooth scanning UI and functionality
- Bump version to 1.2.0 in pubspec.lock.
- Enhance ScannerScreen with a Bluetooth availability tooltip and improved search filter UI.
- Refactor AppDrawer to include a queue type selection feature.
- Update ScannedDevicesPlaceholderWidget to include a 'Start Scan' button for better user interaction.
- Improve overall layout and styling for better user experience.
2026-01-18 17:11:22 +01:00
Foti Dim 395bb548c9 Fix clear log button 2026-01-12 17:48:58 +01:00
Foti Dim a5b6af6168 Enforce cxx_std_20 (#205)
* Enforce cxx_std_20

* Bump version

* Switch to private
2026-01-05 16:12:31 +01:00
Foti Dim dad326ccff Add device preview 2025-12-21 09:46:17 +01:00
Rohit Sangwan 895dcbe343 Improve example app UI (#193)
* Improve example app ui

* Store favorite services in local storage

* Use Text instead of SelectableText

* Improve colors

* Fix flutter analyzer issues

* Revert example app minimum sdk requirement

* Implement hasPermission api and improve ui flow

* More ui improvements

* Improve ScannedItem ui

* Improve control ui

* Change color theme to blue

* Minor improvements wip

* improve responsive ui and flow

* More improvements

* More improvements

* Update Mac podfile

* Fix home page scroll view

* Update app and package name

* Revert changelog

* Resolve Ai comments

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-12-21 08:51:36 +01:00
Rohit Sangwan 97936046e0 Implement hasPermissions API (#201)
* Implement hasPermissions api

* Bump minimum MacOS version to 10.15

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-12 22:10:21 +01:00
Rohit Sangwan 89abb3bf03 Implement Logging (#199)
* Implement Logging

* Add timestamp in OnValueChanged

* improve web and linux logging

* Implement windows and format pigeon

* Fix windows build and unity log level

* Log commands with timestamp

* Fix code doc

* Remove unnecessary import

* Update docs

* Fix crash on windows 11 because of failed pairing

* Update changelog

* Fix native code formatting
2025-12-12 18:56:43 +05:30
Rohit Sangwan 970db165dd Implement requestPermission API (#190)
* Implement requestPermission api

* Update example ios podfile

* Update example windows dependencies

* Update Readme and Changelog

* Resolve Ai Comments

* Improve bluetooth permission handling

* Update Readme

* Improve readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-11-13 17:22:17 +01: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
Foti Dim 49a9d1defb Bump example app dependencies 2025-08-20 09:06:44 +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
Jonas Greifenhain 4f9ad0b9e6 Fix example app Android builds (#162)
Tested on Web, MacOS, Linux and iOS too - refreshed Podfiles and Runnners
2025-05-29 08:27:08 +02:00
Foti Dim 23e2847a19 Fix service filter warning on macOS example app 2025-05-28 10:36:07 +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
Rohit Sangwan 6cc43ccc86 Fix crash on Windows when calling pair APIs with an unknown deviceId (#141)
* Fix crash on Windows when call few apis with an unknown deviceId

* Update Changelog

* Bump Version
2025-02-20 12:28:33 +01:00
Rohit Sangwan 8b1a21939b Use retrievePeripherals on Mac to communicate with device without scan (#122) 2025-01-02 17:32:08 +05:30
Foti Dim d39f4cd5d3 Bump flutter_web_bluetooth to 1.0.0 (#102) 2024-12-02 10:58:58 +01:00
Foti Dim ce06a7fa39 Fix multiple app filtering in Linux (#100) 2024-11-20 16:21:59 +01: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 7606e8fd29 Implement pairing on Apple (#59) 2024-08-09 22:42:40 +02:00
Rohit Sangwan 95c0b88181 Fix Android notification for characteristics without CCCD (#72)
* Fix Android notification for characteristics without CCCD

* Minor fixes

* Update changelog

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-08-09 09:20:20 +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
Rohit Sangwan 44412508e7 Implement scan filter in example app (#61)
* Implement scan filter in example app

* Remove Fixed FlutterVersion from Workflow and improve ScanFilterWidget

* Update example/lib/home/widgets/scan_filter_widget.dart

* Update example/lib/home/widgets/scan_filter_widget.dart

* Update example/lib/peripheral_details/peripheral_detail_page.dart

* Improve text

---------

Co-authored-by: Foti Dim <foti@navideck.com>
Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-07-12 17:24:00 +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
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
Foti Dim a682ea933d Remove dependency on convert 2024-05-10 13:57:08 +02:00
Rohit Sangwan 05697b7d30 Improve setNotifiation completion (#42)
* Improve setNotifiation completion

* Implement Windows

* Minor android fixes

* Few more fixes

* Update changelog

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-05-10 12:59:10 +02:00
Rohit Sangwan b07a8888e0 Fix windows scan filter (#41)
* Fix windows scan filter

* Bump version and add changelog

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-05-10 09:57:04 +02:00
Foti Dim 57cf39f581 Make variables final and fix formatting in Linux 2024-04-10 22:56:56 +02:00
Rohit Sangwan 870defea86 Update readme and improve logs (#28)
* Update readme and improve logs

* Apply suggestions from code review

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

* Add changelog

* Update Readme

* Update lib/src/universal_ble_web/universal_ble_web.dart

* Improve readme

* Update README.md

* Keep web section

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-03-19 09:22:54 +01:00
Rohit Sangwan fe0a654f36 Implement requestMtu in Linux (#22)
* Implement requestMtu in Linux

* Minor fixes

* Improve requestMtu
2024-03-17 11:48:33 +01:00
Foti Dim d5b111288c Release 0.9.4 2024-03-13 21:05:06 +01:00
Rohit Sangwan 663bc76dfe Improve Windows and Linux error handling (#12)
* Improve windows and linux error handeling

* Send proper error code from windows for write command

* Fix Linux

* Fix getConnectedDevices on windows

---------

Co-authored-by: fotidim <fdimanidis@gmail.com>
Co-authored-by: fotidim <foti@navideck.com>
2024-02-16 19:36:36 +01:00
Rohit Sangwan d187c8de83 Improve native error handling (#10) 2024-02-14 16:40:04 +01:00
Rohit Sangwan edd5ec20a5 Improve logging (#9)
* Improve logging

* Update changelog

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-02-12 12:00:57 +01:00
Rohit Sangwan ed3852a5c9 Improve windows device name discovery (#4)
* Improve windows device name discovery

* Imrove classes and folders structuring

* rename generated files

* Improve windows threads and other fixes

* More optimizations

* Cleanups

* Update .vscode/settings.json

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

* Resolve comments

* Performance improvements

---------

Co-authored-by: Foti Dim <foti@navideck.com>
Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-02-02 12:10:53 +01:00
Rohit Sangwan 531b6139c4 Improve example app (#2)
* Improve example app

* Accept list of hex values in write value field

* Minor fix

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-01-25 18:55:49 +01:00
Foti Dim 9521c2552a Rename pairState and improve readme (#1)
* Improve readme

* rename OnPairStateChange api

---------

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-01-25 17:56:31 +01:00
Foti Dim 1c21373478 Initial commit 2024-01-24 14:23:49 +01:00