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(
StackTrace? firstStackTrace;
return runZoned<Future<int>>(() async {
try {
if (args.contains('--disable-telemetry') &&
args.contains('--enable-telemetry')) {
if (args.contains('--disable-analytics') &&
args.contains('--enable-analytics')) {
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.',
exitCode: 1);
}
// Disable analytics if user passes in the `--disable-telemetry` option
// `flutter --disable-telemetry`
// Disable analytics if user passes in the `--disable-analytics` option
// "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
if (args.contains('--disable-telemetry')) {
if (args.contains('--disable-analytics')) {
// The tool sends the analytics event *before* toggling the flag
// intentionally to be sure that opt-out events are sent correctly.
AnalyticsConfigEvent(enabled: false).send();
......@@ -93,12 +93,12 @@ Future<int> run(
await globals.analytics.setTelemetry(false);
}
// Enable analytics if user passes in the `--enable-telemetry` option
// `flutter --enable-telemetry`
// Enable analytics if user passes in the `--enable-analytics` option
// `flutter --enable-analytics`
//
// Same functionality as `flutter config --analytics` for enabling
// 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
// intentionally to be sure that opt-out events are sent correctly.
AnalyticsConfigEvent(enabled: true).send();
......@@ -315,7 +315,7 @@ Future<int> _exit(int code, {required ShutdownHooks shutdownHooks}) async {
'the flutter tool is migrating to a new analytics system. '
'Disabling analytics collection will disable both the legacy '
'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
......
......@@ -11,11 +11,15 @@ import '../features.dart';
import '../globals.dart' as globals;
import '../reporting/reporting.dart';
import '../runner/flutter_command.dart';
import '../runner/flutter_command_runner.dart';
class ConfigCommand extends FlutterCommand {
ConfigCommand({ bool verboseHelp = false }) {
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',
negatable: false,
help: 'Clear the saved development certificate choice used to sign apps for iOS device deployment.');
......
......@@ -88,7 +88,7 @@ final BotDetector _defaultBotDetector = BotDetector(
);
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
Analytics get analytics => context.get<Analytics>()!;
......
......@@ -26,8 +26,8 @@ abstract final class FlutterGlobalOptions {
static const String kColorFlag = 'color';
static const String kContinuousIntegrationFlag = 'ci';
static const String kDeviceIdOption = 'device-id';
static const String kDisableTelemetryFlag = 'disable-telemetry';
static const String kEnableTelemetryFlag = 'enable-telemetry';
static const String kDisableAnalyticsFlag = 'disable-analytics';
static const String kEnableAnalyticsFlag = 'enable-analytics';
static const String kLocalEngineOption = 'local-engine';
static const String kLocalEngineSrcPathOption = 'local-engine-src-path';
static const String kLocalEngineHostOption = 'local-engine-host';
......@@ -101,17 +101,17 @@ class FlutterCommandRunner extends CommandRunner<void> {
defaultsTo: true,
hide: !verboseHelp,
help: 'Allow Flutter to check for updates when this command runs.');
argParser.addFlag(FlutterGlobalOptions.kSuppressAnalyticsFlag,
argParser.addFlag(FlutterGlobalOptions.kEnableAnalyticsFlag,
negatable: false,
help: 'Suppress analytics reporting for the current CLI invocation.');
argParser.addFlag(FlutterGlobalOptions.kDisableTelemetryFlag,
help: 'Enable telemetry reporting each time a flutter or dart '
'command runs.');
argParser.addFlag(FlutterGlobalOptions.kDisableAnalyticsFlag,
negatable: false,
help: 'Disable telemetry reporting each time a flutter or dart '
'command runs, until it is re-enabled.');
argParser.addFlag(FlutterGlobalOptions.kEnableTelemetryFlag,
argParser.addFlag(FlutterGlobalOptions.kSuppressAnalyticsFlag,
negatable: false,
help: 'Enable telemetry reporting each time a flutter or dart '
'command runs.');
help: 'Suppress analytics reporting for the current CLI invocation.');
argParser.addOption(FlutterGlobalOptions.kPackagesOption,
hide: !verboseHelp,
help: 'Path to your "package_config.json" file.');
......@@ -237,8 +237,8 @@ class FlutterCommandRunner extends CommandRunner<void> {
// If the flag for enabling or disabling telemetry is passed in,
// we will return out
if (topLevelResults.wasParsed(FlutterGlobalOptions.kDisableTelemetryFlag) ||
topLevelResults.wasParsed(FlutterGlobalOptions.kEnableTelemetryFlag)) {
if (topLevelResults.wasParsed(FlutterGlobalOptions.kDisableAnalyticsFlag) ||
topLevelResults.wasParsed(FlutterGlobalOptions.kEnableAnalyticsFlag)) {
return;
}
......
......@@ -326,7 +326,7 @@ void main() {
expect(globals.analytics.shouldShowMessage, true);
await runner.run(
<String>['--disable-telemetry'],
<String>['--disable-analytics'],
() => <FlutterCommand>[],
// This flutterVersion disables crash reporting.
flutterVersion: '[user-branch]/',
......@@ -343,7 +343,7 @@ void main() {
);
testUsingContext(
'runner enabling telemetry with flag',
'runner enabling analytics with flag',
() async {
io.setExitFunctionForTests((int exitCode) {});
......@@ -351,7 +351,7 @@ void main() {
expect(globals.analytics.shouldShowMessage, false);
await runner.run(
<String>['--enable-telemetry'],
<String>['--enable-analytics'],
() => <FlutterCommand>[],
// This flutterVersion disables crash reporting.
flutterVersion: '[user-branch]/',
......@@ -377,8 +377,8 @@ void main() {
final int exitCode = await runner.run(
<String>[
'--disable-telemetry',
'--enable-telemetry',
'--disable-analytics',
'--enable-analytics',
],
() => <FlutterCommand>[],
// This flutterVersion disables crash reporting.
......@@ -538,7 +538,7 @@ class WaitingCrashReporter implements CrashReporter {
}
/// A fake [Analytics] that will be used to test
/// the --disable-telemetry flag
/// the --disable-analytics flag
class FakeAnalytics extends Fake implements Analytics {
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