Skip to content
Snippets Groups Projects
configuration.dart 9.00 KiB
import 'dart:convert';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'datamodel.dart';
import 'sensorconnector.dart';

class Configuration extends StatefulWidget {
  const Configuration({Key? key}) : super(key: key);

  @override
  State<Configuration> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<Configuration> {
  late Future<Collection> futureCollection;
  late Future<List<Collection>> futureCollections;
  late Future<List<EventType>> futureEventTypes;
  late Future<List<Device>> futureDevices;
  late Future<String> futureAuthToken;

  SensorConnector connector = SensorConnector();
  final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();

  @override
  void initState() {
    super.initState();

    //Start fetching all possible sensor data as soon as possible:
    futureCollections = connector.fetchCollections();
    futureEventTypes = connector.fetchEventTypes();
    if (configuration.currentCollection.id != -1) {
      futureDevices = connector.fetchCollectionDevices(configuration.currentCollection.id);
    }
    futureAuthToken = connector.getAuthToken(configuration.loginInformation.mail, configuration.loginInformation.password);
  }
  late Future<String> eventTypes;

  @override
  Widget build(BuildContext context) {

    final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
    final EventStoreInstance events = EventStoreInstance();

    return Scaffold(
        appBar: AppBar(
          title: const Text('Configuration'),
        ),
        body: Container(
          margin: const EdgeInsets.symmetric(horizontal: 5.0),
          child:
          Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                const Text(
                    'You must be online to do something here!',
                    style: TextStyle(fontSize: 14)
                ),
                const SizedBox(height: 50),
                TextFormField(
                  keyboardType: TextInputType.emailAddress,
                  autofocus: false,
                  initialValue: configuration.loginInformation.mail,
                  decoration: const InputDecoration(
                    labelText: 'Sensor E-Mail',
                    hintText: 'User for writing events',
                  ),
                  onChanged: (value) {