From 698b69f417d8ab64e8f5fec679e8efc7f7e39e2b Mon Sep 17 00:00:00 2001 From: Jim Graham Date: Wed, 11 Nov 2020 23:39:59 -0800 Subject: [PATCH] Revert "Make `PlatformDispatcher.locale` and `locales` return consistent values (#22267)" (flutter/engine#22461) This reverts commit b5812aaaa3df6c2d7e0eb6256c4b6c54d5d658cf. --- .../src/flutter/lib/ui/platform_dispatcher.dart | 16 +++++++++++++--- engine/src/flutter/lib/ui/window.dart | 8 ++++---- 2 files changed, 17 insertions(+), 7 deletions(-) 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