From d0f0912ca25d4aa100c4069b227330d3345e87fb Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Tue, 26 Aug 2025 10:42:03 +0200 Subject: [PATCH] reset hidden tab bar on lifecycle resume --- .../browser/presentation/screens/browser.dart | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart index 1e0b13e6..b9d6da26 100644 --- a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart +++ b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart @@ -193,19 +193,28 @@ class BrowserScreen extends HookConsumerWidget { final hidden = useState(false); final diffAcc = useRef(0.0); - useEffect(() { + void resetHiddenState() { hidden.value = false; diffAcc.value = 0.0; + } + + useEffect(() { + resetHiddenState(); return null; }, [tabId]); + useOnAppLifecycleStateChange((previous, current) { + if (current == AppLifecycleState.resumed) { + resetHiddenState(); + } + }); + ref.listen( tabStateProvider(tabId).select((value) => value?.isLoading), (previous, next) { if (next == true) { - hidden.value = false; - diffAcc.value = 0.0; + resetHiddenState(); } }, ); @@ -215,8 +224,7 @@ class BrowserScreen extends HookConsumerWidget { (previous, next) { if (next != null && previous != null) { if (previous != next) { - hidden.value = false; - diffAcc.value = 0.0; + resetHiddenState(); } } }, @@ -244,8 +252,7 @@ class BrowserScreen extends HookConsumerWidget { diffAcc.value += diff; if (diffAcc.value.abs() > (kToolbarHeight / 2)) { - diffAcc.value = 0.0; - hidden.value = false; + resetHiddenState(); } } }