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 units = <SystemdUnit>[].vn;
void dispose() {
isBusy.dispose();
units.dispose();
}
Future<void> getUnits() async {
isBusy.value = true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -34,6 +34,18 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage> {
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
void 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
void didChangeDependencies() {
super.didChangeDependencies();

View File

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

View File

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

View File

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

View File

@@ -72,12 +72,6 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_portController.dispose();
_usernameController.dispose();
_passwordController.dispose();
_nameFocus.dispose();
_ipFocus.dispose();
_alterUrlFocus.dispose();
_portFocus.dispose();
_usernameFocus.dispose();
_pveAddrCtrl.dispose();
_preferTempDevCtrl.dispose();
_logoUrlCtrl.dispose();
_wolMacCtrl.dispose();
@@ -85,6 +79,21 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
_wolPwdCtrl.dispose();
_netDevCtrl.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

View File

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

View File

@@ -14,15 +14,34 @@ final class _TopBar extends StatelessWidget implements PreferredSizeWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 17),
padding: const EdgeInsets.only(left: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Center(
child: Text(
BuildData.name,
style: TextStyle(fontSize: 20),
textAlign: TextAlign.center,
Center(
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,
style: TextStyle(fontSize: 20),
textAlign: TextAlign.center,
),
Icon(
Icons.keyboard_arrow_right,
color: Colors.grey,
size: 17,
),
],
),
),
),
),
const SizedBox(width: 30),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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