Do not show v1 Android embedding message for non-Android commands (#96148)
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index d5b5337..166eb47 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart
@@ -552,9 +552,16 @@ } void checkForDeprecation({DeprecationBehavior deprecationBehavior = DeprecationBehavior.none}) { + if (deprecationBehavior == DeprecationBehavior.none) { + return; + } + final AndroidEmbeddingVersionResult result = computeEmbeddingVersion(); - if (result.version == AndroidEmbeddingVersion.v1) { - globals.printStatus( + if (result.version != AndroidEmbeddingVersion.v1) { + return; + } + + globals.printStatus( ''' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Warning @@ -573,21 +580,15 @@ ${result.reason} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -''' - ); - switch (deprecationBehavior) { - case DeprecationBehavior.none: - break; - case DeprecationBehavior.ignore: - BuildEvent('deprecated-v1-android-embedding-ignored', type: 'gradle', flutterUsage: globals.flutterUsage).send(); - break; - case DeprecationBehavior.exit: - BuildEvent('deprecated-v1-android-embedding-failed', type: 'gradle', flutterUsage: globals.flutterUsage).send(); - throwToolExit( - 'Build failed due to use of deprecated Android v1 embedding.', - exitCode: 1, - ); - } +'''); + if (deprecationBehavior == DeprecationBehavior.ignore) { + BuildEvent('deprecated-v1-android-embedding-ignored', type: 'gradle', flutterUsage: globals.flutterUsage).send(); + } else { // DeprecationBehavior.exit + BuildEvent('deprecated-v1-android-embedding-failed', type: 'gradle', flutterUsage: globals.flutterUsage).send(); + throwToolExit( + 'Build failed due to use of deprecated Android v1 embedding.', + exitCode: 1, + ); } }
diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index ee609b9..0214d3d 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart
@@ -182,7 +182,7 @@ // v1 embedding, as opposed to having <meta-data // android:name="flutterEmbedding" android:value="2" />. - project.checkForDeprecation(deprecationBehavior: DeprecationBehavior.none); + project.checkForDeprecation(deprecationBehavior: DeprecationBehavior.ignore); expect(testLogger.statusText, contains('https://flutter.dev/go/android-project-migration')); }); _testInMemory('Android project not on v2 embedding exits', () async { @@ -198,6 +198,15 @@ expect(testLogger.statusText, contains('https://flutter.dev/go/android-project-migration')); expect(testLogger.statusText, contains('No `<meta-data android:name="flutterEmbedding" android:value="2"/>` in ')); }); + _testInMemory('Project not on v2 embedding does not warn if deprecation status is irrelevant', () async { + final FlutterProject project = await someProject(); + // The default someProject with an empty <manifest> already indicates + // v1 embedding, as opposed to having <meta-data + // android:name="flutterEmbedding" android:value="2" />. + + project.checkForDeprecation(deprecationBehavior: DeprecationBehavior.none); + expect(testLogger.statusText, isEmpty); + }); _testInMemory('Android project not on v2 embedding ignore continues', () async { final FlutterProject project = await someProject(); // The default someProject with an empty <manifest> already indicates