Files
swiftcontrol/lib/utils/requirements/multi.dart

64 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:keypress_simulator/keypress_simulator.dart';
import 'package:swift_control/pages/scan.dart';
import 'package:swift_control/utils/requirements/platform.dart';
import 'package:universal_ble/universal_ble.dart';
class KeyboardRequirement extends PlatformRequirement {
KeyboardRequirement() : super('Keyboard access');
@override
Future<void> call() async {
await keyPressSimulator.requestAccess();
}
@override
Future<void> getStatus() async {
status = await keyPressSimulator.isAccessAllowed();
}
}
class BluetoothTurnedOn extends PlatformRequirement {
BluetoothTurnedOn() : super('Bluetooth turned on');
@override
Future<void> call() async {
await UniversalBle.enableBluetooth();
}
@override
Future<void> getStatus() async {
final currentState = await UniversalBle.getBluetoothAvailabilityState();
status = currentState == AvailabilityState.poweredOn;
}
}
class UnsupportedPlatform extends PlatformRequirement {
UnsupportedPlatform() : super('Unsupported platform :(') {
status = false;
}
@override
Future<void> call() async {}
@override
Future<void> getStatus() async {}
}
class BluetoothScanning extends PlatformRequirement {
BluetoothScanning() : super('Bluetooth Scanning') {
status = false;
}
@override
Future<void> call() async {}
@override
Future<void> getStatus() async {}
@override
Widget? build(BuildContext context, VoidCallback onUpdate) {
return ScanWidget();
}
}