summaryrefslogtreecommitdiff
path: root/lib/widgets/connection_status_button.dart
blob: e0c4cb4fcc12ba712fc9c668b10b0cf38362bc05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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));
  }
}