From 8bb5511d376795a7f0fd79855f4bc9567e8e7751 Mon Sep 17 00:00:00 2001 From: Fransolet Thomas Date: Fri, 3 Mar 2023 16:21:20 +0100 Subject: [PATCH] Fix beacon scan not working on button tap --- lib/Models/visitContext.dart | 1 + lib/Screens/Home/configurations_list.dart | 4 ++-- lib/Screens/Visit/visit.dart | 13 +++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/Models/visitContext.dart b/lib/Models/visitContext.dart index e214071..a90f96c 100644 --- a/lib/Models/visitContext.dart +++ b/lib/Models/visitContext.dart @@ -15,6 +15,7 @@ class VisitAppContext with ChangeNotifier{ List readSections = []; bool isContentCurrentlyShown = false; bool isScanningBeacons = false; + bool isScanBeaconAlreadyAllowed = false; VisitAppContext({this.language, this.id, this.configuration, this.instanceId}); diff --git a/lib/Screens/Home/configurations_list.dart b/lib/Screens/Home/configurations_list.dart index bc3e5b5..8604ab9 100644 --- a/lib/Screens/Home/configurations_list.dart +++ b/lib/Screens/Home/configurations_list.dart @@ -76,7 +76,7 @@ class _ConfigurationsListState extends State { Navigator.of(context).pushReplacement(MaterialPageRoute( builder: (context) => - VisitPage(configurationId: configurations[index].id!), + VisitPage(configurationId: configurations[index].id!, isAlreadyAllowed: visitAppContext.isScanBeaconAlreadyAllowed), )); /*Navigator.push( context, @@ -110,7 +110,7 @@ class _ConfigurationsListState extends State { Navigator.of(context).pushReplacement(MaterialPageRoute( builder: (context) => - VisitPage(configurationId: configurations[index].id!), + VisitPage(configurationId: configurations[index].id!, isAlreadyAllowed: visitAppContext.isScanBeaconAlreadyAllowed), )); } } diff --git a/lib/Screens/Visit/visit.dart b/lib/Screens/Visit/visit.dart index fab8464..af58cfb 100644 --- a/lib/Screens/Visit/visit.dart +++ b/lib/Screens/Visit/visit.dart @@ -23,9 +23,10 @@ import 'package:provider/provider.dart'; import 'components/body.dart'; class VisitPage extends StatefulWidget { - const VisitPage({Key? key, required this.configurationId}) : super(key: key); + const VisitPage({Key? key, required this.configurationId, required this.isAlreadyAllowed}) : super(key: key); final String configurationId; + final bool isAlreadyAllowed; @override State createState() => _VisitPageState(); @@ -69,7 +70,7 @@ class _VisitPageState extends State with WidgetsBindingObserver { super.initState(); - if(controller.authorizationStatusOk) { + if(widget.isAlreadyAllowed) { listeningState(); } //listeningState(); @@ -466,6 +467,13 @@ class _VisitPageState extends State with WidgetsBindingObserver { } if(!isCancel) { + if(!controller.bluetoothEnabled) { + await handleOpenBluetooth(); + } + + if(!controller.locationServiceEnabled) { + await handleOpenLocationSettings(); + } if(!visitAppContext.isScanningBeacons) { print("Start Scan"); print(_streamRanging); @@ -477,6 +485,7 @@ class _VisitPageState extends State with WidgetsBindingObserver { controller.startScanning(); visitAppContext.isScanningBeacons = true; + visitAppContext.isScanBeaconAlreadyAllowed = true; appContext.setContext(visitAppContext); } else { print("Pause Scan");