diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart index 3fa3aa5547..c726602da4 100644 --- a/packages/flutter_tools/lib/src/commands/config.dart +++ b/packages/flutter_tools/lib/src/commands/config.dart @@ -84,9 +84,11 @@ class ConfigCommand extends FlutterCommand { if (values.isEmpty) { values = ' No settings have been configured.'; } + final bool analyticsEnabled = globals.flutterUsage.enabled && + !globals.flutterUsage.suppressAnalytics; return '\nSettings:\n$values\n\n' - 'Analytics reporting is currently ${globals.flutterUsage.enabled ? 'enabled' : 'disabled'}.'; + 'Analytics reporting is currently ${analyticsEnabled ? 'enabled' : 'disabled'}.'; } /// Return null to disable analytics recording of the `config` command. diff --git a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart index ee5a2a5de3..9ab3d78614 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart @@ -288,6 +288,24 @@ void main() { }, overrides: { Usage: () => mockUsage, }); + + testUsingContext('analytics reported disabled when suppressed', () async { + final ConfigCommand configCommand = ConfigCommand(); + final CommandRunner commandRunner = createTestCommandRunner(configCommand); + + mockUsage.suppressAnalytics = true; + + await commandRunner.run([ + 'config', + ]); + + expect( + testLogger.statusText, + containsIgnoringWhitespace('Analytics reporting is currently disabled'), + ); + }, overrides: { + Usage: () => mockUsage, + }); }); } @@ -306,4 +324,7 @@ class MockFlutterVersion extends Mock implements FlutterVersion {} class MockUsage extends Mock implements Usage { @override bool enabled = true; + + @override + bool suppressAnalytics = false; }