connection_status_button.dart (1414B)
1 import 'package:flutter/material.dart'; 2 import 'package:sense_the_rhythm/utils/esense_input.dart'; 3 import 'package:sense_the_rhythm/widgets/esense_connect_dialog.dart'; 4 5 class ConnectionStatusButton extends StatelessWidget { 6 final String deviceStatus; 7 const ConnectionStatusButton( 8 this.deviceStatus, { 9 super.key, 10 }); 11 12 @override 13 Widget build(BuildContext context) { 14 return FilledButton.icon( 15 style: ButtonStyle( 16 backgroundColor: WidgetStateProperty.all( 17 ESenseInput.instance.connected ? Colors.green : Colors.grey), 18 padding: 19 WidgetStateProperty.all(EdgeInsets.symmetric(horizontal: 8.0))), 20 onPressed: () => showDialog( 21 context: context, 22 builder: (BuildContext context) { 23 return ESenseConnectDialog( 24 deviceStatus: ESenseInput.instance.deviceStatus, 25 connect: (String name) { 26 ESenseInput.instance.connectToESense(name); 27 }, 28 disconnect: () { 29 ESenseInput.instance.eSenseManager.disconnect(); 30 }, 31 ); 32 }, 33 ), 34 label: Text(deviceStatus), 35 iconAlignment: IconAlignment.end, 36 icon: Icon(ESenseInput.instance.connected 37 ? Icons.bluetooth_connected 38 : Icons.bluetooth)); 39 } 40 }