diff options
Diffstat (limited to 'lib/widgets/connection_status_button.dart')
-rw-r--r-- | lib/widgets/connection_status_button.dart | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/widgets/connection_status_button.dart b/lib/widgets/connection_status_button.dart new file mode 100644 index 0000000..e0c4cb4 --- /dev/null +++ b/lib/widgets/connection_status_button.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:sense_the_rhythm/utils/esense_input.dart'; +import 'package:sense_the_rhythm/widgets/esense_connect_dialog.dart'; + +class ConnectionStatusButton extends StatelessWidget { + final String deviceStatus; + const ConnectionStatusButton( + this.deviceStatus, { + super.key, + }); + + @override + Widget build(BuildContext context) { + return FilledButton.icon( + style: ButtonStyle( + backgroundColor: WidgetStateProperty.all( + ESenseInput.instance.connected ? Colors.green : Colors.grey), + padding: + WidgetStateProperty.all(EdgeInsets.symmetric(horizontal: 8.0))), + onPressed: () => showDialog( + context: context, + builder: (BuildContext context) { + return ESenseConnectDialog( + deviceStatus: ESenseInput.instance.deviceStatus, + connect: (String name) { + ESenseInput.instance.connectToESense(name); + }, + disconnect: () { + ESenseInput.instance.eSenseManager.disconnect(); + }, + ); + }, + ), + label: Text(deviceStatus), + iconAlignment: IconAlignment.end, + icon: Icon(ESenseInput.instance.connected + ? Icons.bluetooth_connected + : Icons.bluetooth)); + } +} |