import 'package:flutter/material.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();

  // Load conf and last event fields from shared preferences to prefill UI
  await configuration.loadFromSharedPrefs();
  await event.loadFromSharedPrefs();


  //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!
}

void main() {
  loadConfiguration();


  //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(),
    },
  ));
}