Update translation and add warning message before location scan

This commit is contained in:
Fransolet Thomas 2023-02-17 16:18:32 +01:00
parent 7bd94227df
commit 739d4b24d7
6 changed files with 131 additions and 84 deletions

View File

@ -1,13 +0,0 @@
# This is a generated file; do not edit or check into version control.
audio_session=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.13/
flutter_beacon=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_beacon-0.5.1/
just_audio=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.31/
just_audio_web=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio_web-0.4.7/
path_provider=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.12/
path_provider_android=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.22/
path_provider_foundation=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_foundation-2.1.1/
path_provider_linux=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.8/
path_provider_windows=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.3/
permission_handler=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-8.3.0/
qr_code_scanner=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/qr_code_scanner-1.0.1/
sqflite=/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/sqflite-2.2.4+1/

View File

@ -1 +0,0 @@
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"audio_session","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.13/","native_build":true,"dependencies":[]},{"name":"flutter_beacon","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_beacon-0.5.1/","native_build":true,"dependencies":[]},{"name":"just_audio","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.31/","native_build":true,"dependencies":["audio_session"]},{"name":"path_provider_foundation","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_foundation-2.1.1/","native_build":true,"dependencies":[]},{"name":"permission_handler","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-8.3.0/","native_build":true,"dependencies":[]},{"name":"qr_code_scanner","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/qr_code_scanner-1.0.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/sqflite-2.2.4+1/","native_build":true,"dependencies":[]}],"android":[{"name":"audio_session","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.13/","native_build":true,"dependencies":[]},{"name":"flutter_beacon","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_beacon-0.5.1/","native_build":true,"dependencies":[]},{"name":"just_audio","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.31/","native_build":true,"dependencies":["audio_session"]},{"name":"path_provider_android","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.22/","native_build":true,"dependencies":[]},{"name":"permission_handler","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-8.3.0/","native_build":true,"dependencies":[]},{"name":"qr_code_scanner","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/qr_code_scanner-1.0.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/sqflite-2.2.4+1/","native_build":true,"dependencies":[]}],"macos":[{"name":"audio_session","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.13/","native_build":true,"dependencies":[]},{"name":"just_audio","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.31/","native_build":true,"dependencies":["audio_session"]},{"name":"path_provider_foundation","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_foundation-2.1.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/sqflite-2.2.4+1/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.8/","native_build":false,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.3/","native_build":false,"dependencies":[]}],"web":[{"name":"audio_session","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.13/","dependencies":[]},{"name":"just_audio_web","path":"/Users/kiwixdevteam/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/just_audio_web-0.4.7/","dependencies":[]}]},"dependencyGraph":[{"name":"audio_session","dependencies":[]},{"name":"flutter_beacon","dependencies":[]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"qr_code_scanner","dependencies":[]},{"name":"sqflite","dependencies":[]}],"date_created":"2023-02-15 16:47:50.639440","version":"3.3.9"}

2
.gitignore vendored
View File

@ -50,3 +50,5 @@ Thumbs.db
.dart_tool
build
.flutter-plugins
.flutter-plugins-dependencies

View File

@ -47,13 +47,28 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
DateTime? lastTimePopUpWasClosed;
//bool _isArticleOpened = false;
StreamSubscription? listener;
final List<Region> regions = <Region>[];
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
if (Platform.isIOS) {
// iOS platform, at least set identifier and proximityUUID for region scanning
regions.add(Region(
identifier: 'MyMuseumB',
proximityUUID: '01122334-4556-6778-899A-ABBCCDDEEFF0'));
} else {
// Android platform, it can ranging out of beacon that filter all of Proximity UUID
regions.add(Region(identifier: 'MyMuseumB'));
}
super.initState();
listeningState();
if(controller.authorizationStatusOk) {
listeningState();
}
//listeningState();
}
listeningState() async {
@ -119,6 +134,7 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
}
initScanBeacon(VisitAppContext visitAppContext) async {
await flutterBeacon.initializeScanning;
if (!controller.authorizationStatusOk ||
!controller.locationServiceEnabled ||
@ -130,20 +146,6 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
return;
}
final regions = <Region>[];
if (Platform.isIOS) {
// iOS platform, at least set identifier and proximityUUID for region scanning
regions.add(Region(
identifier: 'MyMuseumB',
proximityUUID: '01122334-4556-6778-899A-ABBCCDDEEFF0'));
} else {
// Android platform, it can ranging out of beacon that filter all of Proximity UUID
regions.add(Region(identifier: 'MyMuseumB'));
}
if (_streamRanging != null) {
if (_streamRanging!.isPaused) {
_streamRanging?.resume();
@ -204,6 +206,7 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
//});
}
});
}
/*pauseScanBeacon() async {
@ -312,6 +315,8 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
}
});
return WillPopScope(
child: Scaffold(
appBar: CustomAppBar(
@ -333,80 +338,124 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
child: FloatingActionButton(
heroTag: "beacon",
onPressed: () async {
bool isCancel = false;
if(!controller.authorizationStatusOk) {
//await handleOpenLocationSettings();
print("STATUUSSSS ? ");
await showDialog(
context: context,
barrierDismissible: false,
builder: (_) {
return AlertDialog(
backgroundColor: Colors.white,
content: Padding(
padding: const EdgeInsets.symmetric(vertical: 20),
child: SizedBox(
height: 150,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Icon(Icons.my_location, color: kMainColor),
Text(TranslationHelper.getFromLocale("locationWarning", visitAppContext), style: TextStyle(color: kMainColor), textAlign: TextAlign.center),
],
),
),
),
actions: <Widget>[
TextButton(
child: Text(TranslationHelper.getFromLocale("close", visitAppContext), style: TextStyle(color: kMainColor)),
onPressed: () {
isCancel = true;
Navigator.of(context).pop();
},
),
TextButton(
child: Text(TranslationHelper.getFromLocale("ok", visitAppContext), style: TextStyle(color: kMainColor)),
onPressed: () async {
Navigator.of(context).pop();
},
)
],
actionsAlignment: MainAxisAlignment.spaceAround,
contentPadding: EdgeInsets.zero,
);
});
if(Platform.isIOS) {
Map<Permission, PermissionStatus> statuses0 = await [
Permission.bluetooth,
].request();
Map<Permission, PermissionStatus> statuses1 = await [
Permission.bluetoothScan,
].request();
if(!isCancel) {
listeningState();
if(Platform.isIOS) {
Map<Permission, PermissionStatus> statuses0 = await [
Permission.bluetooth,
].request();
Map<Permission, PermissionStatus> statuses2 = await [
Permission.bluetoothConnect,
].request();
Map<Permission, PermissionStatus> statuses1 = await [
Permission.bluetoothScan,
].request();
Map<Permission, PermissionStatus> statuses3 = await [
Permission.locationWhenInUse,
].request();
Map<Permission, PermissionStatus> statuses2 = await [
Permission.bluetoothConnect,
].request();
Map<Permission, PermissionStatus> statuses4 = await [
Permission.location,
].request();
Map<Permission, PermissionStatus> statuses3 = await [
Permission.locationWhenInUse,
].request();
Map<Permission, PermissionStatus> statuses5 = await [
Permission.locationAlways,
].request();
Map<Permission, PermissionStatus> statuses4 = await [
Permission.location,
].request();
print(statuses0[Permission.bluetooth]);
print(statuses1[Permission.bluetoothScan]);
print(statuses2[Permission.bluetoothConnect]);
print(statuses3[Permission.locationWhenInUse]);
print(statuses4[Permission.location]);
print(statuses5[Permission.locationAlways]);
Map<Permission, PermissionStatus> statuses5 = await [
Permission.locationAlways,
].request();
} else {
Map<Permission, PermissionStatus> statuses = await [
Permission.bluetoothScan,
Permission.bluetoothConnect,
Permission.location,
].request();
print(statuses0[Permission.bluetooth]);
print(statuses1[Permission.bluetoothScan]);
print(statuses2[Permission.bluetoothConnect]);
print(statuses3[Permission.locationWhenInUse]);
print(statuses4[Permission.location]);
print(statuses5[Permission.locationAlways]);
print(statuses[Permission.bluetoothScan]);
print(statuses[Permission.bluetoothConnect]);
print(statuses[Permission.location]);
print(statuses[Permission.locationWhenInUse]);
} else {
Map<Permission, PermissionStatus> statuses = await [
Permission.bluetoothScan,
Permission.bluetoothConnect,
Permission.location,
].request();
var status = await Permission.bluetoothScan.status;
print(status);
print(statuses[Permission.bluetoothScan]);
print(statuses[Permission.bluetoothConnect]);
print(statuses[Permission.location]);
print(statuses[Permission.locationWhenInUse]);
var status = await Permission.bluetoothScan.status;
print(status);
}
}
}
if(!visitAppContext.isScanningBeacons) {
print("Start Scan");
print(_streamRanging);
if (_streamRanging != null) {
if(!isCancel) {
if(!visitAppContext.isScanningBeacons) {
print("Start Scan");
print(_streamRanging);
if (_streamRanging != null) {
_streamRanging?.resume();
} else {
await initScanBeacon(visitAppContext);
}
} else {
await initScanBeacon(visitAppContext);
}
controller.startScanning();
visitAppContext.isScanningBeacons = true;
appContext.setContext(visitAppContext);
} else {
print("Pause Scan");
controller.pauseScanning(); // PAUSE OR DISPOSE ?
visitAppContext.isScanningBeacons = false;
appContext.setContext(visitAppContext);
controller.startScanning();
visitAppContext.isScanningBeacons = true;
appContext.setContext(visitAppContext);
} else {
print("Pause Scan");
controller.pauseScanning(); // PAUSE OR DISPOSE ?
visitAppContext.isScanningBeacons = false;
appContext.setContext(visitAppContext);
}
}
},
tooltip: 'Beacon',

View File

@ -9,6 +9,7 @@ List<Translation> translations = [
"languageNotSupported": "Cette visite ne prend pas en charge votre langue",
"downloadConfiguration": "Téléchargement de la visite en cours...",
"noInternet": "Aucune connexion internet détectée",
"locationWarning": "Pour afficher du contenu en fonction de votre position, vous devez accepter de partager votre localisation avec l'application.",
"search": "Rechercher",
"play": "Lecture",
"pause": "Pause",
@ -26,6 +27,7 @@ List<Translation> translations = [
"languageNotSupported": "This tour doesn't support your language",
"downloadConfiguration": "Loading tour...",
"noInternet": "No internet connection detected",
"locationWarning": "To view content based on your location, you must agree to share your location with the app.",
"search": "Search",
"play": "Play",
"pause": "Pause",
@ -43,6 +45,7 @@ List<Translation> translations = [
"languageNotSupported": "Diese Tour unterstützt Ihre Sprache nicht",
"downloadConfiguration": "Tour laden...",
"noInternet": "Keine Internetverbindung erkannt",
"locationWarning": "Um Inhalte basierend auf Ihrem Standort anzuzeigen, müssen Sie zustimmen, Ihren Standort mit der App zu teilen.",
"search": "Suche",
"play": "Spiel",
"pause": "Pause",
@ -60,6 +63,7 @@ List<Translation> translations = [
"languageNotSupported": "Deze tour ondersteunt je taal niet",
"downloadConfiguration": "De rondleiding laden...",
"noInternet": "Geen internetverbinding gedetecteerd",
"locationWarning": "Als u inhoud wilt bekijken op basis van uw locatie, moet u akkoord gaan met het delen van uw locatie met de app.",
"search": "Zoeken",
"play": "Speel",
"pause": "Pauze",
@ -77,6 +81,7 @@ List<Translation> translations = [
"languageNotSupported": "Questo tour non supporta la tua lingua",
"downloadConfiguration": "Caricamento del tour...",
"noInternet": "Nessuna connessione Internet rilevata",
"locationWarning": "Per visualizzare i contenuti in base alla tua posizione, devi accettare di condividere la tua posizione con l'app.",
"search": "Ricerca",
"play": "Giocare a",
"pause": "Pausa",
@ -94,6 +99,7 @@ List<Translation> translations = [
"languageNotSupported": "Este tour no es compatible con tu idioma",
"downloadConfiguration": "Cargando el recorrido...",
"noInternet": "No se detectó conexión a Internet",
"locationWarning": "Para ver contenido basado en su ubicación, debe aceptar compartir su ubicación con la aplicación.",
"search": "Búsqueda",
"play": "Tocar",
"pause": "Pausa",
@ -111,6 +117,7 @@ List<Translation> translations = [
"languageNotSupported": "Ta wycieczka nie obsługuje Twojego języka",
"downloadConfiguration": "Wczytuję prezentację...",
"noInternet": "Nie wykryto połączenia internetowego",
"locationWarning": "Aby wyświetlać treści na podstawie Twojej lokalizacji, musisz wyrazić zgodę na udostępnianie swojej lokalizacji aplikacji.",
"search": "Szukaj",
"play": "Bawić się",
"pause": "Pauza",
@ -128,6 +135,7 @@ List<Translation> translations = [
"languageNotSupported": "此导览不支持您的语言",
"downloadConfiguration": "正在加载导览...",
"noInternet": "未检测到互联网连接",
"locationWarning": "要根据您的位置查看内容,您必须同意与该应用共享您的位置",
"search": "搜索",
"play": "",
"pause": "暫停",
@ -145,6 +153,7 @@ List<Translation> translations = [
"languageNotSupported": "Цей тур не підтримує вашу мову",
"downloadConfiguration": "Завантаження туру...",
"noInternet": "Підключення до Інтернету не виявлено",
"locationWarning": "Щоб переглядати вміст на основі вашого місцезнаходження, ви повинні погодитися поділитися своїм місцезнаходженням із програмою.",
"search": "Пошук",
"play": "грати",
"pause": "Пауза",
@ -162,6 +171,7 @@ List<Translation> translations = [
"languageNotSupported": "هذه الجولة لا تدعم لغتك",
"downloadConfiguration": "جارٍ تحميل الجولة ...",
"noInternet": "لم يتم الكشف عن اتصال بالإنترنت",
"locationWarning": "لعرض المحتوى بناءً على موقعك ، يجب أن توافق على مشاركة موقعك مع التطبيق",
"search": "يبحث",
"play": "لعب",
"pause": "وقفة",

View File

@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+5
version: 1.0.1+6
environment:
sdk: ">=2.16.2 <3.0.0"