This commit is contained in:
lollipopkit
2023-08-09 23:58:38 +08:00
parent 58fbd62779
commit c512a6a274
36 changed files with 243 additions and 160 deletions

View File

@@ -41,6 +41,13 @@ class _ConvertPageState extends State<ConvertPage>
_s = S.of(context)!;
}
@override
void dispose() {
super.dispose();
_textEditingController.dispose();
_textEditingControllerResult.dispose();
}
@override
Widget build(BuildContext context) {
super.build(context);

View File

@@ -41,6 +41,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
void dispose() {
super.dispose();
_docker.clear();
_textController.dispose();
}
@override
@@ -54,8 +55,6 @@ class _DockerManagePageState extends State<DockerManagePage> {
super.initState();
final client = locator<ServerProvider>().servers[widget.spi.id]?.client;
if (client == null) {
showSnackBar(context, Text(_s.noClient));
context.pop();
return;
}
_docker.init(client, widget.spi.user, onPwdRequest, widget.spi.id);

View File

@@ -63,6 +63,7 @@ class _FullScreenPageState extends State<FullScreenPage> with AfterLayoutMixin {
void dispose() {
super.dispose();
_timer.cancel();
_pageController.dispose();
}
@override

View File

@@ -75,6 +75,7 @@ class _HomePageState extends State<HomePage>
super.dispose();
WidgetsBinding.instance.removeObserver(this);
_serverProvider.closeServer();
_pageController.dispose();
}
@override

View File

@@ -48,6 +48,13 @@ class _PingPageState extends State<PingPage>
_s = S.of(context)!;
}
@override
void dispose() {
super.dispose();
_textEditingController.dispose();
_results.dispose();
}
@override
Widget build(BuildContext context) {
super.build(context);

View File

@@ -45,18 +45,17 @@ class _PkgManagePageState extends State<PkgManagePage>
void dispose() {
super.dispose();
_pkgProvider.clear();
_textController.dispose();
_scrollController.dispose();
_scrollControllerUpdate.dispose();
}
@override
void initState() {
super.initState();
final si = locator<ServerProvider>().servers[widget.spi.id];
if (si == null || si.client == null) {
showSnackBar(context, Text(_s.waitConnection));
context.pop();
return;
}
if (si == null) return;
_pkgProvider.init(
si.client!,
si.status.sysVer.dist,

View File

@@ -51,6 +51,17 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage>
_provider = locator<PrivateKeyProvider>();
}
@override
void dispose() {
super.dispose();
_nameController.dispose();
_keyController.dispose();
_pwdController.dispose();
_nameNode.dispose();
_keyNode.dispose();
_pwdNode.dispose();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();

View File

@@ -41,10 +41,6 @@ class _ProcessPageState extends State<ProcessPage> {
void initState() {
super.initState();
_client = _serverProvider.servers[widget.spi.id]?.client;
if (_client == null) {
showSnackBar(context, Text(_s.noClient));
return;
}
_timer = Timer.periodic(const Duration(seconds: 3), (_) => _refresh());
}

View File

@@ -55,6 +55,22 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_serverProvider = locator<ServerProvider>();
}
@override
void dispose() {
super.dispose();
_nameController.dispose();
_ipController.dispose();
_alterUrlController.dispose();
_portController.dispose();
_usernameController.dispose();
_passwordController.dispose();
_nameFocus.dispose();
_ipFocus.dispose();
_alterUrlFocus.dispose();
_portFocus.dispose();
_usernameFocus.dispose();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();

View File

@@ -150,12 +150,12 @@ class _ServerPageState extends State<ServerPage>
return GestureDetector(
key: Key(si.spi.id + (_tag ?? '')),
onTap: () {
if (si.state == ServerState.connected) {
if (si.state.canViewDetails) {
AppRoute(
ServerDetailPage(si.spi.id),
'server detail page',
).go(context);
} else {
} else if (si.status.failedInfo != null) {
_showFailReason(si.status);
}
},
@@ -176,7 +176,7 @@ class _ServerPageState extends State<ServerPage>
final rootDisk = findRootDisk(ss.disk);
late final List<Widget> children;
var height = 23.0;
if (cs != ServerState.connected) {
if (cs != ServerState.finished) {
children = [
_buildServerCardTitle(ss, cs, spi),
];
@@ -286,7 +286,7 @@ class _ServerPageState extends State<ServerPage>
context: context,
title: Text(_s.error),
child: SingleChildScrollView(
child: Text(ss.failedInfo!),
child: Text(ss.failedInfo ?? _s.unknownError),
),
actions: [
TextButton(
@@ -393,12 +393,16 @@ class _ServerPageState extends State<ServerPage>
switch (cs) {
case ServerState.disconnected:
return _s.disconnected;
case ServerState.connected:
case ServerState.finished:
final tempStr = temp == null ? '' : '${temp.toStringAsFixed(1)}°C';
final items = [tempStr, upTime];
final str = items.where((element) => element.isNotEmpty).join(' | ');
if (str.isEmpty) return _s.serverTabLoading;
if (str.isEmpty) return _s.noResult;
return str;
case ServerState.loading:
return _s.serverTabLoading;
case ServerState.connected:
return _s.connected;
case ServerState.connecting:
return _s.serverTabConnecting;
case ServerState.failed:
@@ -409,8 +413,6 @@ class _ServerPageState extends State<ServerPage>
return _s.serverTabPlzSave;
}
return failedInfo;
default:
return _s.serverTabUnkown;
}
}

View File

@@ -37,6 +37,14 @@ class _SnippetEditPageState extends State<SnippetEditPage>
_provider = locator<SnippetProvider>();
}
@override
void dispose() {
super.dispose();
_nameController.dispose();
_scriptController.dispose();
_scriptNode.dispose();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();

View File

@@ -68,6 +68,18 @@ class _SSHPageState extends State<SSHPage> {
_initVirtKeys();
}
@override
void dispose() {
super.dispose();
_virtKeyLongPressTimer?.cancel();
_terminalController.dispose();
_client?.close();
// ignore: unnecessary_null_comparison
if (_session != null) {
_session.close();
}
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
@@ -80,12 +92,6 @@ class _SSHPageState extends State<SSHPage> {
_virtKeysHeight = _media.size.height * 0.043 * _virtKeysList.length;
}
@override
void dispose() {
_client?.close();
super.dispose();
}
@override
Widget build(BuildContext context) {
Widget child = Scaffold(

View File

@@ -49,7 +49,6 @@ class SftpPage extends StatefulWidget {
class _SftpPageState extends State<SftpPage> {
final SftpBrowserStatus _status = SftpBrowserStatus();
final ScrollController _scrollController = ScrollController();
final _sftp = locator<SftpProvider>();
@@ -297,7 +296,6 @@ class _SftpPageState extends State<SftpPage> {
key: Key(widget.spi.name + _status.path!.path),
child: ListView.builder(
itemCount: _status.files!.length,
controller: _scrollController,
padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 3),
itemBuilder: (_, index) => _buildItem(_status.files![index]),
),
@@ -458,9 +456,7 @@ class _SftpPageState extends State<SftpPage> {
TextButton(
onPressed: () async {
context.pop();
showLoadingDialog(
context
);
showLoadingDialog(context);
final remotePath = _getRemotePath(file);
try {
if (file.attr.isDirectory) {