From 9b55b86ab1fa88b44de008f4bc196e37dcb000c9 Mon Sep 17 00:00:00 2001 From: cg021 Date: Tue, 12 May 2020 15:35:22 -0500 Subject: [PATCH 1/5] initialize previousAutomaticSystemUiAdjustment --- .../url_launcher/lib/url_launcher.dart | 4 +++- .../url_launcher/test/url_launcher_test.dart | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/url_launcher/url_launcher/lib/url_launcher.dart b/packages/url_launcher/url_launcher/lib/url_launcher.dart index 97af77143936..c935fc2cd3a2 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -73,7 +73,8 @@ Future launch( message: 'To use webview or safariVC, you need to pass' 'in a web URL. This $urlString is not a web URL.'); } - bool previousAutomaticSystemUiAdjustment; + bool previousAutomaticSystemUiAdjustment = + WidgetsBinding.instance.renderView.automaticSystemUiAdjustment; if (statusBarBrightness != null && defaultTargetPlatform == TargetPlatform.iOS) { previousAutomaticSystemUiAdjustment = @@ -96,6 +97,7 @@ Future launch( WidgetsBinding.instance.renderView.automaticSystemUiAdjustment = previousAutomaticSystemUiAdjustment; } + assert(WidgetsBinding.instance.renderView.automaticSystemUiAdjustment != null); return result; } diff --git a/packages/url_launcher/url_launcher/test/url_launcher_test.dart b/packages/url_launcher/url_launcher/test/url_launcher_test.dart index 19022f1edfb6..823e4d0fc343 100644 --- a/packages/url_launcher/url_launcher/test/url_launcher_test.dart +++ b/packages/url_launcher/url_launcher/test/url_launcher_test.dart @@ -205,6 +205,21 @@ void main() { await launchResult; expect(binding.renderView.automaticSystemUiAdjustment, isTrue); }); + + test('sets automaticSystemUiAdjustment to not be null', () async { + final TestWidgetsFlutterBinding binding = + TestWidgetsFlutterBinding.ensureInitialized(); + debugDefaultTargetPlatformOverride = TargetPlatform.android; + expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + final Future launchResult = + launch('http://flutter.dev/', statusBarBrightness: Brightness.dark); + + // The automaticSystemUiAdjustment should be set before the launch + // and not null after the launch result is complete. + expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + await launchResult; + expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + }); }); } From bae258872374da95221e18d2e9afe99223ecb962 Mon Sep 17 00:00:00 2001 From: cg021 Date: Wed, 13 May 2020 12:22:07 -0500 Subject: [PATCH 2/5] updated changelog --- packages/url_launcher/url_launcher/CHANGELOG.md | 4 ++++ packages/url_launcher/url_launcher/lib/url_launcher.dart | 5 ++--- packages/url_launcher/url_launcher/pubspec.yaml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md index 5c826e6552e8..3d8dd24f8b5b 100644 --- a/packages/url_launcher/url_launcher/CHANGELOG.md +++ b/packages/url_launcher/url_launcher/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.8 + +* Initialize `previousAutomaticSystemUiAdjustment` in launch method. + ## 5.4.7 * Update lower bound of dart dependency to 2.1.0. diff --git a/packages/url_launcher/url_launcher/lib/url_launcher.dart b/packages/url_launcher/url_launcher/lib/url_launcher.dart index c935fc2cd3a2..93ef2125e6f8 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -73,8 +73,7 @@ Future launch( message: 'To use webview or safariVC, you need to pass' 'in a web URL. This $urlString is not a web URL.'); } - bool previousAutomaticSystemUiAdjustment = - WidgetsBinding.instance.renderView.automaticSystemUiAdjustment; + bool previousAutomaticSystemUiAdjustment = true; if (statusBarBrightness != null && defaultTargetPlatform == TargetPlatform.iOS) { previousAutomaticSystemUiAdjustment = @@ -93,11 +92,11 @@ Future launch( universalLinksOnly: universalLinksOnly ?? false, headers: headers ?? {}, ); + assert(previousAutomaticSystemUiAdjustment != null); if (statusBarBrightness != null) { WidgetsBinding.instance.renderView.automaticSystemUiAdjustment = previousAutomaticSystemUiAdjustment; } - assert(WidgetsBinding.instance.renderView.automaticSystemUiAdjustment != null); return result; } diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml index d038c41e0da4..c09dcbfea381 100644 --- a/packages/url_launcher/url_launcher/pubspec.yaml +++ b/packages/url_launcher/url_launcher/pubspec.yaml @@ -2,7 +2,7 @@ name: url_launcher description: Flutter plugin for launching a URL on Android and iOS. Supports web, phone, SMS, and email schemes. homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher -version: 5.4.7 +version: 5.4.8 flutter: plugin: From 4de9111866b75d1214cd43b7c9c3080beb74c0b7 Mon Sep 17 00:00:00 2001 From: cg021 Date: Wed, 13 May 2020 14:23:42 -0500 Subject: [PATCH 3/5] add system ui adjustment documentation --- packages/url_launcher/url_launcher/lib/url_launcher.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/url_launcher/url_launcher/lib/url_launcher.dart b/packages/url_launcher/url_launcher/lib/url_launcher.dart index 93ef2125e6f8..bb07bc7b4df3 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -73,6 +73,8 @@ Future launch( message: 'To use webview or safariVC, you need to pass' 'in a web URL. This $urlString is not a web URL.'); } + + /// true so that ui is automatically computed if statusBarBrightness is set bool previousAutomaticSystemUiAdjustment = true; if (statusBarBrightness != null && defaultTargetPlatform == TargetPlatform.iOS) { From 785e00471a0452ba54a23315990b7a8302fd05a9 Mon Sep 17 00:00:00 2001 From: cg021 <40409839+cg021@users.noreply.github.com> Date: Wed, 13 May 2020 14:33:44 -0500 Subject: [PATCH 4/5] tupdate comment formatting Co-authored-by: Emmanuel Garcia --- packages/url_launcher/url_launcher/lib/url_launcher.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/url_launcher/url_launcher/lib/url_launcher.dart b/packages/url_launcher/url_launcher/lib/url_launcher.dart index bb07bc7b4df3..2ce725da8642 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -73,8 +73,8 @@ Future launch( message: 'To use webview or safariVC, you need to pass' 'in a web URL. This $urlString is not a web URL.'); } - - /// true so that ui is automatically computed if statusBarBrightness is set + + /// [true] so that ui is automatically computed if [statusBarBrightness] is set. bool previousAutomaticSystemUiAdjustment = true; if (statusBarBrightness != null && defaultTargetPlatform == TargetPlatform.iOS) { From 8e87aca2af94bc6aca5bbfca16d96dc4c79f4007 Mon Sep 17 00:00:00 2001 From: cg021 Date: Wed, 13 May 2020 14:45:47 -0500 Subject: [PATCH 5/5] expected value should be true --- .../url_launcher/url_launcher/test/url_launcher_test.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/url_launcher/url_launcher/test/url_launcher_test.dart b/packages/url_launcher/url_launcher/test/url_launcher_test.dart index 823e4d0fc343..9d01b43d8e72 100644 --- a/packages/url_launcher/url_launcher/test/url_launcher_test.dart +++ b/packages/url_launcher/url_launcher/test/url_launcher_test.dart @@ -210,15 +210,15 @@ void main() { final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized(); debugDefaultTargetPlatformOverride = TargetPlatform.android; - expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + expect(binding.renderView.automaticSystemUiAdjustment, true); final Future launchResult = launch('http://flutter.dev/', statusBarBrightness: Brightness.dark); // The automaticSystemUiAdjustment should be set before the launch - // and not null after the launch result is complete. - expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + // and equal to true after the launch result is complete. + expect(binding.renderView.automaticSystemUiAdjustment, true); await launchResult; - expect(binding.renderView.automaticSystemUiAdjustment, isNotNull); + expect(binding.renderView.automaticSystemUiAdjustment, true); }); }); }