@@ -43,12 +43,15 @@ class _HomeScreenState extends ConsumerState<HomeScreen>
4343 bool timeoutExpiredInBackground = true ;
4444 bool pinCheckOpen = false ;
4545 late AppLinks _appLinks;
46+ TabController ? _ownedTabController;
4647
4748 @override
4849 void dispose () {
4950 _sub? .cancel ();
50- globals.tabController.removeListener (_handleTabSelection);
51- globals.tabController.dispose ();
51+ _ownedTabController? .removeListener (_handleTabSelection);
52+ if (identical (globals.tabController, _ownedTabController)) {
53+ _ownedTabController? .dispose ();
54+ }
5255 super .dispose ();
5356 }
5457
@@ -118,8 +121,9 @@ class _HomeScreenState extends ConsumerState<HomeScreen>
118121 super .initState ();
119122 initUniLinks ();
120123
121- globals.tabController = TabController (
124+ _ownedTabController = TabController (
122125 initialIndex: 0 , length: Globals ().router.routes.length, vsync: this );
126+ globals.tabController = _ownedTabController! ;
123127 globals.tabController.addListener (_handleTabSelection);
124128
125129 Events ().onEvent (GoHomeEvent ().runtimeType, close);
@@ -192,7 +196,7 @@ class _HomeScreenState extends ConsumerState<HomeScreen>
192196 if (initialLink != null ) {
193197 Events ().emit (UniLinkEvent (Uri .parse (initialLink! ), context));
194198 }
195-
199+
196200 _appLinks = AppLinks ();
197201 _sub = _appLinks.uriLinkStream.listen ((Uri ? uri) {
198202 if (! mounted || uri == null ) {
0 commit comments