summaryrefslogtreecommitdiff
path: root/lib/widgets/connection_status_button.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/connection_status_button.dart')
-rw-r--r--lib/widgets/connection_status_button.dart40
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));
+ }
+}