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

View File

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