Implemented TimeTable
This commit is contained in:
@ -8,19 +8,20 @@ import 'package:marianum_mobile/data/socketConnection.dart';
|
||||
class IncomingPacket extends ChangeNotifier {
|
||||
|
||||
String packetId;
|
||||
bool useJsonDecode;
|
||||
|
||||
bool _isReceived = false;
|
||||
bool get isReceived => _isReceived;
|
||||
|
||||
IncomingPacket(this.packetId) {
|
||||
log("PACKETLISTENER ERSTELLT!");
|
||||
IncomingPacket(this.packetId, {this.useJsonDecode = true}) {
|
||||
SocketConnection.read.listen((event) {
|
||||
if(event.startsWith("$packetId:")) {
|
||||
_isReceived = true;
|
||||
|
||||
// THIS listener handles the incomming request
|
||||
log("$packetId is handled!");
|
||||
handle(jsonDecode(event.split("$packetId:")[1]));
|
||||
String content = event.split("$packetId:")[1];
|
||||
handle(useJsonDecode ? jsonDecode(content) : content);
|
||||
}
|
||||
notifyListeners();
|
||||
});
|
||||
|
21
lib/data/incommingPackets/errorPacket.dart
Normal file
21
lib/data/incommingPackets/errorPacket.dart
Normal file
@ -0,0 +1,21 @@
|
||||
import 'package:marianum_mobile/data/incomingPacket.dart';
|
||||
|
||||
class ErrorPacket extends IncomingPacket {
|
||||
ErrorPacket() : super("error", useJsonDecode: false);
|
||||
|
||||
bool _errorDismissed = true;
|
||||
bool get errorDismissed => _errorDismissed;
|
||||
set errorDismissed(bool value) {
|
||||
_errorDismissed = value;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
String _errorText = "";
|
||||
String get errorText => _errorText;
|
||||
|
||||
@override
|
||||
void handle(data) {
|
||||
_errorDismissed = false;
|
||||
_errorText = data;
|
||||
}
|
||||
}
|
71
lib/data/incommingPackets/timetablePacket.dart
Normal file
71
lib/data/incommingPackets/timetablePacket.dart
Normal file
@ -0,0 +1,71 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:marianum_mobile/data/socketConnection.dart';
|
||||
|
||||
import '../incomingPacket.dart';
|
||||
|
||||
class TimetablePacket extends IncomingPacket {
|
||||
TimetablePacket() : super('timetable');
|
||||
|
||||
TimeTableData _timeTable = TimeTableData();
|
||||
TimeTableData get timeTable => _timeTable;
|
||||
|
||||
@override
|
||||
void handle(data) {
|
||||
_timeTable = TimeTableData();
|
||||
data.forEach((day) {
|
||||
TimeTableDay dayData = TimeTableDay(List<TimeTableEntry>.empty(growable: true), day['title']);
|
||||
day['tiles'].forEach((tile) {
|
||||
dayData._entries.add(TimeTableEntry(
|
||||
tile['title'], tile['title'], tile['room'], tile['title'],
|
||||
TimeTableEntryTime(tile['begin']['hour'], tile['begin']['minute']),
|
||||
TimeTableEntryTime(tile['end']['hour'], tile['end']['minute'])
|
||||
));
|
||||
});
|
||||
|
||||
_timeTable._days.add(dayData);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class TimeTableData {
|
||||
List<TimeTableDay> _days = [];
|
||||
|
||||
List<TimeTableDay> get days => _days;
|
||||
|
||||
set days(List<TimeTableDay> value) {
|
||||
_days = value;
|
||||
}
|
||||
}
|
||||
|
||||
class TimeTableDay {
|
||||
List<TimeTableEntry> _entries;
|
||||
String _name;
|
||||
|
||||
TimeTableDay(this._entries, this._name);
|
||||
|
||||
List<TimeTableEntry> get entries => _entries;
|
||||
String get name => _name;
|
||||
|
||||
}
|
||||
|
||||
class TimeTableEntry {
|
||||
late String subject;
|
||||
late String teacher;
|
||||
late String room;
|
||||
late String classes;
|
||||
|
||||
late TimeTableEntryTime start;
|
||||
late TimeTableEntryTime end;
|
||||
|
||||
TimeTableEntry(this.subject, this.teacher, this.room, this.classes,
|
||||
this.start, this.end);
|
||||
}
|
||||
|
||||
class TimeTableEntryTime {
|
||||
int hour;
|
||||
int minute;
|
||||
|
||||
TimeTableEntryTime(this.hour, this.minute);
|
||||
}
|
Reference in New Issue
Block a user