Improve web support (#66)
* Improve web support * Rename to _hasSelectedCharacteristicProperty * Update comment * Make _bleService private --------- Co-authored-by: Foti Dim <fdimanidis@gmail.com>
This commit is contained in:
@@ -152,7 +152,10 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
selectedCharacteristic!.service.uuid,
|
||||
selectedCharacteristic!.characteristic.uuid,
|
||||
value,
|
||||
BleOutputProperty.withResponse,
|
||||
_hasSelectedCharacteristicProperty(
|
||||
[CharacteristicProperty.writeWithoutResponse])
|
||||
? BleOutputProperty.withoutResponse
|
||||
: BleOutputProperty.withResponse,
|
||||
);
|
||||
_addLog('Write', value);
|
||||
} catch (e) {
|
||||
@@ -187,17 +190,6 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
}
|
||||
}
|
||||
|
||||
bool isValidProperty(List<CharacteristicProperty> properties) {
|
||||
for (CharacteristicProperty property in properties) {
|
||||
if (selectedCharacteristic?.characteristic.properties
|
||||
.contains(property) ??
|
||||
false) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@@ -307,7 +299,7 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
),
|
||||
),
|
||||
|
||||
if (isValidProperty([
|
||||
if (_hasSelectedCharacteristicProperty([
|
||||
CharacteristicProperty.write,
|
||||
CharacteristicProperty.writeWithoutResponse
|
||||
]))
|
||||
@@ -375,7 +367,7 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
PlatformButton(
|
||||
enabled: isConnected &&
|
||||
discoveredServices.isNotEmpty &&
|
||||
isValidProperty([
|
||||
_hasSelectedCharacteristicProperty([
|
||||
CharacteristicProperty.read,
|
||||
]),
|
||||
onPressed: _readValue,
|
||||
@@ -384,7 +376,7 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
PlatformButton(
|
||||
enabled: isConnected &&
|
||||
discoveredServices.isNotEmpty &&
|
||||
isValidProperty([
|
||||
_hasSelectedCharacteristicProperty([
|
||||
CharacteristicProperty.write,
|
||||
CharacteristicProperty.writeWithoutResponse
|
||||
]),
|
||||
@@ -394,7 +386,7 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
PlatformButton(
|
||||
enabled: isConnected &&
|
||||
discoveredServices.isNotEmpty &&
|
||||
isValidProperty([
|
||||
_hasSelectedCharacteristicProperty([
|
||||
CharacteristicProperty.notify,
|
||||
CharacteristicProperty.indicate
|
||||
]),
|
||||
@@ -405,7 +397,7 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
PlatformButton(
|
||||
enabled: isConnected &&
|
||||
discoveredServices.isNotEmpty &&
|
||||
isValidProperty([
|
||||
_hasSelectedCharacteristicProperty([
|
||||
CharacteristicProperty.notify,
|
||||
CharacteristicProperty.indicate
|
||||
]),
|
||||
@@ -476,4 +468,11 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
bool _hasSelectedCharacteristicProperty(
|
||||
List<CharacteristicProperty> properties) =>
|
||||
properties.any((property) =>
|
||||
selectedCharacteristic?.characteristic.properties
|
||||
.contains(property) ??
|
||||
false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user