124 lines
4.6 KiB
Dart
124 lines
4.6 KiB
Dart
//import 'package:audioplayers/audioplayers.dart';
|
|
import 'dart:io';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_beacon/flutter_beacon.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:mymuseum_visitapp/Helpers/requirement_state_controller.dart';
|
|
import 'package:mymuseum_visitapp/Models/articleRead.dart';
|
|
import 'package:mymuseum_visitapp/Screens/Home/home.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'Helpers/DatabaseHelper.dart';
|
|
import 'Models/visitContext.dart';
|
|
import 'app_context.dart';
|
|
import 'constants.dart';
|
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
String initialRoute;
|
|
VisitAppContext? localContext = await DatabaseHelper.instance.getData(DatabaseTableType.main);
|
|
|
|
Directory? appDocumentsDirectory = Platform.isIOS ? await getApplicationDocumentsDirectory() : await getDownloadsDirectory();
|
|
String localPath = appDocumentsDirectory!.path;
|
|
|
|
if(localContext != null) {
|
|
print("we've got an local db !");
|
|
print(localContext);
|
|
|
|
List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead));
|
|
localContext.readSections = articleReadTest;
|
|
} else {
|
|
localContext = VisitAppContext(language: "FR", id: "UserId_Init", instanceId: "63514fd67ed8c735aaa4b8f2", isAdmin: false, isAllLanguages: false); // 63514fd67ed8c735aaa4b8f2 MyInfoMate test instance -- 633ee379d9405f32f166f047 MyMuseum Fort Saint-Héribert - MyMuseum instance 63514fd67ed8c735aaa4b8f1
|
|
DatabaseHelper.instance.insert(DatabaseTableType.main, localContext.toMap());
|
|
|
|
List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead));
|
|
localContext.readSections = articleReadTest;
|
|
print(localContext.readSections);
|
|
|
|
print("NO LOCAL DB !");
|
|
}
|
|
|
|
localContext.localPath = localPath;
|
|
print("Local path $localPath");
|
|
|
|
initialRoute = '/home';
|
|
|
|
final MyApp myApp = MyApp(
|
|
initialRoute: initialRoute,
|
|
visitAppContext: localContext,
|
|
);
|
|
|
|
/*final AudioContext audioContext = AudioContext(
|
|
iOS: AudioContextIOS(
|
|
//defaultToSpeaker: true,
|
|
category: AVAudioSessionCategory.ambient,
|
|
options: [
|
|
AVAudioSessionOptions.defaultToSpeaker,
|
|
AVAudioSessionOptions.mixWithOthers,
|
|
],
|
|
),*/
|
|
/*android: AudioContextAndroid(
|
|
isSpeakerphoneOn: true,
|
|
stayAwake: true,
|
|
contentType: AndroidContentType.sonification,
|
|
usageType: AndroidUsageType.assistanceSonification,
|
|
audioFocus: AndroidAudioFocus.none,
|
|
),*/
|
|
//);
|
|
//AudioPlayer.global.setGlobalAudioContext(audioContext);
|
|
|
|
runApp(myApp);
|
|
}
|
|
|
|
class MyApp extends StatefulWidget {
|
|
String initialRoute = "";
|
|
VisitAppContext visitAppContext;
|
|
MyApp({Key? key, required this.initialRoute, required this.visitAppContext}) : super(key: key);
|
|
|
|
@override
|
|
_MyAppState createState() => _MyAppState();
|
|
}
|
|
|
|
class _MyAppState extends State<MyApp> {
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
Get.put(RequirementStateController());
|
|
|
|
return ChangeNotifierProvider<AppContext>(
|
|
create: (_) => AppContext(widget.visitAppContext),
|
|
child: MaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
title: 'Musée de la fraise', //'Fort Saint Héribert'
|
|
initialRoute: widget.initialRoute,
|
|
localizationsDelegates: const [
|
|
AppLocalizations.delegate,
|
|
GlobalMaterialLocalizations.delegate,
|
|
GlobalWidgetsLocalizations.delegate,
|
|
GlobalCupertinoLocalizations.delegate,
|
|
],
|
|
supportedLocales: [
|
|
const Locale('en', ''),
|
|
const Locale('fr', ''),
|
|
],
|
|
theme: ThemeData(
|
|
primarySwatch: Colors.blue,
|
|
scaffoldBackgroundColor: kBackgroundColor,
|
|
//fontFamily: "Vollkorn",
|
|
textTheme: TextTheme(bodyLarge: TextStyle(color: widget.visitAppContext.configuration != null ? widget.visitAppContext.configuration!.primaryColor != null ? Color(int.parse(widget.visitAppContext.configuration!.primaryColor!.split('(0x')[1].split(')')[0], radix: 16)): kMainColor1 : kMainColor1)),
|
|
visualDensity: VisualDensity.adaptivePlatformDensity,
|
|
appBarTheme: const AppBarTheme(
|
|
iconTheme: IconThemeData(color: Colors.white), // Change the color here
|
|
),
|
|
),
|
|
routes: {
|
|
'/home': (context) => const HomePage(),
|
|
}
|
|
),
|
|
);
|
|
}
|
|
} |