From 1b2b00ce7ea1b06e432328d41d9b2d6c12576994 Mon Sep 17 00:00:00 2001 From: Srujan Gaddam Date: Tue, 7 Jul 2020 20:00:37 -0700 Subject: [PATCH] Incorporate compat info changes into flutter engine Changes related to compatibility info require changes in Flutter engine libraries. This CL adds null-asserts wherever necessary to maintain behavior and adds some small modifications to handle the change in nullability. Warnings about unnecessary null assertions are disabled temporarily in this CL as well. Original issue: https://github.com/dart-lang/sdk/issues/41905 --- lib/web_ui/analysis_options.yaml | 5 +++-- lib/web_ui/lib/src/engine/window.dart | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/web_ui/analysis_options.yaml b/lib/web_ui/analysis_options.yaml index 869fffe973553..48436f5d28552 100644 --- a/lib/web_ui/analysis_options.yaml +++ b/lib/web_ui/analysis_options.yaml @@ -16,8 +16,9 @@ analyzer: linter: rules: - - always_declare_return_types - - always_put_control_body_on_new_line + always_declare_return_types: true + always_put_control_body_on_new_line: true + unnecessary_non_null_assertion: false # TODO(uncomment) - always_specify_types # TODO(uncomment) - annotate_overrides # TODO(uncomment) - avoid_classes_with_only_static_members diff --git a/lib/web_ui/lib/src/engine/window.dart b/lib/web_ui/lib/src/engine/window.dart index 80c217206b45a..b8e7c8656f8bd 100644 --- a/lib/web_ui/lib/src/engine/window.dart +++ b/lib/web_ui/lib/src/engine/window.dart @@ -280,15 +280,15 @@ class EngineWindow extends ui.Window { static List parseBrowserLanguages() { // TODO(yjbanov): find a solution for IE - final bool languagesFeatureMissing = !js_util.hasProperty(html.window.navigator, 'languages'); - if (languagesFeatureMissing || html.window.navigator.languages!.isEmpty) { + var languages = html.window.navigator.languages; + if (languages == null || languages.isEmpty) { // To make it easier for the app code, let's not leave the locales list // empty. This way there's fewer corner cases for apps to handle. return const [_defaultLocale]; } final List locales = []; - for (final String language in html.window.navigator.languages!) { + for (final String language in languages) { final List parts = language.split('-'); if (parts.length > 1) { locales.add(ui.Locale(parts.first, parts.last));