From 67a228d2e61f128a851def371a43d4dae08db2d4 Mon Sep 17 00:00:00 2001 From: Fransolet Thomas Date: Mon, 20 Feb 2023 15:48:54 +0100 Subject: [PATCH] Add order beacon by section order --- lib/Models/beaconSection.dart | 7 +++++-- lib/Screens/Home/home.dart | 2 +- lib/Screens/Visit/visit.dart | 7 ++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Models/beaconSection.dart b/lib/Models/beaconSection.dart index f7aa49d..0f12b32 100644 --- a/lib/Models/beaconSection.dart +++ b/lib/Models/beaconSection.dart @@ -2,6 +2,7 @@ import 'package:manager_api/api.dart'; class BeaconSection { int? minorBeaconId; + int? orderInConfig; String? configurationId; String? sectionId; /*int? rssi; @@ -9,11 +10,12 @@ class BeaconSection { String? proximityUUID;*/ bool? found = false; - BeaconSection({this.minorBeaconId, this.configurationId, this.sectionId, this.found}); + BeaconSection({this.minorBeaconId, this.orderInConfig, this.configurationId, this.sectionId, this.found}); Map toMap() { return { 'minorBeaconId': minorBeaconId, + 'orderInConfig': orderInConfig, 'configurationId': configurationId, 'sectionId': sectionId, /*'rssi': rssi, @@ -26,6 +28,7 @@ class BeaconSection { factory BeaconSection.fromJson(Map json) { return BeaconSection( minorBeaconId: json['minorBeaconId'] as int, + orderInConfig: json['orderInConfig'] as int, configurationId: json['configurationId'] as String, sectionId: json['sectionId'] as String, /*rssi: json['rssi'] as int, @@ -37,6 +40,6 @@ class BeaconSection { @override String toString() { - return 'BeaconSection{minorBeaconId: $minorBeaconId, sectionId: $sectionId, configurationId: $configurationId, found: $found}'; + return 'BeaconSection{minorBeaconId: $minorBeaconId, orderInConfig: $orderInConfig, sectionId: $sectionId, configurationId: $configurationId, found: $found}'; } } \ No newline at end of file diff --git a/lib/Screens/Home/home.dart b/lib/Screens/Home/home.dart index a18aeef..29cfa26 100644 --- a/lib/Screens/Home/home.dart +++ b/lib/Screens/Home/home.dart @@ -136,7 +136,7 @@ class _HomePageState extends State with WidgetsBindingObserver { if(visitAppContext.beaconSections == null) { List? sections = await ApiService.getAllBeacons(client, visitAppContext.instanceId!); if(sections != null && sections.isNotEmpty) { - List beaconSections = sections.map((e) => BeaconSection(minorBeaconId: e.beaconId, configurationId: e.configurationId, sectionId: e.id)).toList(); + List beaconSections = sections.map((e) => BeaconSection(minorBeaconId: e.beaconId, orderInConfig: e.order, configurationId: e.configurationId, sectionId: e.id)).toList(); visitAppContext.beaconSections = beaconSections; print("Got some Beacons for you"); print(beaconSections); diff --git a/lib/Screens/Visit/visit.dart b/lib/Screens/Visit/visit.dart index 37c3739..d465c13 100644 --- a/lib/Screens/Visit/visit.dart +++ b/lib/Screens/Visit/visit.dart @@ -188,6 +188,11 @@ class _VisitPageState extends State with WidgetsBindingObserver { var checkIfMoreThanSec = (DateTime.now().millisecondsSinceEpoch - milliLastTime) > timeBetweenBeaconPopUp; if(!_isDialogShowing && !visitAppContext.isArticleCurrentlyShown && checkIfMoreThanSec && visitAppContext.isScanningBeacons) { + print("Before sorting"); + print(beaconList); + beaconList.toList().sort((a, b) => a!.orderInConfig!.compareTo(b!.orderInConfig!)); + print("after storting"); + print(beaconList); _onBeaconFound(visitAppContext, beaconList.first); } else { print("Non pas possible d'afficher pour le moment"); @@ -389,7 +394,6 @@ class _VisitPageState extends State with WidgetsBindingObserver { if(!isCancel) { - listeningState(); if(Platform.isIOS) { Map statuses0 = await [ Permission.bluetooth, @@ -437,6 +441,7 @@ class _VisitPageState extends State with WidgetsBindingObserver { var status = await Permission.bluetoothScan.status; print(status); } + listeningState(); } }