diff --git a/packages/flutter_tools/lib/src/hot.dart b/packages/flutter_tools/lib/src/hot.dart index 932aca6f97f..2b1b2d95ac2 100644 --- a/packages/flutter_tools/lib/src/hot.dart +++ b/packages/flutter_tools/lib/src/hot.dart @@ -473,6 +473,7 @@ class HotRunner extends ResidentRunner { printStatus('Restart time: ' '${getElapsedAsMilliseconds(firstFrameTimer.elapsed)}'); flutterUsage.sendEvent('hot', 'restart'); + flutterUsage.sendTiming('hot', 'restart', firstFrameTimer.elapsed); } /// Returns [true] if the reload was successful. @@ -537,6 +538,7 @@ class HotRunner extends ResidentRunner { await firstFrameTimer.firstFrame(); printStatus('Hot reload time: ' '${getElapsedAsMilliseconds(firstFrameTimer.elapsed)}'); + flutterUsage.sendTiming('hot', 'reload', firstFrameTimer.elapsed); return true; } diff --git a/packages/flutter_tools/lib/src/usage.dart b/packages/flutter_tools/lib/src/usage.dart index 1e546c56e80..cca4a7f74ea 100644 --- a/packages/flutter_tools/lib/src/usage.dart +++ b/packages/flutter_tools/lib/src/usage.dart @@ -70,6 +70,10 @@ class Usage { _analytics.sendEvent(category, parameter); } + void sendTiming(String category, String variableName, Duration duration) { + _analytics.sendTiming(variableName, duration.inMilliseconds, category: category); + } + UsageTimer startTimer(String event) { if (suppressAnalytics) return new _MockUsageTimer(); diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index 2f40dbb2339..c75d837b057 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart @@ -138,6 +138,9 @@ class MockUsage implements Usage { @override void sendEvent(String category, String parameter) { } + @override + void sendTiming(String category, String variableName, Duration duration) { } + @override UsageTimer startTimer(String event) => new _MockUsageTimer(event);