Unverified Commit e9beaea0 authored by Elias Yishak's avatar Elias Yishak Committed by GitHub

Clean up analytics opt in/out flags (#132588)

Fixes:
- #132258
parent dc8377b1
...@@ -61,20 +61,20 @@ Future<int> run( ...@@ -61,20 +61,20 @@ Future<int> run(
StackTrace? firstStackTrace; StackTrace? firstStackTrace;
return runZoned<Future<int>>(() async { return runZoned<Future<int>>(() async {
try { try {
if (args.contains('--disable-telemetry') && if (args.contains('--disable-analytics') &&
args.contains('--enable-telemetry')) { args.contains('--enable-analytics')) {
throwToolExit( throwToolExit(
'Both enable and disable telemetry commands were detected ' 'Both enable and disable analytics commands were detected '
'when only one can be supplied per invocation.', 'when only one can be supplied per invocation.',
exitCode: 1); exitCode: 1);
} }
// Disable analytics if user passes in the `--disable-telemetry` option // Disable analytics if user passes in the `--disable-analytics` option
// `flutter --disable-telemetry` // "flutter --disable-analytics"
// //
// Same functionality as `flutter config --no-analytics` for disabling // Same functionality as "flutter config --no-analytics" for disabling
// except with the `value` hard coded as false // except with the `value` hard coded as false
if (args.contains('--disable-telemetry')) { if (args.contains('--disable-analytics')) {
// The tool sends the analytics event *before* toggling the flag // The tool sends the analytics event *before* toggling the flag
// intentionally to be sure that opt-out events are sent correctly. // intentionally to be sure that opt-out events are sent correctly.
AnalyticsConfigEvent(enabled: false).send(); AnalyticsConfigEvent(enabled: false).send();
...@@ -93,12 +93,12 @@ Future<int> run( ...@@ -93,12 +93,12 @@ Future<int> run(
await globals.analytics.setTelemetry(false); await globals.analytics.setTelemetry(false);
} }
// Enable analytics if user passes in the `--enable-telemetry` option // Enable analytics if user passes in the `--enable-analytics` option
// `flutter --enable-telemetry` // `flutter --enable-analytics`
// //
// Same functionality as `flutter config --analytics` for enabling // Same functionality as `flutter config --analytics` for enabling
// except with the `value` hard coded as true // except with the `value` hard coded as true
if (args.contains('--enable-telemetry')) { if (args.contains('--enable-analytics')) {
// The tool sends the analytics event *before* toggling the flag // The tool sends the analytics event *before* toggling the flag
// intentionally to be sure that opt-out events are sent correctly. // intentionally to be sure that opt-out events are sent correctly.
AnalyticsConfigEvent(enabled: true).send(); AnalyticsConfigEvent(enabled: true).send();
...@@ -315,7 +315,7 @@ Future<int> _exit(int code, {required ShutdownHooks shutdownHooks}) async { ...@@ -315,7 +315,7 @@ Future<int> _exit(int code, {required ShutdownHooks shutdownHooks}) async {
'the flutter tool is migrating to a new analytics system. ' 'the flutter tool is migrating to a new analytics system. '
'Disabling analytics collection will disable both the legacy ' 'Disabling analytics collection will disable both the legacy '
'and new analytics collection systems. ' 'and new analytics collection systems. '
'You can disable analytics reporting by running `flutter --disable-telemetry`\n'); 'You can disable analytics reporting by running `flutter --disable-analytics`\n');
} }
// Invoking this will onboard the flutter tool onto // Invoking this will onboard the flutter tool onto
......
...@@ -11,11 +11,15 @@ import '../features.dart'; ...@@ -11,11 +11,15 @@ import '../features.dart';
import '../globals.dart' as globals; import '../globals.dart' as globals;
import '../reporting/reporting.dart'; import '../reporting/reporting.dart';
import '../runner/flutter_command.dart'; import '../runner/flutter_command.dart';
import '../runner/flutter_command_runner.dart';
class ConfigCommand extends FlutterCommand { class ConfigCommand extends FlutterCommand {
ConfigCommand({ bool verboseHelp = false }) { ConfigCommand({ bool verboseHelp = false }) {
argParser.addFlag('analytics', argParser.addFlag('analytics',
help: 'Enable or disable reporting anonymously tool usage statistics and crash reports.'); hide: !verboseHelp,
help: 'Enable or disable reporting anonymously tool usage statistics and crash reports.\n'
'(An alias for "--${FlutterGlobalOptions.kEnableAnalyticsFlag}" '
'and "--${FlutterGlobalOptions.kDisableAnalyticsFlag}" top level flags.)');
argParser.addFlag('clear-ios-signing-cert', argParser.addFlag('clear-ios-signing-cert',
negatable: false, negatable: false,
help: 'Clear the saved development certificate choice used to sign apps for iOS device deployment.'); help: 'Clear the saved development certificate choice used to sign apps for iOS device deployment.');
......
...@@ -88,7 +88,7 @@ final BotDetector _defaultBotDetector = BotDetector( ...@@ -88,7 +88,7 @@ final BotDetector _defaultBotDetector = BotDetector(
); );
Future<bool> get isRunningOnBot => botDetector.isRunningOnBot; Future<bool> get isRunningOnBot => botDetector.isRunningOnBot;
// Analytics instance for package:unified_analytics for telemetry // Analytics instance for package:unified_analytics for analytics
// reporting for all Flutter and Dart related tooling // reporting for all Flutter and Dart related tooling
Analytics get analytics => context.get<Analytics>()!; Analytics get analytics => context.get<Analytics>()!;
......
...@@ -26,8 +26,8 @@ abstract final class FlutterGlobalOptions { ...@@ -26,8 +26,8 @@ abstract final class FlutterGlobalOptions {
static const String kColorFlag = 'color'; static const String kColorFlag = 'color';
static const String kContinuousIntegrationFlag = 'ci'; static const String kContinuousIntegrationFlag = 'ci';
static const String kDeviceIdOption = 'device-id'; static const String kDeviceIdOption = 'device-id';
static const String kDisableTelemetryFlag = 'disable-telemetry'; static const String kDisableAnalyticsFlag = 'disable-analytics';
static const String kEnableTelemetryFlag = 'enable-telemetry'; static const String kEnableAnalyticsFlag = 'enable-analytics';
static const String kLocalEngineOption = 'local-engine'; static const String kLocalEngineOption = 'local-engine';
static const String kLocalEngineSrcPathOption = 'local-engine-src-path'; static const String kLocalEngineSrcPathOption = 'local-engine-src-path';
static const String kLocalEngineHostOption = 'local-engine-host'; static const String kLocalEngineHostOption = 'local-engine-host';
...@@ -101,17 +101,17 @@ class FlutterCommandRunner extends CommandRunner<void> { ...@@ -101,17 +101,17 @@ class FlutterCommandRunner extends CommandRunner<void> {
defaultsTo: true, defaultsTo: true,
hide: !verboseHelp, hide: !verboseHelp,
help: 'Allow Flutter to check for updates when this command runs.'); help: 'Allow Flutter to check for updates when this command runs.');
argParser.addFlag(FlutterGlobalOptions.kSuppressAnalyticsFlag, argParser.addFlag(FlutterGlobalOptions.kEnableAnalyticsFlag,
negatable: false, negatable: false,
help: 'Suppress analytics reporting for the current CLI invocation.'); help: 'Enable telemetry reporting each time a flutter or dart '
argParser.addFlag(FlutterGlobalOptions.kDisableTelemetryFlag, 'command runs.');
argParser.addFlag(FlutterGlobalOptions.kDisableAnalyticsFlag,
negatable: false, negatable: false,
help: 'Disable telemetry reporting each time a flutter or dart ' help: 'Disable telemetry reporting each time a flutter or dart '
'command runs, until it is re-enabled.'); 'command runs, until it is re-enabled.');
argParser.addFlag(FlutterGlobalOptions.kEnableTelemetryFlag, argParser.addFlag(FlutterGlobalOptions.kSuppressAnalyticsFlag,
negatable: false, negatable: false,
help: 'Enable telemetry reporting each time a flutter or dart ' help: 'Suppress analytics reporting for the current CLI invocation.');
'command runs.');
argParser.addOption(FlutterGlobalOptions.kPackagesOption, argParser.addOption(FlutterGlobalOptions.kPackagesOption,
hide: !verboseHelp, hide: !verboseHelp,
help: 'Path to your "package_config.json" file.'); help: 'Path to your "package_config.json" file.');
...@@ -237,8 +237,8 @@ class FlutterCommandRunner extends CommandRunner<void> { ...@@ -237,8 +237,8 @@ class FlutterCommandRunner extends CommandRunner<void> {
// If the flag for enabling or disabling telemetry is passed in, // If the flag for enabling or disabling telemetry is passed in,
// we will return out // we will return out
if (topLevelResults.wasParsed(FlutterGlobalOptions.kDisableTelemetryFlag) || if (topLevelResults.wasParsed(FlutterGlobalOptions.kDisableAnalyticsFlag) ||
topLevelResults.wasParsed(FlutterGlobalOptions.kEnableTelemetryFlag)) { topLevelResults.wasParsed(FlutterGlobalOptions.kEnableAnalyticsFlag)) {
return; return;
} }
......
...@@ -326,7 +326,7 @@ void main() { ...@@ -326,7 +326,7 @@ void main() {
expect(globals.analytics.shouldShowMessage, true); expect(globals.analytics.shouldShowMessage, true);
await runner.run( await runner.run(
<String>['--disable-telemetry'], <String>['--disable-analytics'],
() => <FlutterCommand>[], () => <FlutterCommand>[],
// This flutterVersion disables crash reporting. // This flutterVersion disables crash reporting.
flutterVersion: '[user-branch]/', flutterVersion: '[user-branch]/',
...@@ -343,7 +343,7 @@ void main() { ...@@ -343,7 +343,7 @@ void main() {
); );
testUsingContext( testUsingContext(
'runner enabling telemetry with flag', 'runner enabling analytics with flag',
() async { () async {
io.setExitFunctionForTests((int exitCode) {}); io.setExitFunctionForTests((int exitCode) {});
...@@ -351,7 +351,7 @@ void main() { ...@@ -351,7 +351,7 @@ void main() {
expect(globals.analytics.shouldShowMessage, false); expect(globals.analytics.shouldShowMessage, false);
await runner.run( await runner.run(
<String>['--enable-telemetry'], <String>['--enable-analytics'],
() => <FlutterCommand>[], () => <FlutterCommand>[],
// This flutterVersion disables crash reporting. // This flutterVersion disables crash reporting.
flutterVersion: '[user-branch]/', flutterVersion: '[user-branch]/',
...@@ -377,8 +377,8 @@ void main() { ...@@ -377,8 +377,8 @@ void main() {
final int exitCode = await runner.run( final int exitCode = await runner.run(
<String>[ <String>[
'--disable-telemetry', '--disable-analytics',
'--enable-telemetry', '--enable-analytics',
], ],
() => <FlutterCommand>[], () => <FlutterCommand>[],
// This flutterVersion disables crash reporting. // This flutterVersion disables crash reporting.
...@@ -538,7 +538,7 @@ class WaitingCrashReporter implements CrashReporter { ...@@ -538,7 +538,7 @@ class WaitingCrashReporter implements CrashReporter {
} }
/// A fake [Analytics] that will be used to test /// A fake [Analytics] that will be used to test
/// the --disable-telemetry flag /// the --disable-analytics flag
class FakeAnalytics extends Fake implements Analytics { class FakeAnalytics extends Fake implements Analytics {
FakeAnalytics({bool fakeTelemetryStatusOverride = true}) FakeAnalytics({bool fakeTelemetryStatusOverride = true})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment