diff options
Diffstat (limited to 'lib/model/connection')
-rw-r--r-- | lib/model/connection/device_connection.dart | 1 | ||||
-rw-r--r-- | lib/model/connection/universal_ble_connection.dart | 28 |
2 files changed, 28 insertions, 1 deletions
diff --git a/lib/model/connection/device_connection.dart b/lib/model/connection/device_connection.dart index 81bcbfd..5c810f0 100644 --- a/lib/model/connection/device_connection.dart +++ b/lib/model/connection/device_connection.dart @@ -13,7 +13,6 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. - enum ConnectionStatus { disconnected, connected, error } abstract class DeviceConnection { diff --git a/lib/model/connection/universal_ble_connection.dart b/lib/model/connection/universal_ble_connection.dart new file mode 100644 index 0000000..6aa3c87 --- /dev/null +++ b/lib/model/connection/universal_ble_connection.dart @@ -0,0 +1,28 @@ +import 'package:universal_ble/universal_ble.dart'; +import 'package:uvok_epaper_badge/model/connection/device_connection.dart'; +import 'package:uvok_epaper_badge/model/device/universal_ble_device.dart'; + +class UniversalBleConnection implements DeviceConnection { + final UniversalBleDevice _device; + ConnectionStatus _status = ConnectionStatus.disconnected; + + UniversalBleConnection(this._device); + + @override + Future<void> connect() async { + await _device.device.connect(); + + _status = await _device.device.isConnected + ? ConnectionStatus.connected + : ConnectionStatus.disconnected; + } + + @override + Future<void> disconnect() async { + await _device.device.disconnect(); + _status = ConnectionStatus.disconnected; + } + + @override + ConnectionStatus get status => _status; +} |