summaryrefslogtreecommitdiff
path: root/lib/widgets
diff options
context:
space:
mode:
authoruvok2025-08-01 19:52:51 +0200
committeruvok2025-08-01 19:52:51 +0200
commit0f3479a464c5ab5a9d9bc9695a0771c41829ae52 (patch)
tree92f73d53f4ef76b143b8f974e68626022ef2e827 /lib/widgets
parentd0c1da353efe0de5b4c4d13ca514299357b5159d (diff)
Request permissions on scan
Diffstat (limited to 'lib/widgets')
-rw-r--r--lib/widgets/scan_page.dart16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/widgets/scan_page.dart b/lib/widgets/scan_page.dart
index bcb3525..f6695fe 100644
--- a/lib/widgets/scan_page.dart
+++ b/lib/widgets/scan_page.dart
@@ -13,6 +13,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
+import 'dart:io';
+
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:uvok_epaper_badge/widgets/device_details.dart';
import 'package:uvok_epaper_badge/widgets/device_scan_select.dart';
@@ -61,13 +63,21 @@ class _ScanPageState extends State<ScanPage> {
selectedDevice = null;
});
- // ...
+ await getPermissions();
await widget.deviceScanner.startScan();
}
Future getPermissions() async {
+ // avoid spamming log with "unsupported" messages.
+ if (Platform.isLinux) return;
+
try {
- await Permission.bluetooth.request();
+ var status = await Permission.bluetooth.request();
+ logger.i("New BLE permission status: $status");
+ status = await Permission.bluetoothScan.request();
+ logger.i("New BLE scan permission status: $status");
+ status = await Permission.bluetoothConnect.request();
+ logger.i("New BLE connect permission status: $status");
} catch (e) {
logger.e(e.toString());
}
@@ -76,8 +86,6 @@ class _ScanPageState extends State<ScanPage> {
@override
void initState() {
super.initState();
- // ehhh...
- getPermissions().ignore();
}
@override