Skip to content

Commit

Permalink
fix: Fixed a bug that caused NavigatorObserver to be created before o…
Browse files Browse the repository at this point in the history
…nPreRunApp.
  • Loading branch information
mathrunet committed Feb 5, 2023
1 parent b1b33a1 commit 1fb2309
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 42 deletions.
16 changes: 8 additions & 8 deletions packages/masamune/example/pubspec.lock
Expand Up @@ -417,10 +417,10 @@ packages:
dependency: transitive
description:
name: katana_indicator
sha256: "6d04cd7a4a3c689680e86e466ec987ed993a2e3ac2262c8aa9c99ec484f391d9"
sha256: e6ae1a233871ba744449d0bee0eacd43f0c8a309538cc4513e5676f28236e844
url: "https://pub.dev"
source: hosted
version: "1.1.10"
version: "1.1.11"
katana_listenables:
dependency: transitive
description:
Expand Down Expand Up @@ -473,10 +473,10 @@ packages:
dependency: transitive
description:
name: katana_model
sha256: aeabf0992fa9a35408f3fd10b6a9411d2f409eadb97d426164af7866eca27915
sha256: "10fa4f40f70d9e3dbadc3fd57987087ce175ee6cfd5e22c9dfc95e0fa3393cdb"
url: "https://pub.dev"
source: hosted
version: "1.5.9"
version: "1.5.10"
katana_prefs:
dependency: transitive
description:
Expand Down Expand Up @@ -603,22 +603,22 @@ packages:
path: ".."
relative: true
source: path
version: "1.4.20"
version: "1.5.1"
masamune_annotation:
dependency: transitive
description:
name: masamune_annotation
sha256: deeab4150a3ceb2fac1005df4811112e68ad10ceada5457bccb602a289688def
sha256: "7dd21fc5e8f294dee5508504affc792cb4a9382f1fd6d5127169aa46ee51ad3d"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
version: "1.3.0"
masamune_builder:
dependency: "direct dev"
description:
path: "../../masamune_builder"
relative: true
source: path
version: "1.2.10"
version: "1.3.1"
matcher:
dependency: transitive
description:
Expand Down
102 changes: 68 additions & 34 deletions packages/masamune/lib/src/masamune_app.dart
Expand Up @@ -87,44 +87,45 @@ Future<void> runMasamuneApp({
List<Widget Function(BuildContext context, Widget app)>? onBuildAppFilters,
}) async {
final useRunZonedGuarded = masamuneAdapters.any((e) => e.runZonedGuarded);
final app = MasamuneApp(
key: key,
theme: theme,
localize: localize,
appRef: appRef,
authAdapter: authAdapter,
modelAdapter: modelAdapter,
storageAdapter: storageAdapter,
functionsAdapter: functionsAdapter,
routerConfig: routerConfig,
scaffoldMessengerKey: scaffoldMessengerKey,
debugShowCheckedModeBanner: debugShowCheckedModeBanner,
showPerformanceOverlay: showPerformanceOverlay,
title: title,
onGenerateTitle: onGenerateTitle,
themeMode: themeMode,
home: home,
routes: routes,
initialRoute: initialRoute,
onGenerateRoute: onGenerateRoute,
onGenerateInitialRoutes: onGenerateInitialRoutes,
onUnknownRoute: onUnknownRoute,
navigatorObservers: [
...masamuneAdapters.expand((e) => e.navigatorObservers),
...navigatorObservers,
],
builder: builder,
onBuildAppFilters: [
...masamuneAdapters.map((e) => e.onBuildApp),
if (onBuildAppFilters != null) ...onBuildAppFilters,
],
);
if (useRunZonedGuarded) {
runZonedGuarded(() async {
for (final adapter in masamuneAdapters) {
await adapter.onPreRunApp();
}
runApp(app);
runApp(
MasamuneApp(
key: key,
theme: theme,
localize: localize,
appRef: appRef,
authAdapter: authAdapter,
modelAdapter: modelAdapter,
storageAdapter: storageAdapter,
functionsAdapter: functionsAdapter,
routerConfig: routerConfig,
scaffoldMessengerKey: scaffoldMessengerKey,
debugShowCheckedModeBanner: debugShowCheckedModeBanner,
showPerformanceOverlay: showPerformanceOverlay,
title: title,
onGenerateTitle: onGenerateTitle,
themeMode: themeMode,
home: home,
routes: routes,
initialRoute: initialRoute,
onGenerateRoute: onGenerateRoute,
onGenerateInitialRoutes: onGenerateInitialRoutes,
onUnknownRoute: onUnknownRoute,
navigatorObservers: [
...masamuneAdapters.expand((e) => e.navigatorObservers),
...navigatorObservers,
],
builder: builder,
onBuildAppFilters: [
...masamuneAdapters.map((e) => e.onBuildApp),
if (onBuildAppFilters != null) ...onBuildAppFilters,
],
),
);
}, (error, stack) {
for (final adapter in masamuneAdapters) {
adapter.onError(error, stack);
Expand All @@ -134,7 +135,40 @@ Future<void> runMasamuneApp({
for (final adapter in masamuneAdapters) {
await adapter.onPreRunApp();
}
runApp(app);
runApp(
MasamuneApp(
key: key,
theme: theme,
localize: localize,
appRef: appRef,
authAdapter: authAdapter,
modelAdapter: modelAdapter,
storageAdapter: storageAdapter,
functionsAdapter: functionsAdapter,
routerConfig: routerConfig,
scaffoldMessengerKey: scaffoldMessengerKey,
debugShowCheckedModeBanner: debugShowCheckedModeBanner,
showPerformanceOverlay: showPerformanceOverlay,
title: title,
onGenerateTitle: onGenerateTitle,
themeMode: themeMode,
home: home,
routes: routes,
initialRoute: initialRoute,
onGenerateRoute: onGenerateRoute,
onGenerateInitialRoutes: onGenerateInitialRoutes,
onUnknownRoute: onUnknownRoute,
navigatorObservers: [
...masamuneAdapters.expand((e) => e.navigatorObservers),
...navigatorObservers,
],
builder: builder,
onBuildAppFilters: [
...masamuneAdapters.map((e) => e.onBuildApp),
if (onBuildAppFilters != null) ...onBuildAppFilters,
],
),
);
}
}

Expand Down

0 comments on commit 1fb2309

Please sign in to comment.