@@ -152,6 +152,21 @@ class _ZulipAppState extends State<ZulipApp> with WidgetsBindingObserver {
152152 return super .didPushRouteInformation (routeInformation);
153153 }
154154
155+ InitialRouteListFactory _handleGenerateInitialRoutes (BuildContext context) {
156+ final globalStore = GlobalStoreWidget .of (context);
157+
158+ return (_) {
159+ // TODO(#524) choose initial account as last one used
160+ final initialAccountId = globalStore.accounts.firstOrNull? .id;
161+ return [
162+ if (initialAccountId == null )
163+ MaterialWidgetRoute (page: const ChooseAccountPage ())
164+ else
165+ HomePage .buildRoute (accountId: initialAccountId),
166+ ];
167+ };
168+ }
169+
155170 Future <void > _handleInitialRoute () async {
156171 final initialRouteUrl = Uri .parse (WidgetsBinding .instance.platformDispatcher.defaultRouteName);
157172 if (initialRouteUrl case Uri (scheme: 'zulip' , host: 'notification' )) {
@@ -177,7 +192,6 @@ class _ZulipAppState extends State<ZulipApp> with WidgetsBindingObserver {
177192 final themeData = zulipThemeData (context);
178193 return GlobalStoreWidget (
179194 child: Builder (builder: (context) {
180- final globalStore = GlobalStoreWidget .of (context);
181195 return MaterialApp (
182196 title: 'Zulip' ,
183197 localizationsDelegates: ZulipLocalizations .localizationsDelegates,
@@ -204,16 +218,7 @@ class _ZulipAppState extends State<ZulipApp> with WidgetsBindingObserver {
204218 // like [Navigator.push], never mere names as with [Navigator.pushNamed].
205219 onGenerateRoute: (_) => null ,
206220
207- onGenerateInitialRoutes: (_) {
208- // TODO(#524) choose initial account as last one used
209- final initialAccountId = globalStore.accounts.firstOrNull? .id;
210- return [
211- if (initialAccountId == null )
212- MaterialWidgetRoute (page: const ChooseAccountPage ())
213- else
214- HomePage .buildRoute (accountId: initialAccountId),
215- ];
216- });
221+ onGenerateInitialRoutes: _handleGenerateInitialRoutes (context));
217222 }));
218223 }
219224}
0 commit comments