Skip to content

Commit 7005cc5

Browse files
committed
make reconnecting robust + cosmetic changes
1 parent 63f51ed commit 7005cc5

3 files changed

Lines changed: 22 additions & 16 deletions

File tree

rentnerend/lib/info_window.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,16 @@ class _InfoWindowState extends State<InfoWindow> {
5252

5353
Future<void> connectWS() async {
5454
ws.connect();
55-
// TODO add quitting after 1sec or smth
55+
final start = DateTime.now();
5656
await Future.doWhile(() async {
5757
await Future.delayed(Duration(milliseconds: 10));
58-
return !ws.connected.value;
58+
return
59+
!ws.connected.value
60+
&& DateTime.now().difference(start) < const Duration(seconds: 3);
5961
});
6062
if(!ws.connected.value) return;
6163

62-
ws.sendSignal(MessageType.DATA_JSON);
64+
ws.sendSignal(MessageType.PLS_SEND_JSON);
6365
}
6466

6567
final textGroup = AutoSizeGroup();
@@ -347,7 +349,7 @@ class _InfoWindowState extends State<InfoWindow> {
347349
return blockWSStatus(md);
348350
}
349351
),
350-
if (!md.meta.game.ended && md.currentGame == null)
352+
if (!md.meta.game.ended && md.currentGame != null)
351353
blockCurGame(md, secondBgColor),
352354
blockGameplan(md, secondBgColor),
353355
blockLivetable(md, md.groups[0], secondBgColor),

rentnerend/lib/input_end_window.dart

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,19 @@ class _InputEndWindowState extends State<InputEndWindow> {
4747
}
4848

4949
Future<void> connectWS() async {
50+
debugPrint("connectWS: connecting...");
5051
ws.client.connect();
51-
// TODO add quitting after 1sec or smth
52+
final start = DateTime.now();
5253
await Future.doWhile(() async {
5354
await Future.delayed(Duration(milliseconds: 10));
54-
return !ws.client.connected.value;
55+
return
56+
!ws.clientConnected
57+
&& DateTime.now().difference(start) < const Duration(seconds: 3);
5558
});
5659
if(!ws.clientConnected) return;
5760

58-
ws.sendSignal(MessageType.DATA_JSON);
59-
while(mounted && !ws.client.boss.value) {
61+
ws.client.sendSignal(MessageType.DATA_JSON);
62+
while(mounted && !ws.client.boss.value && ws.client.connected.value) {
6063
ws.client.sendSignal(MessageType.IM_THE_BOSS);
6164
await Future.delayed(Duration(seconds: 10));
6265
}
@@ -312,7 +315,7 @@ class _InputEndWindowState extends State<InputEndWindow> {
312315
}
313316
)
314317
),
315-
Center(child: Text("SPIELTAGS-ZUSAMMENFASSUNG", maxLines: 1, style: const TextStyle(fontSize: 25)))
318+
Center(child: Padding(padding: EdgeInsets.only(left: 40), child: AutoSizeText("ERGEBNISSE", maxLines: 1, style: const TextStyle(fontSize: 25))))
316319
]),
317320
blockGameplan(md, secondBgColor),
318321
blockLivetable(md, md.groups[0], secondBgColor),

rentnerend/lib/input_window.dart

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,22 +97,23 @@ class _InputWindowState extends State<InputWindow> {
9797

9898
_reconnectTimer = Timer.periodic(const Duration(seconds: 3), (_) async {
9999
if (!mounted) return;
100-
if(!ws.clientConnected) await connectWS();
100+
if(!ws.clientConnected) connectWS();
101101
});
102102
}
103103

104104
Future<void> connectWS() async {
105-
debugPrint("connectWS: connecting... now: ${ws.clientConnected}");
106105
ws.client.connect();
106+
final start = DateTime.now();
107107
await Future.doWhile(() async {
108108
await Future.delayed(Duration(milliseconds: 10));
109-
return !ws.client.connected.value;
109+
return
110+
!ws.clientConnected
111+
&& DateTime.now().difference(start) < const Duration(seconds: 3);
110112
});
111-
debugPrint("connectWS: connected? ${ws.clientConnected}");
112113
if(!ws.clientConnected) return;
113114

114115
ws.client.sendSignal(MessageType.DATA_JSON);
115-
while(mounted && !ws.client.boss.value) {
116+
while(mounted && !ws.client.boss.value && ws.client.connected.value) {
116117
ws.client.sendSignal(MessageType.IM_THE_BOSS);
117118
await Future.delayed(Duration(seconds: 10));
118119
}
@@ -160,8 +161,8 @@ class _InputWindowState extends State<InputWindow> {
160161
end = await dialog(
161162
"Spieltag beenden?",
162163
"Es sieht so aus, als würde das aktuelle Spiel noch laufen.\n"
163-
"Bist du sicher, dass du den Spieltag trotzdem beenden willst?\n"
164-
"Die Ergebnisse werden gespeichert und du kannst jederzeit zurückgehen, allerdings wird die Zeit gestoppt!",
164+
"Bist du sicher, dass du den Spieltag trotzdem beenden willst?\n\n"
165+
"Die Ergebnisse werden gespeichert und du kannst jederzeit zurückgehen, aber die Zeit wird gestoppt!",
165166
["Hier bleiben", "Trotzem beenden"]
166167
) == 1 ? true : false;
167168
}

0 commit comments

Comments
 (0)