diff --git a/engine/src/flutter/lib/ui/platform_dispatcher.dart b/engine/src/flutter/lib/ui/platform_dispatcher.dart index 091ef928c84..22dba09c24d 100644 --- a/engine/src/flutter/lib/ui/platform_dispatcher.dart +++ b/engine/src/flutter/lib/ui/platform_dispatcher.dart @@ -551,7 +551,12 @@ class PlatformDispatcher { /// /// This is equivalent to `locales.first` and will provide an empty non-null /// locale if the [locales] list has not been set or is empty. - Locale get locale => locales.first; + Locale? get locale { + if (locales != null && locales!.isNotEmpty) { + return locales!.first; + } + return null; + } /// The full system-reported supported locales of the device. /// @@ -568,7 +573,7 @@ class PlatformDispatcher { /// /// * [WidgetsBindingObserver], for a mechanism at the widgets layer to /// observe when this value changes. - List get locales => configuration.locales; + List? get locales => configuration.locales; /// Performs the platform-native locale resolution. /// @@ -644,7 +649,12 @@ class PlatformDispatcher { } // Called from the engine, via hooks.dart - String _localeClosure() => locale.toString(); + String _localeClosure() { + if (locale == null) { + return ''; + } + return locale.toString(); + } /// The lifecycle state immediately after dart isolate initialization. /// diff --git a/engine/src/flutter/lib/ui/window.dart b/engine/src/flutter/lib/ui/window.dart index 7c8e514e006..4e204e7bf63 100644 --- a/engine/src/flutter/lib/ui/window.dart +++ b/engine/src/flutter/lib/ui/window.dart @@ -340,7 +340,7 @@ class SingletonFlutterWindow extends FlutterWindow { /// /// This is equivalent to `locales.first` and will provide an empty non-null /// locale if the [locales] list has not been set or is empty. - Locale get locale => platformDispatcher.locale; + Locale? get locale => platformDispatcher.locale; /// The full system-reported supported locales of the device. /// @@ -358,7 +358,7 @@ class SingletonFlutterWindow extends FlutterWindow { /// /// * [WidgetsBindingObserver], for a mechanism at the widgets layer to /// observe when this value changes. - List get locales => platformDispatcher.locales; + List? get locales => platformDispatcher.locales; /// Performs the platform-native locale resolution. /// @@ -850,11 +850,11 @@ class Window extends SingletonFlutterWindow { @override // ignore: unnecessary_overrides - Locale get locale => super.locale; + Locale? get locale => super.locale; @override // ignore: unnecessary_overrides - List get locales => super.locales; + List? get locales => super.locales; @override // ignore: unnecessary_overrides