From e1e816e49d6a80292f8951b1e0880265d2396ef2 Mon Sep 17 00:00:00 2001 From: LollipopKit <2036293523@qq.com> Date: Tue, 26 Oct 2021 17:26:09 +0800 Subject: [PATCH] Optimized single server status update --- lib/data/provider/server.dart | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/data/provider/server.dart b/lib/data/provider/server.dart index b5dae3cb..6299d21e 100644 --- a/lib/data/provider/server.dart +++ b/lib/data/provider/server.dart @@ -55,7 +55,11 @@ class ServerProvider extends BusyProvider { passwordOrKey: spi.authorization); } - Future refreshData() async { + Future refreshData({int? idx}) async { + if (idx != null) { + _servers[idx].status = await _getData(_servers[idx].info, idx); + return; + } List _serversStatus = []; try { _serversStatus = await Future.wait( @@ -85,14 +89,13 @@ class ServerProvider extends BusyProvider { _servers.add(genInfo(info)); locator().put(info); notifyListeners(); - refreshData(); + refreshData(idx: _servers.length - 1); } void delServer(ServerPrivateInfo info) { _servers.removeWhere((e) => e.info == info); locator().delete(info); notifyListeners(); - refreshData(); } void updateServer(ServerPrivateInfo old, ServerPrivateInfo newInfo) { @@ -101,7 +104,7 @@ class ServerProvider extends BusyProvider { _servers[idx].client = genClient(newInfo); locator().update(old, newInfo); notifyListeners(); - refreshData(); + refreshData(idx: idx); } Future _getData(ServerPrivateInfo info, int idx) async {