Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions lib/ui/window.dart
Original file line number Diff line number Diff line change
Expand Up @@ -437,8 +437,8 @@ class Window {
/// 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 {
if (_locales != null && _locales.isNotEmpty) {
return _locales.first;
if (locales != null && locales.isNotEmpty) {
return locales.first;
}
return null;
}
Expand All @@ -457,7 +457,18 @@ class Window {
///
/// * [WidgetsBindingObserver], for a mechanism at the widgets layer to
/// observe when this value changes.
List<Locale> get locales => _locales;
List<Locale> get locales {
// Provide a minimal list of default locales for environments that do not
// support passing platform locales to Flutter. This will allow tests on
// these platforms to have similar expected behavior as Android and iOS where
// Locale passing is supported.
if ((_locales == null || _locales.isEmpty) && (Platform.isLinux || Platform.isMacOS || Platform.isFuchsia)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of a hard-coded list of platforms, I recommend using the FLUTTER_TEST environment variable (and only doing it in debug builds). See foundation/platform.dart in the framework repo.

// TODO(garyq): As we add support for passing locales on additional platforms,
// return null for newly supported platforms.
_locales = <Locale>[Locale("en", "US"), Locale("zh", "CN")];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why Chinese?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's probably better to just not have any special case logic here and just rely on the framework to handle the defaulting.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these default locales be set during startup of flutter_tester?

This would ensure that the default locales aren't used on any platform that isn't a test

}
return _locales;
}
List<Locale> _locales;

/// A callback that is invoked whenever [locale] changes value.
Expand Down