Skip to content

Conversation

@Erhannis
Copy link

As in woodemi/quick_blue#126 :
As it was, any of several different mistakes (such as not discovering services before trying to read a characteristic) would cause a PlatformException to be thrown in an unawaited Future, crashing the whole app. I've converted all such methods as I've found from void to async Future, enabling the user to await their completion or add a catchError. I also added a stack trace to a number of otherwise more opaque errors.

I split the async and trace changes into two commits, this time.
Also - I noticed a number of other places where async methods are called without either awaiting them nor handling errors. "If the future completes with an error, it was likely a mistake to not await it. That error will still occur and will be considered unhandled...." ( https://api.dart.dev/stable/2.15.1/dart-async/unawaited.html ) I wasn't sure in these cases whether the correct behavior was to await, or add an error handler, so I marked the ones I saw with a TODO comment. I didn't really search for them, though, so I expect there are still other examples.

@Erhannis
Copy link
Author

Oh - it should perhaps be noted that I only added the stack traces to the invokeMethod errors in QuickBlue for Android.

@NeariX67
Copy link

Appreciate the merge of my fork. However, please note that the serviceUUID-Filter is not implemented for Linux.

Credits for the fix of some crashes under windows: https://github.com/Yongle-Fu/flutter_blue_plus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants