Instantly refresh server connection state

This commit is contained in:
LollipopKit
2021-10-27 16:50:31 +08:00
parent 0e6ecbe0cd
commit b8acd38b17
2 changed files with 6 additions and 3 deletions

View File

@@ -62,6 +62,7 @@ class ServerProvider extends BusyProvider {
final singleData = await _getData(_servers[idx].info, idx);
if (singleData != null) {
_servers[idx].status = singleData;
notifyListeners();
}
return;
}
@@ -116,6 +117,7 @@ class ServerProvider extends BusyProvider {
final state = _servers[idx].connectionState;
if (!connected || state != ServerConnectionState.connected) {
_servers[idx].connectionState = ServerConnectionState.connecting;
notifyListeners();
final time1 = DateTime.now();
try {
await client.connect();
@@ -123,8 +125,10 @@ class ServerProvider extends BusyProvider {
logger.info(
'Connected to [${info.name}] in [${time2.difference(time1).toString()}].');
_servers[idx].connectionState = ServerConnectionState.connected;
notifyListeners();
} catch (e) {
_servers[idx].connectionState = ServerConnectionState.failed;
notifyListeners();
logger.warning(e);
}
}
@@ -146,10 +150,9 @@ class ServerProvider extends BusyProvider {
tcp: _getTcp(tcp));
} catch (e) {
_servers[idx].connectionState = ServerConnectionState.failed;
notifyListeners();
logger.warning(e);
return null;
} finally {
notifyListeners();
}
}

View File

@@ -154,7 +154,7 @@ class _ServerPageState extends State<ServerPage>
case ServerConnectionState.disconnected:
return 'Disconnected';
case ServerConnectionState.connected:
return upTime;
return upTime == '' ? 'Loading...' : upTime;
case ServerConnectionState.connecting:
return 'Connecting...';
case ServerConnectionState.failed: