This commit is contained in:
lollipopkit🏳️‍⚧️
2024-09-21 23:12:15 +08:00
parent c062c12a0e
commit eab06abcaf
23 changed files with 180 additions and 66 deletions

View File

@@ -19,6 +19,11 @@ final class SystemdProvider {
final isBusy = false.vn; final isBusy = false.vn;
final units = <SystemdUnit>[].vn; final units = <SystemdUnit>[].vn;
void dispose() {
isBusy.dispose();
units.dispose();
}
Future<void> getUnits() async { Future<void> getUnits() async {
isBusy.value = true; isBusy.value = true;

View File

@@ -28,6 +28,13 @@ final class _BackupPageState extends State<BackupPage>
final icloudLoading = false.vn; final icloudLoading = false.vn;
final webdavLoading = false.vn; final webdavLoading = false.vn;
@override
void dispose() {
icloudLoading.dispose();
webdavLoading.dispose();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);

View File

@@ -38,6 +38,7 @@ class _ContainerPageState extends State<ContainerPage> {
void dispose() { void dispose() {
super.dispose(); super.dispose();
_textController.dispose(); _textController.dispose();
_container.dispose();
} }
@override @override

View File

@@ -50,6 +50,13 @@ class _EditorPageState extends State<EditorPage> {
String? _langCode; String? _langCode;
@override
void dispose() {
super.dispose();
_controller.dispose();
_focusNode.dispose();
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -97,13 +104,6 @@ class _EditorPageState extends State<EditorPage> {
_focusNode.requestFocus(); _focusNode.requestFocus();
} }
@override
void dispose() {
_controller.dispose();
_focusNode.dispose();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@@ -31,6 +31,18 @@ class _HomePageState extends State<HomePage>
bool _switchingPage = false; bool _switchingPage = false;
bool _shouldAuth = false; bool _shouldAuth = false;
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
ServerProvider.closeServer();
_pageController.dispose();
WakelockPlus.disable();
_selectIndex.dispose();
_isLandscape.dispose();
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -53,15 +65,6 @@ class _HomePageState extends State<HomePage>
MediaQuery.of(context).orientation == Orientation.landscape; MediaQuery.of(context).orientation == Orientation.landscape;
} }
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
ServerProvider.closeServer();
_pageController.dispose();
WakelockPlus.disable();
}
@override @override
void didChangeAppLifecycleState(AppLifecycleState state) { void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state); super.didChangeAppLifecycleState(state);

View File

@@ -16,6 +16,13 @@ class _IPerfPageState extends State<IPerfPage> {
final _hostCtrl = TextEditingController(); final _hostCtrl = TextEditingController();
final _portCtrl = TextEditingController(); final _portCtrl = TextEditingController();
@override
void dispose() {
super.dispose();
_hostCtrl.dispose();
_portCtrl.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@@ -23,12 +23,6 @@ class _PingPageState extends State<PingPage>
final _results = ValueNotifier(<PingResult>[]); final _results = ValueNotifier(<PingResult>[]);
bool get isInit => _results.value.isEmpty; bool get isInit => _results.value.isEmpty;
@override
void initState() {
super.initState();
_textEditingController = TextEditingController(text: '');
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
@@ -36,6 +30,12 @@ class _PingPageState extends State<PingPage>
_results.dispose(); _results.dispose();
} }
@override
void initState() {
super.initState();
_textEditingController = TextEditingController(text: '');
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);

View File

@@ -34,6 +34,18 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage> {
final _loading = ValueNotifier<Widget?>(null); final _loading = ValueNotifier<Widget?>(null);
@override
void dispose() {
super.dispose();
_nameController.dispose();
_keyController.dispose();
_pwdController.dispose();
_nameNode.dispose();
_keyNode.dispose();
_pwdNode.dispose();
_loading.dispose();
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -51,17 +63,6 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage> {
} }
} }
@override
void dispose() {
super.dispose();
_nameController.dispose();
_keyController.dispose();
_pwdController.dispose();
_nameNode.dispose();
_keyNode.dispose();
_pwdNode.dispose();
}
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();

View File

@@ -34,6 +34,12 @@ class _ProcessPageState extends State<ProcessPage> {
ProcSortMode _procSortMode = ProcSortMode.cpu; ProcSortMode _procSortMode = ProcSortMode.cpu;
List<ProcSortMode> _sortModes = List.from(ProcSortMode.values); List<ProcSortMode> _sortModes = List.from(ProcSortMode.values);
@override
void dispose() {
super.dispose();
_timer.cancel();
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -75,12 +81,6 @@ class _ProcessPageState extends State<ProcessPage> {
} }
} }
@override
void dispose() {
super.dispose();
_timer.cancel();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final actions = <Widget>[ final actions = <Widget>[

View File

@@ -29,6 +29,13 @@ final class _PvePageState extends State<PvePage> {
late MediaQueryData _media; late MediaQueryData _media;
Timer? _timer; Timer? _timer;
@override
void dispose() {
super.dispose();
_timer?.cancel();
_pve.dispose();
}
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();
@@ -42,13 +49,6 @@ final class _PvePageState extends State<PvePage> {
_afterInit(); _afterInit();
} }
@override
void dispose() {
super.dispose();
_timer?.cancel();
_pve.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@@ -62,6 +62,12 @@ class _ServerDetailPageState extends State<ServerDetailPage>
late final _collapse = _settings.collapseUIDefault.fetch(); late final _collapse = _settings.collapseUIDefault.fetch();
late final _textFactor = TextScaler.linear(_settings.textFactor.fetch()); late final _textFactor = TextScaler.linear(_settings.textFactor.fetch());
@override
void dispose() {
super.dispose();
_netSortType.dispose();
}
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();

View File

@@ -72,12 +72,6 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_portController.dispose(); _portController.dispose();
_usernameController.dispose(); _usernameController.dispose();
_passwordController.dispose(); _passwordController.dispose();
_nameFocus.dispose();
_ipFocus.dispose();
_alterUrlFocus.dispose();
_portFocus.dispose();
_usernameFocus.dispose();
_pveAddrCtrl.dispose();
_preferTempDevCtrl.dispose(); _preferTempDevCtrl.dispose();
_logoUrlCtrl.dispose(); _logoUrlCtrl.dispose();
_wolMacCtrl.dispose(); _wolMacCtrl.dispose();
@@ -85,6 +79,21 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_wolPwdCtrl.dispose(); _wolPwdCtrl.dispose();
_netDevCtrl.dispose(); _netDevCtrl.dispose();
_scriptDirCtrl.dispose(); _scriptDirCtrl.dispose();
_nameFocus.dispose();
_ipFocus.dispose();
_alterUrlFocus.dispose();
_portFocus.dispose();
_usernameFocus.dispose();
_pveAddrCtrl.dispose();
_keyIdx.dispose();
_autoConnect.dispose();
_jumpServer.dispose();
_pveIgnoreCert.dispose();
_env.dispose();
_customCmds.dispose();
_tags.dispose();
} }
@override @override

View File

@@ -51,6 +51,15 @@ class _ServerPageState extends State<ServerPage>
final _scrollController = ScrollController(); final _scrollController = ScrollController();
final _autoHideKey = GlobalKey<AutoHideState>(); final _autoHideKey = GlobalKey<AutoHideState>();
@override
void dispose() {
super.dispose();
_timer?.cancel();
_scrollController.dispose();
_autoHideKey.currentState?.dispose();
_tag.dispose();
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();

View File

@@ -14,16 +14,35 @@ final class _TopBar extends StatelessWidget implements PreferredSizeWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Padding(
padding: const EdgeInsets.only(left: 17), padding: const EdgeInsets.only(left: 10),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
const Center( Center(
child: Text( child: InkWell(
borderRadius: BorderRadius.circular(13),
onTap: () => DebugPage.route.go(
context,
args: const DebugPageArgs(title: 'Logs(${BuildData.build})'),
),
child: const Padding(
padding: EdgeInsets.symmetric(horizontal: 7),
child: Row(
children: [
Text(
BuildData.name, BuildData.name,
style: TextStyle(fontSize: 20), style: TextStyle(fontSize: 20),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
Icon(
Icons.keyboard_arrow_right,
color: Colors.grey,
size: 17,
),
],
),
),
),
), ),
const SizedBox(width: 30), const SizedBox(width: 30),
TagSwitcher( TagSwitcher(

View File

@@ -59,6 +59,12 @@ class _SettingsPageState extends State<SettingsPage>
late final _tabCtrl = late final _tabCtrl =
TabController(length: SettingsTabs.values.length, vsync: this); TabController(length: SettingsTabs.values.length, vsync: this);
@override
void dispose() {
super.dispose();
_tabCtrl.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@@ -18,6 +18,12 @@ class _IOSSettingsPageState extends State<IOSSettingsPage> {
final wc = WatchConnectivity(); final wc = WatchConnectivity();
@override
void dispose() {
super.dispose();
_pushToken.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@@ -29,7 +29,10 @@ class _SnippetEditPageState extends State<SnippetEditPage>
super.dispose(); super.dispose();
_nameController.dispose(); _nameController.dispose();
_scriptController.dispose(); _scriptController.dispose();
_noteController.dispose();
_scriptNode.dispose(); _scriptNode.dispose();
_autoRunOn.dispose();
_tags.dispose();
} }
@override @override

View File

@@ -17,6 +17,12 @@ class _SnippetListPageState extends State<SnippetListPage>
with AutomaticKeepAliveClientMixin { with AutomaticKeepAliveClientMixin {
final _tag = ''.vn; final _tag = ''.vn;
@override
void dispose() {
super.dispose();
_tag.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);

View File

@@ -70,20 +70,20 @@ class SSHPageState extends State<SSHPage>
late SSHClient? _client = widget.spi.server?.value.client; late SSHClient? _client = widget.spi.server?.value.client;
Timer? _discontinuityTimer; Timer? _discontinuityTimer;
@override
void initState() {
super.initState();
_initStoredCfg();
_initVirtKeys();
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
_virtKeyLongPressTimer?.cancel(); _virtKeyLongPressTimer?.cancel();
_terminalController.dispose(); _terminalController.dispose();
_discontinuityTimer?.cancel(); _discontinuityTimer?.cancel();
if (!Stores.setting.generalWakeLock.fetch()) WakelockPlus.disable(); WakelockPlus.disable();
}
@override
void initState() {
super.initState();
_initStoredCfg();
_initVirtKeys();
_setupDiscontinuityTimer(); _setupDiscontinuityTimer();
} }

View File

@@ -28,6 +28,14 @@ class _SSHTabPageState extends State<SSHTabPage>
final _fabVN = 0.vn; final _fabVN = 0.vn;
final _tabRN = RNode(); final _tabRN = RNode();
@override
void dispose() {
super.dispose();
_pageCtrl.dispose();
_tabRN.dispose();
_fabVN.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);

View File

@@ -41,6 +41,12 @@ class _LocalFilePageState extends State<LocalFilePage>
final _sortType = _SortType.name.vn; final _sortType = _SortType.name.vn;
bool get isPickFile => widget.args?.isPickFile ?? false; bool get isPickFile => widget.args?.isPickFile ?? false;
@override
void dispose() {
super.dispose();
_sortType.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);

View File

@@ -42,6 +42,12 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
late final _client = widget.spi.server!.value.client!; late final _client = widget.spi.server!.value.client!;
final _sortOption = _SortOption().vn; final _sortOption = _SortOption().vn;
@override
void dispose() {
super.dispose();
_sortOption.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final children = [ final children = [

View File

@@ -33,6 +33,12 @@ final class SystemdPage extends StatefulWidget {
final class _SystemdPageState extends State<SystemdPage> { final class _SystemdPageState extends State<SystemdPage> {
late final _pro = SystemdProvider.init(widget.args.spi); late final _pro = SystemdProvider.init(widget.args.spi);
@override
void dispose() {
super.dispose();
_pro.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(