@@ -152,6 +152,21 @@ class _ZulipAppState extends State<ZulipApp> with WidgetsBindingObserver {
152152 super .dispose ();
153153 }
154154
155+ List <Route <dynamic >> _handleGenerateInitialRoutes (
156+ BuildContext context,
157+ String initialRoute,
158+ ) {
159+ // TODO(#524) choose initial account as last one used
160+ final globalStore = GlobalStoreWidget .of (context);
161+ final initialAccountId = globalStore.accounts.firstOrNull? .id;
162+ return [
163+ if (initialAccountId == null )
164+ MaterialWidgetRoute (page: const ChooseAccountPage ())
165+ else
166+ HomePage .buildRoute (accountId: initialAccountId),
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,8 @@ 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: (initialRoute) =>
222+ _handleGenerateInitialRoutes (context, initialRoute));
217223 }));
218224 }
219225}
0 commit comments