diff --git a/lib/extensions/datetime.dart b/lib/extensions/datetime.dart index 8a7a375e..c79c1463 100644 --- a/lib/extensions/datetime.dart +++ b/lib/extensions/datetime.dart @@ -6,7 +6,7 @@ import 'package:lunasea/widgets/ui.dart'; extension DateTimeExtension on DateTime { String _formatted(String format) { - final locale = LunaLanguage.current.languageTag; + final locale = LunaLanguage.current().languageTag; return DateFormat(format, locale).format(this.toLocal()); } diff --git a/lib/main.dart b/lib/main.dart index cc83e75c..41dc1d88 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -36,14 +36,14 @@ Future main() async { await LunaLocalization().initialize(); await LunaMemoryStore().initialize(); // Run application - return runApp(const LunaOS()); + return runApp(const LunaBIOS()); }, (error, stack) => LunaLogger().critical(error, stack), ); } -class LunaOS extends StatelessWidget { - const LunaOS({ +class LunaBIOS extends StatelessWidget { + const LunaBIOS({ Key? key, }) : super(key: key); diff --git a/lib/router/routes/bios.dart b/lib/router/routes/bios.dart index c2a8e466..605ac018 100644 --- a/lib/router/routes/bios.dart +++ b/lib/router/routes/bios.dart @@ -23,8 +23,8 @@ enum BIOSRoutes with LunaRoutesMixin { GoRoute get routes { switch (this) { case BIOSRoutes.HOME: - return redirect(redirect: (_) { - Future.microtask(LunaBIOS().boot); + return redirect(redirect: (context, _) { + LunaOS().boot(context); return DashboardRoutes.HOME.path; }); } diff --git a/lib/system/bios.dart b/lib/system/bios.dart index a38604fd..bf1dc920 100644 --- a/lib/system/bios.dart +++ b/lib/system/bios.dart @@ -1,3 +1,4 @@ +import 'package:flutter/material.dart'; import 'package:lunasea/database/tables/bios.dart'; import 'package:lunasea/firebase/firestore.dart'; import 'package:lunasea/firebase/messaging.dart'; @@ -7,14 +8,12 @@ import 'package:lunasea/system/quick_actions/quick_actions.dart'; import 'package:lunasea/widgets/sheets/changelog/sheet.dart'; import 'package:lunasea/widgets/sheets/database_corruption/sheet.dart'; -class LunaBIOS { - Future boot() async { - LunaLanguage.current.use(); +class LunaOS { + Future boot(BuildContext context) async { + LunaLanguage.current(context).use(context); _initNotifications(); if (LunaQuickActions.isSupported) LunaQuickActions().initialize(); - - await _healthCheck(); - BIOSDatabase.FIRST_BOOT.update(false); + Future.microtask(_healthCheck); } Future _initNotifications() async { @@ -42,5 +41,7 @@ class LunaBIOS { if (!firstBoot && !isLatest.item1) { ChangelogSheet().show(); } + + BIOSDatabase.FIRST_BOOT.update(false); } } diff --git a/lib/system/localization.dart b/lib/system/localization.dart index 50ff87a3..64f16e5a 100644 --- a/lib/system/localization.dart +++ b/lib/system/localization.dart @@ -44,8 +44,8 @@ enum LunaLanguage { final String name; const LunaLanguage(this.languageTag, this.locale, this.name); - static LunaLanguage get current { - final locale = LunaState.context.locale; + static LunaLanguage current([BuildContext? context]) { + final locale = (context ?? LunaState.context).locale; return fromLocale(locale) ?? LunaLanguage.ENGLISH; } @@ -57,8 +57,8 @@ enum LunaLanguage { return null; } - Future use() async { - await LunaState.context.setLocale(locale); + Future use([BuildContext? context]) async { + await (context ?? LunaState.context).setLocale(locale); Intl.defaultLocale = languageTag; } @@ -66,21 +66,7 @@ enum LunaLanguage { switch (this) { case LunaLanguage.ENGLISH: return true; - case LunaLanguage.CATALAN: - case LunaLanguage.CHINESE_SIMPLIFIED: - case LunaLanguage.CROATIAN: - case LunaLanguage.DUTCH: - case LunaLanguage.FRENCH: - case LunaLanguage.GERMAN: - case LunaLanguage.HUNGARIAN: - case LunaLanguage.ITALIAN: - case LunaLanguage.NORWEGIAN_BOKMAL: - case LunaLanguage.PORTUGUESE: - case LunaLanguage.RUSSIAN: - case LunaLanguage.SWEDISH: - case LunaLanguage.SPANISH: - case LunaLanguage.TURKISH: - case LunaLanguage.VIETNAMESE: + default: return LunaFlavor.BETA.isRunningFlavor(); } } diff --git a/pubspec.lock b/pubspec.lock index 1ef066cc..de31d818 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -559,7 +559,7 @@ packages: name: go_router url: "https://pub.dartlang.org" source: hosted - version: "4.4.1" + version: "5.0.1" google_nav_bar: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 803e555b..4d0fa3c0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,7 +30,7 @@ dependencies: flutter_cache_manager: ^3.3.0 flutter_riverpod: ^2.0.0-dev.9 flutter_spinkit: ^5.1.0 - go_router: ^4.4.1 + go_router: ^5.0.1 google_nav_bar: ^5.0.6 hive: ^2.2.3 hive_flutter: ^1.1.0