summaryrefslogtreecommitdiff
path: root/lib/utils
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils')
-rw-r--r--lib/utils/esense_input.dart16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/utils/esense_input.dart b/lib/utils/esense_input.dart
index 4edb983..6eb4222 100644
--- a/lib/utils/esense_input.dart
+++ b/lib/utils/esense_input.dart
@@ -29,21 +29,30 @@ class ESenseInput {
_listenToESense();
}
- Future<void> _askForPermissions() async {
- if (!Platform.isAndroid && !Platform.isIOS) return;
+ Future<bool> _askForPermissions() async {
+ if (!Platform.isAndroid && !Platform.isIOS) return false;
+ if (!await Permission.bluetooth.serviceStatus.isEnabled) {
+ deviceStatus.value = "Bluetooth is disabled!";
+ return false;
+ }
if (!(await Permission.bluetoothScan.request().isGranted &&
await Permission.bluetoothConnect.request().isGranted &&
await Permission.bluetooth.request().isGranted)) {
print(
'WARNING - no permission to use Bluetooth granted. Cannot access eSense device.');
+ deviceStatus.value = "Insufficiant Permissions";
+ return false;
}
// for some strange reason, Android requires permission to location for Bluetooth to work.....?
if (Platform.isAndroid) {
if (!(await Permission.locationWhenInUse.request().isGranted)) {
print(
'WARNING - no permission to access location granted. Cannot access eSense device.');
+ deviceStatus.value = "Insufficiant Permissions";
+ return false;
}
}
+ return true;
}
void _listenToESense() {
@@ -151,7 +160,8 @@ class ESenseInput {
Future<void> connectToESense(String deviceName) async {
if (!connected) {
- await _askForPermissions();
+ bool permissionSuccessfull = await _askForPermissions();
+ if (!permissionSuccessfull) return;
print('Trying to connect to eSense device namend \'$deviceName\'');
eSenseDeviceName = deviceName;
eSenseManager.deviceName = deviceName;