[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;