Newer
Older
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'datamodel.dart';
import 'addevent.dart';
import 'viewevents.dart';
import 'overview.dart';
import 'configuration.dart';
import 'databaseconnector.dart';
Future<void> loadConfiguration() async {
final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
final EventStoreInstance event = EventStoreInstance();
WidgetsFlutterBinding.ensureInitialized();
final prefs = await SharedPreferences.getInstance();
final String? storedConfiguration = prefs.getString('configuration');
if (storedConfiguration != null){
debugPrint('Configuration String: ' + storedConfiguration);
configuration.fromMap(jsonDecode(storedConfiguration));
debugPrint('Configuration loaded from shared preferences');
}else{
debugPrint('Failed to load configuration from shared preferences.');
}
final String? currentEvent = prefs.getString('currentEvent');
if (currentEvent != null){
debugPrint('Configuration Current Event String: ' + currentEvent);
event.fromMap(jsonDecode(currentEvent));
debugPrint('Configuration Current Event loaded from shared preferences');
}else{
debugPrint('Failed to load Current Event configuration from shared preferences.');
}
//const storage = FlutterSecureStorage(); //TODO: move login information to secure storage
//Map<String, String> allValues = await storage.readAll();
//print('Secure Storage: ' + allValues.toString());
var database = DatabaseInstance();
await database.connect(); //Do once at start of APP!
//TODO: there should be a loading screen until configuration is loaded and database connection is established.
}
void main() {
EventStoreInstance events = EventStoreInstance();
final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
events.reset(); // TODO: load configuration and events from shared preferences.
configuration.loginInformation = SensorLogin.fromJson({"mail":"admin","password":"adminadmin"}); //TODO: replace for productive version.
runApp(MaterialApp(
title: 'Mobile Event Log',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: '/',
routes: {
'/': (context) => const Overview(),
'/second': (context) => const AddEvent(),
'/third': (context) => const ViewEvents(),
'/forth': (context) => const Configuration(),