diff --git a/packages/flutter_tools/bin/fuchsia_asset_builder.dart b/packages/flutter_tools/bin/fuchsia_asset_builder.dart index 2de562425f..063056b1ce 100644 --- a/packages/flutter_tools/bin/fuchsia_asset_builder.dart +++ b/packages/flutter_tools/bin/fuchsia_asset_builder.dart @@ -13,10 +13,10 @@ import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/context_runner.dart'; import 'package:flutter_tools/src/devfs.dart'; -import 'package:flutter_tools/src/disabled_usage.dart'; import 'package:flutter_tools/src/bundle.dart'; import 'package:flutter_tools/src/globals.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/disabled_usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; const String _kOptionPackages = 'packages'; const String _kOptionAsset = 'asset-dir'; diff --git a/packages/flutter_tools/bin/fuchsia_tester.dart b/packages/flutter_tools/bin/fuchsia_tester.dart index a83c47b2a9..ee67b685f6 100644 --- a/packages/flutter_tools/bin/fuchsia_tester.dart +++ b/packages/flutter_tools/bin/fuchsia_tester.dart @@ -16,12 +16,12 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/context_runner.dart'; import 'package:flutter_tools/src/dart/package_map.dart'; import 'package:flutter_tools/src/artifacts.dart'; -import 'package:flutter_tools/src/disabled_usage.dart'; import 'package:flutter_tools/src/globals.dart'; import 'package:flutter_tools/src/project.dart'; +import 'package:flutter_tools/src/reporting/disabled_usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/test/coverage_collector.dart'; import 'package:flutter_tools/src/test/runner.dart'; -import 'package:flutter_tools/src/usage.dart'; // This was largely inspired by lib/src/commands/test.dart. diff --git a/packages/flutter_tools/lib/runner.dart b/packages/flutter_tools/lib/runner.dart index d8174ad0c0..02760126fd 100644 --- a/packages/flutter_tools/lib/runner.dart +++ b/packages/flutter_tools/lib/runner.dart @@ -17,12 +17,12 @@ import 'src/base/logger.dart'; import 'src/base/process.dart'; import 'src/base/utils.dart'; import 'src/context_runner.dart'; -import 'src/crash_reporting.dart'; import 'src/doctor.dart'; import 'src/globals.dart'; +import 'src/reporting/crash_reporting.dart'; +import 'src/reporting/usage.dart'; import 'src/runner/flutter_command.dart'; import 'src/runner/flutter_command_runner.dart'; -import 'src/usage.dart'; import 'src/version.dart'; /// Runs the Flutter tool with support for the specified list of [commands]. @@ -109,18 +109,19 @@ Future _handleToolError( stderr.writeln(stackTrace.toString()); return _exit(1); } else { - flutterUsage.sendException(error, stackTrace); + // Report to both [Usage] and [CrashReportSender]. + flutterUsage.sendException(error); + await CrashReportSender.instance.sendReport( + error: error, + stackTrace: stackTrace, + getFlutterVersion: getFlutterVersion, + ); if (error is String) stderr.writeln('Oops; flutter has exited unexpectedly: "$error".'); else stderr.writeln('Oops; flutter has exited unexpectedly.'); - await CrashReportSender.instance.sendReport( - error: error, - stackTrace: stackTrace, - getFlutterVersion: getFlutterVersion, - ); try { final File file = await _createLocalCrashReport(args, error, stackTrace); stderr.writeln( diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index 564cd088da..bf0ad9afbb 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart @@ -22,8 +22,8 @@ import '../cache.dart'; import '../flutter_manifest.dart'; import '../globals.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../runner/flutter_command.dart'; -import '../usage.dart'; import 'android_sdk.dart'; import 'android_studio.dart'; diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 00264f3c57..db5d6259e7 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -14,7 +14,8 @@ import '../dart/package_map.dart'; import '../globals.dart'; import '../macos/xcode.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; + import 'context.dart'; import 'file_system.dart'; import 'fingerprint.dart'; diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index da0c7fcdfb..ef2235f5d0 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -9,8 +9,8 @@ import '../base/file_system.dart'; import '../build_info.dart'; import '../bundle.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../runner/flutter_command.dart' show FlutterOptions, FlutterCommandResult; -import '../usage.dart'; import '../version.dart'; import 'build.dart'; diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart index 89d0142283..bc286673f9 100644 --- a/packages/flutter_tools/lib/src/commands/config.dart +++ b/packages/flutter_tools/lib/src/commands/config.dart @@ -8,8 +8,8 @@ import '../android/android_sdk.dart'; import '../android/android_studio.dart'; import '../convert.dart'; import '../globals.dart'; +import '../reporting/usage.dart'; import '../runner/flutter_command.dart'; -import '../usage.dart'; class ConfigCommand extends FlutterCommand { ConfigCommand({ bool verboseHelp = false }) { diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index f1feee0f47..17458ee605 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -22,9 +22,9 @@ import '../dart/pub.dart'; import '../doctor.dart'; import '../globals.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../runner/flutter_command.dart'; import '../template.dart'; -import '../usage.dart'; import '../version.dart'; enum _ProjectType { diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index bb3607a42c..45f0e514e2 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart @@ -8,8 +8,8 @@ import '../base/common.dart'; import '../base/os.dart'; import '../dart/pub.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../runner/flutter_command.dart'; -import '../usage.dart'; class PackagesCommand extends FlutterCommand { PackagesCommand() { diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 35251f2e80..91de004a58 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -16,14 +16,15 @@ import '../device.dart'; import '../globals.dart'; import '../macos/xcode.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../resident_runner.dart'; import '../resident_web_runner.dart'; import '../run_cold.dart'; import '../run_hot.dart'; import '../runner/flutter_command.dart'; import '../tracing.dart'; -import '../usage.dart'; import '../version.dart'; + import 'daemon.dart'; abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopmentArtifacts { diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index ba5d910ad5..69fee629b4 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -41,8 +41,8 @@ import 'macos/cocoapods_validator.dart'; import 'macos/macos_workflow.dart'; import 'macos/xcode.dart'; import 'macos/xcode_validator.dart'; +import 'reporting/usage.dart'; import 'run_hot.dart'; -import 'usage.dart'; import 'version.dart'; import 'web/chrome.dart'; import 'web/workflow.dart'; diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index c4aa3a67bc..fa4081d951 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart @@ -32,8 +32,8 @@ import 'macos/cocoapods_validator.dart'; import 'macos/macos_workflow.dart'; import 'macos/xcode_validator.dart'; import 'proxy_validator.dart'; +import 'reporting/usage.dart'; import 'tester/flutter_tester.dart'; -import 'usage.dart'; import 'version.dart'; import 'vscode/vscode_validator.dart'; import 'web/web_validator.dart'; diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart index 376920ebfc..d52b0242f2 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_build.dart @@ -16,7 +16,7 @@ import '../convert.dart'; import '../devfs.dart'; import '../globals.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; import 'fuchsia_pm.dart'; import 'fuchsia_sdk.dart'; diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 2bcdd59463..92f56eb786 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -24,8 +24,8 @@ import '../globals.dart'; import '../macos/cocoapod_utils.dart'; import '../macos/xcode.dart'; import '../project.dart'; +import '../reporting/usage.dart'; import '../services.dart'; -import '../usage.dart'; import 'code_signing.dart'; import 'xcodeproj.dart'; diff --git a/packages/flutter_tools/lib/src/linux/build_linux.dart b/packages/flutter_tools/lib/src/linux/build_linux.dart index 20437310ae..1271e38284 100644 --- a/packages/flutter_tools/lib/src/linux/build_linux.dart +++ b/packages/flutter_tools/lib/src/linux/build_linux.dart @@ -13,7 +13,7 @@ import '../cache.dart'; import '../convert.dart'; import '../globals.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; /// Builds the Linux project through the Makefile. Future buildLinux(LinuxProject linuxProject, BuildInfo buildInfo, {String target = 'lib/main.dart'}) async { diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart index b4ceec6713..2ac3b54513 100644 --- a/packages/flutter_tools/lib/src/macos/build_macos.dart +++ b/packages/flutter_tools/lib/src/macos/build_macos.dart @@ -12,7 +12,8 @@ import '../convert.dart'; import '../globals.dart'; import '../ios/xcodeproj.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; + import 'cocoapod_utils.dart'; /// Builds the macOS project through xcodebuild. diff --git a/packages/flutter_tools/lib/src/reporting/README.md b/packages/flutter_tools/lib/src/reporting/README.md new file mode 100644 index 0000000000..a6a853f2d5 --- /dev/null +++ b/packages/flutter_tools/lib/src/reporting/README.md @@ -0,0 +1,13 @@ +Flutter reports data to two separate systems: + +1. Anonymous usage statistics are reported to Google Analytics (for statistics + such as the number of times the `flutter` tool was run within a given time + period). The code that manages this is in [usage.dart]. +1. Crash reports for the `flutter` tool. These are not reports of when Flutter + applications crash, but rather when the command-line `flutter` tool itself + crashes. The code that manages this is in [crash_reporting.dart]. + +## Opting out + +Users can opt out of all reporting in a single place by running +`flutter config --no-analytics`. diff --git a/packages/flutter_tools/lib/src/crash_reporting.dart b/packages/flutter_tools/lib/src/reporting/crash_reporting.dart similarity index 97% rename from packages/flutter_tools/lib/src/crash_reporting.dart rename to packages/flutter_tools/lib/src/reporting/crash_reporting.dart index 31f3bb1c84..405904d507 100644 --- a/packages/flutter_tools/lib/src/crash_reporting.dart +++ b/packages/flutter_tools/lib/src/reporting/crash_reporting.dart @@ -8,10 +8,11 @@ import 'package:http/http.dart' as http; import 'package:meta/meta.dart'; import 'package:stack_trace/stack_trace.dart'; -import 'base/io.dart'; -import 'base/os.dart'; -import 'base/platform.dart'; -import 'globals.dart'; +import '../base/io.dart'; +import '../base/os.dart'; +import '../base/platform.dart'; +import '../globals.dart'; + import 'usage.dart'; /// Tells crash backend that the error is from the Flutter CLI. diff --git a/packages/flutter_tools/lib/src/disabled_usage.dart b/packages/flutter_tools/lib/src/reporting/disabled_usage.dart similarity index 94% rename from packages/flutter_tools/lib/src/disabled_usage.dart rename to packages/flutter_tools/lib/src/reporting/disabled_usage.dart index 8be5a96d48..68ad76a5bb 100644 --- a/packages/flutter_tools/lib/src/disabled_usage.dart +++ b/packages/flutter_tools/lib/src/reporting/disabled_usage.dart @@ -35,7 +35,7 @@ class DisabledUsage implements Usage { void sendTiming(String category, String variableName, Duration duration, { String label }) { } @override - void sendException(dynamic exception, StackTrace trace) { } + void sendException(dynamic exception) { } @override Stream> get onSend => null; diff --git a/packages/flutter_tools/lib/src/usage.dart b/packages/flutter_tools/lib/src/reporting/usage.dart similarity index 95% rename from packages/flutter_tools/lib/src/usage.dart rename to packages/flutter_tools/lib/src/reporting/usage.dart index f68e4a177b..4f4d8ba5e8 100644 --- a/packages/flutter_tools/lib/src/usage.dart +++ b/packages/flutter_tools/lib/src/reporting/usage.dart @@ -7,13 +7,13 @@ import 'dart:async'; import 'package:meta/meta.dart'; import 'package:usage/usage_io.dart'; -import 'base/context.dart'; -import 'base/file_system.dart'; -import 'base/os.dart'; -import 'base/platform.dart'; -import 'base/utils.dart'; -import 'globals.dart'; -import 'version.dart'; +import '../base/context.dart'; +import '../base/file_system.dart'; +import '../base/os.dart'; +import '../base/platform.dart'; +import '../base/utils.dart'; +import '../globals.dart'; +import '../version.dart'; const String _kFlutterUA = 'UA-67589403-6'; @@ -152,9 +152,9 @@ class Usage { } } - void sendException(dynamic exception, StackTrace trace) { + void sendException(dynamic exception) { if (!suppressAnalytics) - _analytics.sendException('${exception.runtimeType}\n${sanitizeStacktrace(trace)}'); + _analytics.sendException(exception.runtimeType.toString()); } /// Fires whenever analytics data is sent over the network. diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 36d1f616de..0e6eb3ffda 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -21,8 +21,8 @@ import 'convert.dart'; import 'devfs.dart'; import 'device.dart'; import 'globals.dart'; +import 'reporting/usage.dart'; import 'resident_runner.dart'; -import 'usage.dart'; import 'vmservice.dart'; class HotRunnerConfig { diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index d39d4d15fe..04c58618f0 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -27,7 +27,7 @@ import '../device.dart'; import '../doctor.dart'; import '../globals.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; import '../version.dart'; import 'flutter_command_runner.dart'; diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart index fbed75d969..babe49cc2e 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart @@ -30,8 +30,8 @@ import '../convert.dart'; import '../dart/package_map.dart'; import '../device.dart'; import '../globals.dart'; +import '../reporting/usage.dart'; import '../tester/flutter_tester.dart'; -import '../usage.dart'; import '../version.dart'; import '../vmservice.dart'; diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart index 5f4b51586e..752bae9175 100644 --- a/packages/flutter_tools/lib/src/web/compile.dart +++ b/packages/flutter_tools/lib/src/web/compile.dart @@ -13,7 +13,7 @@ import '../build_info.dart'; import '../bundle.dart'; import '../globals.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; /// The [WebCompilationProxy] instance. WebCompilationProxy get webCompilationProxy => context.get(); diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index 9f1a82cf2d..1d9728840e 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -13,7 +13,8 @@ import '../cache.dart'; import '../convert.dart'; import '../globals.dart'; import '../project.dart'; -import '../usage.dart'; +import '../reporting/usage.dart'; + import 'msbuild_utils.dart'; import 'visual_studio.dart'; diff --git a/packages/flutter_tools/test/general.shard/analytics_test.dart b/packages/flutter_tools/test/general.shard/analytics_test.dart index 4c4cd53ebb..91fee0cce7 100644 --- a/packages/flutter_tools/test/general.shard/analytics_test.dart +++ b/packages/flutter_tools/test/general.shard/analytics_test.dart @@ -13,7 +13,7 @@ import 'package:flutter_tools/src/commands/config.dart'; import 'package:flutter_tools/src/commands/doctor.dart'; import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/version.dart'; import '../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/commands/build_bundle_test.dart b/packages/flutter_tools/test/general.shard/commands/build_bundle_test.dart index 6c6c8ad25c..23e7a41776 100644 --- a/packages/flutter_tools/test/general.shard/commands/build_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/build_bundle_test.dart @@ -7,7 +7,7 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_bundle.dart'; import 'package:flutter_tools/src/bundle.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:mockito/mockito.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/commands/create_usage_test.dart b/packages/flutter_tools/test/general.shard/commands/create_usage_test.dart index 735cee5a63..8ab8118eb1 100644 --- a/packages/flutter_tools/test/general.shard/commands/create_usage_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/create_usage_test.dart @@ -7,7 +7,7 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/create.dart'; import 'package:flutter_tools/src/doctor.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import '../../src/common.dart'; import '../../src/testbed.dart'; diff --git a/packages/flutter_tools/test/general.shard/commands/doctor_test.dart b/packages/flutter_tools/test/general.shard/commands/doctor_test.dart index 5aa2a891a7..26dd7c629b 100644 --- a/packages/flutter_tools/test/general.shard/commands/doctor_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/doctor_test.dart @@ -18,7 +18,7 @@ import 'package:flutter_tools/src/globals.dart'; import 'package:flutter_tools/src/proxy_validator.dart'; import 'package:flutter_tools/src/vscode/vscode.dart'; import 'package:flutter_tools/src/vscode/vscode_validator.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/commands/packages_test.dart b/packages/flutter_tools/test/general.shard/commands/packages_test.dart index 8e0269b6b3..5129568d43 100644 --- a/packages/flutter_tools/test/general.shard/commands/packages_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/packages_test.dart @@ -10,7 +10,7 @@ import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/utils.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/packages.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:process/process.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/crash_reporting_test.dart b/packages/flutter_tools/test/general.shard/crash_reporting_test.dart index e9de43fae0..75b617cfe4 100644 --- a/packages/flutter_tools/test/general.shard/crash_reporting_test.dart +++ b/packages/flutter_tools/test/general.shard/crash_reporting_test.dart @@ -17,7 +17,7 @@ import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/cache.dart'; -import 'package:flutter_tools/src/crash_reporting.dart'; +import 'package:flutter_tools/src/reporting/crash_reporting.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; import 'package:pedantic/pedantic.dart'; diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart index 94ec4395f8..858c2dfa22 100644 --- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart @@ -8,9 +8,9 @@ import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/devfs.dart'; import 'package:flutter_tools/src/device.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/resident_runner.dart'; import 'package:flutter_tools/src/run_hot.dart'; -import 'package:flutter_tools/src/usage.dart'; import 'package:flutter_tools/src/vmservice.dart'; import 'package:json_rpc_2/json_rpc_2.dart'; import 'package:mockito/mockito.dart'; diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart index e3502c41b5..ac9fc367af 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart @@ -4,7 +4,7 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/base/time.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; import 'package:flutter_tools/src/version.dart'; diff --git a/packages/flutter_tools/test/general.shard/runner/utils.dart b/packages/flutter_tools/test/general.shard/runner/utils.dart index e69e50d37f..57e8af6040 100644 --- a/packages/flutter_tools/test/general.shard/runner/utils.dart +++ b/packages/flutter_tools/test/general.shard/runner/utils.dart @@ -5,7 +5,7 @@ import 'dart:async'; import 'package:flutter_tools/src/cache.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; import 'package:mockito/mockito.dart'; diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index c7fc8ee471..fa28b0501a 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart @@ -21,7 +21,7 @@ import 'package:flutter_tools/src/ios/simulators.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/base/time.dart'; import 'package:flutter_tools/src/project.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; @@ -302,7 +302,7 @@ class MockUsage implements Usage { void sendTiming(String category, String variableName, Duration duration, { String label }) { } @override - void sendException(dynamic exception, StackTrace trace) { } + void sendException(dynamic exception) { } @override Stream> get onSend => null; diff --git a/packages/flutter_tools/test/src/testbed.dart b/packages/flutter_tools/test/src/testbed.dart index 3714684bf2..32fff92b6d 100644 --- a/packages/flutter_tools/test/src/testbed.dart +++ b/packages/flutter_tools/test/src/testbed.dart @@ -16,7 +16,7 @@ import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/context_runner.dart'; -import 'package:flutter_tools/src/usage.dart'; +import 'package:flutter_tools/src/reporting/usage.dart'; import 'package:flutter_tools/src/version.dart'; import 'context.dart'; @@ -164,7 +164,7 @@ class NoOpUsage implements Usage { void sendEvent(String category, String parameter,{ Map parameters }) {} @override - void sendException(dynamic exception, StackTrace trace) {} + void sendException(dynamic exception) {} @override void sendTiming(String category, String variableName, Duration duration, { String label }) {}