Skip to content
Snippets Groups Projects
configuration.dart 13.14 KiB
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'datamodel.dart';
import 'sensorconnector.dart';
import 'databaseconnector.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.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;


  var database = DatabaseInstance();
  SensorConnector connector = SensorConnector();
  final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();

  late OverlayEntry _overlayEntry;

  bool _initError = false;
  String _status = '';
  TextStyle _statusStyle = const TextStyle(color: Colors.black);

  Future<void> dumpToFile(BuildContext context) async{
    var date = DateTime.now().toUtc();
    var isoDate = date.toIso8601String();

    String filename =
        date.year.toString().padLeft(4, '0') +
            date.month.toString().padLeft(2, '0') +
            date.day.toString().padLeft(2, '0') +
            date.hour.toString().padLeft(2, '0') +
            date.minute.toString().padLeft(2, '0') +
            date.second.toString().padLeft(2, '0') +
            '_events.json';

    String eventsJson = await database.eventDump();

    final Directory? directory = await getExternalStorageDirectory();
    if(directory != null) {
      String filepath = join(directory.path, filename);

      final File file = File(filepath);
      await file.writeAsString(eventsJson);
      debugPrint('Stored file at: ' + filepath);

      setState(() {});
      HapticFeedback.vibrate();
      _showResultPopup(context, 'Event database dump created: ' + filepath,
          false
      );
    }
  }



  Future<void> _showResultPopup(BuildContext context, String text, bool error) async {
    // Declaring and Initializing OverlayState
    // and OverlayEntry objects