From 48aec6484c20aa0b00ac496e30916f501bf53c62 Mon Sep 17 00:00:00 2001 From: 21pages Date: Sun, 25 Aug 2024 21:29:41 +0800 Subject: [PATCH] refresh file transfer table on resume (#9167) Signed-off-by: 21pages --- flutter/lib/desktop/pages/file_manager_page.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/flutter/lib/desktop/pages/file_manager_page.dart b/flutter/lib/desktop/pages/file_manager_page.dart index c498bf101..467774419 100644 --- a/flutter/lib/desktop/pages/file_manager_page.dart +++ b/flutter/lib/desktop/pages/file_manager_page.dart @@ -69,7 +69,7 @@ class FileManagerPage extends StatefulWidget { } class _FileManagerPageState extends State - with AutomaticKeepAliveClientMixin { + with AutomaticKeepAliveClientMixin, WidgetsBindingObserver { final _mouseFocusScope = Rx(MouseFocusScope.none); final _dropMaskVisible = false.obs; // TODO impl drop mask @@ -103,6 +103,7 @@ class _FileManagerPageState extends State WidgetsBinding.instance.addPostFrameCallback((_) { widget.tabController.onSelected?.call(widget.id); }); + WidgetsBinding.instance.addObserver(this); } @override @@ -115,12 +116,21 @@ class _FileManagerPageState extends State } Get.delete(tag: 'ft_${widget.id}'); }); + WidgetsBinding.instance.removeObserver(this); super.dispose(); } @override bool get wantKeepAlive => true; + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + super.didChangeAppLifecycleState(state); + if (state == AppLifecycleState.resumed) { + jobController.jobTable.refresh(); + } + } + @override Widget build(BuildContext context) { super.build(context);