Skip to content
Snippets Groups Projects
viewevents.dart 9.29 KiB
import 'package:flutter/material.dart';
import 'datamodel.dart';
import 'sensorconnector.dart';
import 'databaseconnector.dart';

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

  @override
  _ViewEvents createState() => _ViewEvents();
}

class _ViewEvents extends State<ViewEvents> {
  // Get singleton to access locally stored events:
  final EventStoreInstance _events = EventStoreInstance();
  String _status = '';
  TextStyle _statusStyle = const TextStyle(color: Colors.black);
  String _appBarText = '';
  int _selectedRow = -1;
  var database = DatabaseInstance();
  List<Event> _localEvents = [];

  Future<void> fetchEventsFromDb() async{
    final EventStoreInstance event = EventStoreInstance();
    int pendingEvents = 0;

    if (event.showAllEvents == false) {
      _appBarText = 'Pending Events';
      //Get only pending events
      _localEvents = await database.getPendingEvents();
      pendingEvents = _localEvents.length;

    }else {
      _appBarText = 'All Events';
      _localEvents = await database.getEvents();
      pendingEvents = await database.getPendingEventCnt();
    }

    _status = pendingEvents.toString() + ' event(s) pending';
    _statusStyle = const TextStyle(color: Colors.black);
    setState(() {}); //Got events from database, so update UI
  }

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

  @override
  void dispose() async {

    /*Async update current configuration to shared preferences*/
    final EventStoreInstance event = EventStoreInstance();
    event.storeToSharedPrefs();
    super.dispose();
  }

  Future<void> syncEvents() async {
    final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
    SensorConnector connection = SensorConnector();

    List<Event> events = await database.getPendingEvents();
    int syncCounter = events.length;
    debugPrint('Pending Events');
    for (var event in events){
      debugPrint(event.toString());
    }

    if(syncCounter > 0) {