@@ -20,14 +20,19 @@ class DeviceInteractionTab extends StatelessWidget {
2020 final DiscoveredDevice device;
2121
2222 @override
23- Widget build (BuildContext context) => Consumer3 <BleDeviceConnector , ConnectionStateUpdate , BleDeviceInteractor >(
24- builder: (_, deviceConnector, connectionStateUpdate, serviceDiscoverer, __) => _DeviceInteractionTab (
23+ Widget build (BuildContext context) => Consumer4 <BleDeviceConnector ,
24+ DeviceBondState , ConnectionStateUpdate , BleDeviceInteractor >(
25+ builder: (_, deviceConnector, bondState, connectionStateUpdate,
26+ serviceDiscoverer, __) =>
27+ _DeviceInteractionTab (
2528 viewModel: DeviceInteractionViewModel (
2629 deviceId: device.id,
30+ bondState: bondState,
2731 connectableStatus: device.connectable,
2832 connectionStatus: connectionStateUpdate.connectionState,
2933 deviceConnector: deviceConnector,
30- discoverServices: () => serviceDiscoverer.discoverServices (device.id),
34+ discoverServices: () =>
35+ serviceDiscoverer.discoverServices (device.id),
3136 readRssi: () => serviceDiscoverer.readRssi (device.id),
3237 ),
3338 ),
@@ -40,6 +45,7 @@ class DeviceInteractionViewModel extends $DeviceInteractionViewModel {
4045 const DeviceInteractionViewModel ({
4146 required this .deviceId,
4247 required this .connectableStatus,
48+ required this .bondState,
4349 required this .connectionStatus,
4450 required this .deviceConnector,
4551 required this .discoverServices,
@@ -48,14 +54,16 @@ class DeviceInteractionViewModel extends $DeviceInteractionViewModel {
4854
4955 final String deviceId;
5056 final Connectable connectableStatus;
57+ final DeviceBondState bondState;
5158 final DeviceConnectionState connectionStatus;
5259 final BleDeviceConnector deviceConnector;
5360 final Future <int > Function () readRssi;
5461
5562 @CustomEquality (Ignore ())
5663 final Future <List <Service >> Function () discoverServices;
5764
58- bool get deviceConnected => connectionStatus == DeviceConnectionState .connected;
65+ bool get deviceConnected =>
66+ connectionStatus == DeviceConnectionState .connected;
5967
6068 void connect () {
6169 deviceConnector.connect (deviceId);
@@ -110,7 +118,8 @@ class _DeviceInteractionTabState extends State<_DeviceInteractionTab> {
110118 delegate: SliverChildListDelegate .fixed (
111119 [
112120 Padding (
113- padding: const EdgeInsetsDirectional .only (top: 8.0 , bottom: 16.0 , start: 16.0 ),
121+ padding: const EdgeInsetsDirectional .only (
122+ top: 8.0 , bottom: 16.0 , start: 16.0 ),
114123 child: Text (
115124 "ID: ${widget .viewModel .deviceId }" ,
116125 style: const TextStyle (fontWeight: FontWeight .bold),
@@ -137,27 +146,39 @@ class _DeviceInteractionTabState extends State<_DeviceInteractionTab> {
137146 style: const TextStyle (fontWeight: FontWeight .bold),
138147 ),
139148 ),
149+ Padding (
150+ padding: const EdgeInsetsDirectional .only (start: 16.0 ),
151+ child: Text (
152+ "Bond status: ${widget .viewModel .bondState }" ,
153+ style: const TextStyle (fontWeight: FontWeight .bold),
154+ ),
155+ ),
140156 Padding (
141157 padding: const EdgeInsets .only (top: 16.0 ),
142158 child: Wrap (
143159 alignment: WrapAlignment .spaceEvenly,
144160 children: < Widget > [
145161 ElevatedButton (
146- onPressed: ! widget.viewModel.deviceConnected ? widget.viewModel.connect : null ,
162+ onPressed: ! widget.viewModel.deviceConnected
163+ ? widget.viewModel.connect
164+ : null ,
147165 child: const Text ("Connect" ),
148166 ),
149167 ElevatedButton (
150- onPressed: widget.viewModel.deviceConnected ? widget.viewModel.disconnect : null ,
168+ onPressed: widget.viewModel.deviceConnected
169+ ? widget.viewModel.disconnect
170+ : null ,
151171 child: const Text ("Disconnect" ),
152172 ),
153173 ElevatedButton (
154- onPressed: widget.viewModel.deviceConnected ? discoverServices : null ,
174+ onPressed: widget.viewModel.deviceConnected
175+ ? discoverServices
176+ : null ,
155177 child: const Text ("Discover Services" ),
156178 ),
157179 ElevatedButton (
158- onPressed: widget.viewModel.deviceConnected
159- ? readRssi
160- : null ,
180+ onPressed:
181+ widget.viewModel.deviceConnected ? readRssi : null ,
161182 child: const Text ("Get RSSI" ),
162183 ),
163184 ],
@@ -222,7 +243,8 @@ class _ServiceDiscoveryListState extends State<_ServiceDiscoveryList> {
222243 Widget _characteristicTile (Characteristic characteristic) => ListTile (
223244 onTap: () => showDialog <void >(
224245 context: context,
225- builder: (context) => CharacteristicInteractionDialog (characteristic: characteristic),
246+ builder: (context) =>
247+ CharacteristicInteractionDialog (characteristic: characteristic),
226248 ),
227249 title: Text (
228250 '${characteristic .id }\n (${_characteristicSummary (characteristic )})' ,
@@ -253,7 +275,9 @@ class _ServiceDiscoveryListState extends State<_ServiceDiscoveryList> {
253275 ),
254276 Column (
255277 mainAxisSize: MainAxisSize .min,
256- children: service.characteristics.map (_characteristicTile).toList (),
278+ children: service.characteristics
279+ .map (_characteristicTile)
280+ .toList (),
257281 ),
258282 ],
259283 ),
0 commit comments