[flutter] allow loading either NOTICES or LICENSE (#58131)
To make #57871 easier to land, add support for loading either LICENSES or NOTICES, preferring the later.
diff --git a/packages/flutter/lib/src/services/binding.dart b/packages/flutter/lib/src/services/binding.dart
index a92d83a..19bd370 100644
--- a/packages/flutter/lib/src/services/binding.dart
+++ b/packages/flutter/lib/src/services/binding.dart
@@ -101,7 +101,14 @@
// TODO(ianh): Remove this complexity once these bugs are fixed.
final Completer<String> rawLicenses = Completer<String>();
scheduleTask(() async {
- rawLicenses.complete(rootBundle.loadString('LICENSE', cache: false));
+ // TODO(jonahwilliams): temporary catch to allow migrating LICENSE to NOTICES.
+ // Once both the tool and google3 use notices this can be removed after PR:
+ // https://github.com/flutter/flutter/pull/57871
+ try {
+ rawLicenses.complete(await rootBundle.loadString('NOTICES', cache: false));
+ } on FlutterError {
+ rawLicenses.complete(await rootBundle.loadString('LICENSE', cache: false));
+ }
}, Priority.animation);
await rawLicenses.future;
final Completer<List<LicenseEntry>> parsedLicenses = Completer<List<LicenseEntry>>();
diff --git a/packages/flutter/test/services/binding_test.dart b/packages/flutter/test/services/binding_test.dart
index 4c32ec4..8b204e6 100644
--- a/packages/flutter/test/services/binding_test.dart
+++ b/packages/flutter/test/services/binding_test.dart
@@ -44,7 +44,10 @@
BinaryMessenger createBinaryMessenger() {
return super.createBinaryMessenger()
..setMockMessageHandler('flutter/assets', (ByteData message) async {
- if (const StringCodec().decodeMessage(message) == 'LICENSE') {
+ // Temporarily check for both LICENSE and NOTICES
+ // Once both the tool and google3 use notices this can be removed after PR:
+ // https://github.com/flutter/flutter/pull/57871
+ if (const StringCodec().decodeMessage(message) == 'LICENSE' || const StringCodec().decodeMessage(message) == 'NOTICES') {
return const StringCodec().encodeMessage(licenses);
}
return null;