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 97af77143936..2ce725da8642 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -73,7 +73,9 @@ 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; + + /// [true] so that ui is automatically computed if [statusBarBrightness] is set. + bool previousAutomaticSystemUiAdjustment = true; if (statusBarBrightness != null && defaultTargetPlatform == TargetPlatform.iOS) { previousAutomaticSystemUiAdjustment = @@ -92,6 +94,7 @@ Future launch( universalLinksOnly: universalLinksOnly ?? false, headers: headers ?? {}, ); + assert(previousAutomaticSystemUiAdjustment != null); if (statusBarBrightness != null) { WidgetsBinding.instance.renderView.automaticSystemUiAdjustment = previousAutomaticSystemUiAdjustment; 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: 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..9d01b43d8e72 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, true); + final Future launchResult = + launch('http://flutter.dev/', statusBarBrightness: Brightness.dark); + + // The automaticSystemUiAdjustment should be set before the launch + // and equal to true after the launch result is complete. + expect(binding.renderView.automaticSystemUiAdjustment, true); + await launchResult; + expect(binding.renderView.automaticSystemUiAdjustment, true); + }); }); }