opt.: servers list -> map

This commit is contained in:
lollipopkit
2023-04-23 14:08:46 +08:00
parent bd608ce06f
commit 71243ea1fe
10 changed files with 85 additions and 80 deletions

View File

@@ -48,7 +48,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
@override
void initState() {
super.initState();
final client = locator<ServerProvider>().getServer(widget.spi.id).client;
final client = locator<ServerProvider>().servers[widget.spi.id]?.client;
if (client == null) {
showSnackBar(context, Text(_s.noClient));
context.pop();

View File

@@ -84,7 +84,7 @@ class _MyHomePageState extends State<MyHomePage>
switch (state) {
case AppLifecycleState.resumed:
if (isIOS) {
if (!_serverProvider.isAutoRefreshOn) {
_serverProvider.startAutoRefresh();
}
break;

View File

@@ -156,7 +156,7 @@ class _PingPageState extends State<PingPage>
}
try {
await Future.wait(_serverProvider.servers.map((e) async {
await Future.wait(_serverProvider.servers.values.map((e) async {
if (e.client == null) {
return;
}

View File

@@ -49,8 +49,8 @@ class _PkgManagePageState extends State<PkgManagePage>
@override
void initState() {
super.initState();
final si = locator<ServerProvider>().getServer(widget.spi.id);
if (si.client == null) {
final si = locator<ServerProvider>().servers[widget.spi.id];
if (si == null || si.client == null) {
showSnackBar(context, Text(_s.waitConnection));
context.pop();
return;

View File

@@ -40,9 +40,15 @@ class _ServerDetailPageState extends State<ServerDetailPage>
@override
Widget build(BuildContext context) {
return Consumer<ServerProvider>(builder: (_, provider, __) {
return _buildMainPage(
provider.getServer(widget.id),
);
final s = provider.servers[widget.id];
if (s == null) {
return Scaffold(
body: Center(
child: Text(_s.noClient),
),
);
}
return _buildMainPage(s);
});
}

View File

@@ -75,6 +75,7 @@ class _ServerPageState extends State<ServerPage>
),
);
}
final keys = pro.servers.keys.toList();
return ListView.separated(
padding: const EdgeInsets.all(7),
controller: ScrollController(),
@@ -83,9 +84,9 @@ class _ServerPageState extends State<ServerPage>
if (idx == pro.servers.length) {
return SizedBox(height: _media.padding.bottom);
}
return _buildEachServerCard(pro.servers[idx]);
return _buildEachServerCard(pro.servers[keys[idx]]);
},
itemCount: pro.servers.length + 1,
itemCount: pro.servers.length,
separatorBuilder: (_, __) => const SizedBox(
height: 3,
),
@@ -105,7 +106,10 @@ class _ServerPageState extends State<ServerPage>
);
}
Widget _buildEachServerCard(Server si) {
Widget _buildEachServerCard(Server? si) {
if (si == null) {
return const SizedBox();
}
return RoundRectCard(
InkWell(
onLongPress: () => AppRoute(

View File

@@ -53,7 +53,7 @@ class _SFTPPageState extends State<SFTPPage> {
void initState() {
super.initState();
final serverProvider = locator<ServerProvider>();
_si = serverProvider.getServer(widget.spi.id);
_si = serverProvider.servers[widget.spi.id];
_client = _si?.client;
}