@@ -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,
|
||||
negatable: false,
|
||||
help: 'Suppress analytics reporting for the current CLI invocation.');
|
||||
argParser.addFlag(FlutterGlobalOptions.kDisableTelemetryFlag,
|
||||
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.kEnableAnalyticsFlag,
|
||||
negatable: false,
|
||||
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.kSuppressAnalyticsFlag,
|
||||
negatable: false,
|
||||
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})
|
||||
|
||||
Reference in New Issue
Block a user