97 lines
3.0 KiB
Dart

//import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.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';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
String initialRoute;
VisitAppContext? localContext = await DatabaseHelper.instance.getData(DatabaseTableType.main);
if(localContext != null) {
print("we've got an local db !");
print(localContext);
} else {
localContext = VisitAppContext(language: "FR", id: "UserId_Init", instanceId: "633ee379d9405f32f166f047");
DatabaseHelper.instance.insert(DatabaseTableType.main, localContext.toMap());
print("NO LOCAL DB !");
}
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) {
return ChangeNotifierProvider<AppContext>(
create: (_) => AppContext(widget.visitAppContext),
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: '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: const TextTheme(bodyText1: TextStyle(color: kTestSecondColor)),
visualDensity: VisualDensity.adaptivePlatformDensity,
),
routes: {
'/home': (context) => const HomePage(),
}
),
);
}
}