Unverified Commit 16c73829 authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Migrate reporting library to null safety (#80320)

parent 2bc7939a
......@@ -16,7 +16,7 @@ import '../base/utils.dart';
import '../base/version.dart';
import '../build_info.dart';
import '../cache.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../project.dart';
import '../reporting/reporting.dart';
......
......@@ -12,7 +12,7 @@ import '../base/os.dart';
import '../build_info.dart';
import '../cache.dart';
import '../features.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../linux/build_linux.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
......
......@@ -11,7 +11,7 @@ import '../base/common.dart';
import '../build_info.dart';
import '../cache.dart';
import '../features.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../macos/build_macos.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
......
......@@ -11,7 +11,7 @@ import '../base/common.dart';
import '../build_info.dart';
import '../cache.dart';
import '../features.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
import '../windows/build_windows.dart';
......
......@@ -7,7 +7,7 @@
import '../base/common.dart';
import '../convert.dart';
import '../features.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../reporting/reporting.dart';
import '../runner/flutter_command.dart';
......
......@@ -17,7 +17,7 @@ import '../base/process.dart';
import '../build_info.dart';
import '../convert.dart';
import '../device.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../project.dart';
import '../resident_runner.dart';
import '../web/web_runner.dart';
......
......@@ -21,7 +21,6 @@ import 'macos/xcdevice.dart';
import 'macos/xcode.dart';
import 'project.dart';
import 'reporting/crash_reporting.dart';
import 'reporting/reporting.dart';
import 'runner/local_engine.dart';
export 'globals_null_migrated.dart';
......@@ -30,7 +29,6 @@ Artifacts get artifacts => context.get<Artifacts>();
BuildSystem get buildSystem => context.get<BuildSystem>();
CrashReporter get crashReporter => context.get<CrashReporter>();
Doctor get doctor => context.get<Doctor>();
Usage get flutterUsage => context.get<Usage>();
DeviceManager get deviceManager => context.get<DeviceManager>();
FlutterProjectFactory get projectFactory {
......
......@@ -25,6 +25,7 @@ import 'base/user_messages.dart';
import 'cache.dart';
import 'ios/plist_parser.dart';
import 'persistent_tool_state.dart';
import 'reporting/reporting.dart';
import 'version.dart';
Cache get cache => context.get<Cache>()!;
......@@ -36,6 +37,7 @@ Signals get signals => context.get<Signals>() ?? LocalSignals.instance;
AndroidStudio? get androidStudio => context.get<AndroidStudio>();
AndroidSdk? get androidSdk => context.get<AndroidSdk>();
FlutterVersion get flutterVersion => context.get<FlutterVersion>()!;
Usage get flutterUsage => context.get<Usage>()!;
PersistentToolState? get persistentToolState => PersistentToolState.instance;
......
......@@ -21,7 +21,7 @@ import '../build_info.dart';
import '../convert.dart';
import '../device.dart';
import '../device_port_forwarder.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../macos/xcdevice.dart';
import '../project.dart';
import '../protocol_discovery.dart';
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
part of reporting;
class DisabledUsage implements Usage {
......@@ -20,28 +18,28 @@ class DisabledUsage implements Usage {
set enabled(bool value) { }
@override
String get clientId => null;
String get clientId => '';
@override
void sendCommand(String command, { Map<String, String> parameters }) { }
void sendCommand(String command, { Map<String, String>? parameters }) { }
@override
void sendEvent(
String category,
String parameter, {
String label,
int value,
Map<String, String> parameters,
String? label,
int? value,
Map<String, String>? parameters,
}) { }
@override
void sendTiming(String category, String variableName, Duration duration, { String label }) { }
void sendTiming(String category, String variableName, Duration duration, { String? label }) { }
@override
void sendException(dynamic exception) { }
@override
Stream<Map<String, dynamic>> get onSend => null;
Stream<Map<String, dynamic>> get onSend => const Stream<Map<String, dynamic>>.empty();
@override
Future<void> ensureAnalyticsSent() => Future<void>.value();
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
part of reporting;
/// A generic usage even that does not involve custom dimensions.
......@@ -14,13 +12,13 @@ class UsageEvent {
UsageEvent(this.category, this.parameter, {
this.label,
this.value,
@required this.flutterUsage,
required this.flutterUsage,
});
final String category;
final String parameter;
final String label;
final int value;
final String? label;
final int? value;
final Usage flutterUsage;
void send() {
......@@ -37,11 +35,11 @@ class UsageEvent {
/// sync/transfer "overhead" of updating this number of source files.
class HotEvent extends UsageEvent {
HotEvent(String parameter, {
@required this.targetPlatform,
@required this.sdkName,
@required this.emulator,
@required this.fullRestart,
@required this.fastReassemble,
required this.targetPlatform,
required this.sdkName,
required this.emulator,
required this.fullRestart,
required this.fastReassemble,
this.reason,
this.finalLibraryCount,
this.syncedLibraryCount,
......@@ -53,20 +51,20 @@ class HotEvent extends UsageEvent {
this.overallTimeInMs,
}) : super('hot', parameter, flutterUsage: globals.flutterUsage);
final String reason;
final String? reason;
final String targetPlatform;
final String sdkName;
final bool emulator;
final bool fullRestart;
final bool fastReassemble;
final int finalLibraryCount;
final int syncedLibraryCount;
final int syncedClassesCount;
final int syncedProceduresCount;
final int syncedBytes;
final int invalidatedSourcesCount;
final int transferTimeInMs;
final int overallTimeInMs;
final int? finalLibraryCount;
final int? syncedLibraryCount;
final int? syncedClassesCount;
final int? syncedProceduresCount;
final int? syncedBytes;
final int? invalidatedSourcesCount;
final int? transferTimeInMs;
final int? overallTimeInMs;
@override
void send() {
......@@ -76,7 +74,7 @@ class HotEvent extends UsageEvent {
CustomDimensions.hotEventEmulator: emulator.toString(),
CustomDimensions.hotEventFullRestart: fullRestart.toString(),
if (reason != null)
CustomDimensions.hotEventReason: reason,
CustomDimensions.hotEventReason: reason!,
if (finalLibraryCount != null)
CustomDimensions.hotEventFinalLibraryCount: finalLibraryCount.toString(),
if (syncedLibraryCount != null)
......@@ -103,9 +101,9 @@ class HotEvent extends UsageEvent {
/// An event that reports the result of a [DoctorValidator]
class DoctorResultEvent extends UsageEvent {
DoctorResultEvent({
@required this.validator,
@required this.result,
Usage flutterUsage,
required this.validator,
required this.result,
Usage? flutterUsage,
}) : super(
'doctor-result',
'${validator.runtimeType}',
......@@ -139,20 +137,20 @@ class DoctorResultEvent extends UsageEvent {
/// An event that reports on the result of a pub invocation.
class PubResultEvent extends UsageEvent {
PubResultEvent({
@required String context,
@required String result,
@required Usage usage,
required String context,
required String result,
required Usage usage,
}) : super('pub-result', context, label: result, flutterUsage: usage);
}
/// An event that reports something about a build.
class BuildEvent extends UsageEvent {
BuildEvent(String label, {
String command,
String settings,
String eventError,
@required Usage flutterUsage,
@required String type,
String? command,
String? settings,
String? eventError,
required Usage flutterUsage,
required String type,
}) : _command = command,
_settings = settings,
_eventError = eventError,
......@@ -165,19 +163,19 @@ class BuildEvent extends UsageEvent {
flutterUsage: flutterUsage,
);
final String _command;
final String _settings;
final String _eventError;
final String? _command;
final String? _settings;
final String? _eventError;
@override
void send() {
final Map<String, String> parameters = _useCdKeys(<CustomDimensions, String>{
if (_command != null)
CustomDimensions.buildEventCommand: _command,
CustomDimensions.buildEventCommand: _command!,
if (_settings != null)
CustomDimensions.buildEventSettings: _settings,
CustomDimensions.buildEventSettings: _settings!,
if (_eventError != null)
CustomDimensions.buildEventError: _eventError,
CustomDimensions.buildEventError: _eventError!,
});
flutterUsage.sendEvent(
category,
......@@ -226,7 +224,7 @@ class CommandResultEvent extends UsageEvent {
class AnalyticsConfigEvent extends UsageEvent {
AnalyticsConfigEvent({
/// Whether analytics reporting is being enabled (true) or disabled (false).
@required bool enabled,
required bool enabled,
}) : super(
'analytics',
'enabled',
......@@ -238,11 +236,11 @@ class AnalyticsConfigEvent extends UsageEvent {
/// An event that reports when the code size measurement is run via `--analyze-size`.
class CodeSizeEvent extends UsageEvent {
CodeSizeEvent(String platform, {
@required Usage flutterUsage,
required Usage flutterUsage,
}) : super(
'code-size-analysis',
platform,
flutterUsage: flutterUsage ?? globals.flutterUsage,
flutterUsage: flutterUsage
);
}
......@@ -279,14 +277,15 @@ class NullSafetyAnalysisEvent implements UsageEvent {
return;
}
int migrated = 0;
LanguageVersion languageVersion;
LanguageVersion? languageVersion;
for (final Package package in packageConfig.packages) {
final LanguageVersion? packageLanguageVersion = package.languageVersion;
if (package.name == currentPackage) {
languageVersion = package.languageVersion;
languageVersion = packageLanguageVersion;
}
if (package.languageVersion != null &&
package.languageVersion.major >= nullSafeVersion.major &&
package.languageVersion.minor >= nullSafeVersion.minor) {
if (packageLanguageVersion != null &&
packageLanguageVersion.major >= nullSafeVersion.major &&
packageLanguageVersion.minor >= nullSafeVersion.minor) {
migrated += 1;
}
}
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
library reporting;
import 'dart:async';
......@@ -20,7 +18,7 @@ import '../build_info.dart';
import '../dart/language_version.dart';
import '../doctor_validator.dart';
import '../features.dart';
import '../globals.dart' as globals;
import '../globals_null_migrated.dart' as globals;
import '../version.dart';
import 'first_run.dart';
......
......@@ -25,7 +25,7 @@ import 'dart/package_map.dart';
import 'devfs.dart';
import 'device.dart';
import 'features.dart';
import 'globals.dart' as globals;
import 'globals_null_migrated.dart' as globals;
import 'reporting/reporting.dart';
import 'resident_devtools_handler.dart';
import 'resident_runner.dart';
......
......@@ -18,7 +18,7 @@ import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/commands/packages.dart';
import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/globals_null_migrated.dart' as globals;
import '../../src/common.dart';
import '../../src/context.dart';
......
......@@ -17,7 +17,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/features.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/globals_null_migrated.dart' as globals;
import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:flutter_tools/src/runner/flutter_command.dart';
import 'package:flutter_tools/src/version.dart';
......
......@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/doctor_validator.dart';
import 'package:flutter_tools/src/reporting/reporting.dart';
......
......@@ -15,7 +15,7 @@ import 'package:flutter_tools/src/isolated/devfs_web.dart';
import 'package:flutter_tools/src/isolated/resident_web_runner.dart';
import 'package:flutter_tools/src/build_system/build_system.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/globals_null_migrated.dart' as globals;
import 'package:flutter_tools/src/project.dart';
import 'package:flutter_tools/src/resident_runner.dart';
import 'package:flutter_tools/src/web/chrome.dart';
......
......@@ -21,7 +21,7 @@ import 'package:flutter_tools/src/isolated/resident_web_runner.dart';
import 'package:flutter_tools/src/compile.dart';
import 'package:flutter_tools/src/devfs.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/globals_null_migrated.dart' as globals;
import 'package:flutter_tools/src/project.dart';
import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:flutter_tools/src/resident_runner.dart';
......
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