-
Maximilian Betz authoredMaximilian Betz authored
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) {