77 lines
2.7 KiB
Dart
77 lines
2.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:manager_api_new/api.dart';
|
|
import 'package:mymuseum_visitapp/Models/articleRead.dart';
|
|
import 'package:mymuseum_visitapp/Services/statisticsService.dart';
|
|
import 'package:mymuseum_visitapp/Models/beaconSection.dart';
|
|
import 'package:mymuseum_visitapp/Models/resourceModel.dart';
|
|
import 'package:mymuseum_visitapp/client.dart';
|
|
import 'package:mymuseum_visitapp/constants.dart';
|
|
|
|
class VisitAppContext with ChangeNotifier {
|
|
Client clientAPI = Client(kApiBaseUrl);
|
|
|
|
String? id = "";
|
|
String? language = "";
|
|
String? instanceId = kInstanceId;
|
|
String? apiKey;
|
|
|
|
List<ConfigurationDTO>? configurations;
|
|
ConfigurationDTO? configuration;
|
|
List<String?>? sectionIds; // Use to valid QR code found
|
|
List<BeaconSection?>? beaconSections;
|
|
List<dynamic>? currentSections;
|
|
List<SectionRead> readSections = [];
|
|
bool isContentCurrentlyShown = false;
|
|
bool isScanningBeacons = false;
|
|
bool isScanBeaconAlreadyAllowed = false;
|
|
bool isMaximizeTextSize = false;
|
|
|
|
Size? puzzleSize;
|
|
|
|
List<ResourceModel> audiosNotWorking = [];
|
|
|
|
ApplicationInstanceDTO? applicationInstanceDTO; // null = assistant non activé
|
|
StatisticsService? statisticsService;
|
|
|
|
/// Retourne l'AppConfigurationLink de l'instance mobile pour la configuration courante.
|
|
/// Contient roundedValue, isSectionImageBackground, etc.
|
|
AppConfigurationLink? get currentAppConfigurationLink {
|
|
if (applicationInstanceDTO == null || configuration == null) return null;
|
|
return applicationInstanceDTO!.configurations
|
|
?.where((c) => c.configurationId == configuration!.id)
|
|
.firstOrNull;
|
|
}
|
|
|
|
bool? isAdmin = false;
|
|
bool? isAllLanguages = false;
|
|
|
|
String? localPath;
|
|
|
|
VisitAppContext({this.language, this.id, this.configuration, this.isAdmin, this.isAllLanguages, this.instanceId, this.apiKey});
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'id': id,
|
|
'instanceId': instanceId,
|
|
'language': language,
|
|
'isAdmin': isAdmin != null ? isAdmin! ? 1 : 0 : 0,
|
|
'isAllLanguages': isAllLanguages != null ? isAllLanguages! ? 1 : 0 : 0,
|
|
'apiKey': apiKey,
|
|
};
|
|
}
|
|
|
|
factory VisitAppContext.fromJson(Map<String, dynamic> json) {
|
|
return VisitAppContext(
|
|
id: json['id'] as String,
|
|
instanceId: json['instanceId'] as String,
|
|
language: json['language'] as String,
|
|
configuration: json['configuration'] == null ? null : ConfigurationDTO.fromJson(json['configuration']),
|
|
apiKey: json['apiKey'] as String?,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'VisitAppContext{id: $id, instanceId: $instanceId, language: $language, configuration: $configuration, beaconSections: $beaconSections, isAdmin: $isAdmin}';
|
|
}
|
|
} |