Migrate doctor to null safety (#92131)
This commit is contained in:
parent
c3242a16b8
commit
8865212254
@ -19,7 +19,7 @@ import 'src/base/logger.dart';
|
||||
import 'src/base/process.dart';
|
||||
import 'src/context_runner.dart';
|
||||
import 'src/doctor.dart';
|
||||
import 'src/globals.dart' as globals;
|
||||
import 'src/globals_null_migrated.dart' as globals;
|
||||
import 'src/reporting/crash_reporting.dart';
|
||||
import 'src/runner/flutter_command.dart';
|
||||
import 'src/runner/flutter_command_runner.dart';
|
||||
|
@ -256,7 +256,6 @@ class _DeferredComponentAndroidFiles {
|
||||
final Directory templateComponentDir = templatesDir.childDirectory('module${globals.fs.path.separator}android${globals.fs.path.separator}deferred_component');
|
||||
template = Template(templateComponentDir, templateComponentDir,
|
||||
fileSystem: globals.fs,
|
||||
templateManifest: null,
|
||||
logger: logger,
|
||||
templateRenderer: globals.templateRenderer,
|
||||
);
|
||||
|
@ -8,7 +8,7 @@ import '../base/common.dart';
|
||||
import '../base/utils.dart';
|
||||
import '../convert.dart';
|
||||
import '../device.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../globals_null_migrated.dart' as globals;
|
||||
import '../runner/flutter_command.dart';
|
||||
|
||||
class DevicesCommand extends FlutterCommand {
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
import '../android/android_workflow.dart';
|
||||
import '../base/common.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../globals_null_migrated.dart' as globals;
|
||||
import '../runner/flutter_command.dart';
|
||||
|
||||
class DoctorCommand extends FlutterCommand {
|
||||
|
@ -8,7 +8,7 @@ import '../base/common.dart';
|
||||
import '../base/utils.dart';
|
||||
import '../doctor_validator.dart';
|
||||
import '../emulator.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../globals_null_migrated.dart' as globals;
|
||||
import '../runner/flutter_command.dart';
|
||||
|
||||
class EmulatorsCommand extends FlutterCommand {
|
||||
|
@ -252,7 +252,6 @@ class IdeConfigCommand extends FlutterCommand {
|
||||
_templateDirectory,
|
||||
null,
|
||||
fileSystem: globals.fs,
|
||||
templateManifest: <Uri>{},
|
||||
logger: globals.logger,
|
||||
templateRenderer: globals.templateRenderer,
|
||||
);
|
||||
|
@ -444,10 +444,10 @@ abstract class Device {
|
||||
final String id;
|
||||
|
||||
/// The [Category] for this device type.
|
||||
final Category category;
|
||||
final Category? category;
|
||||
|
||||
/// The [PlatformType] for this device.
|
||||
final PlatformType platformType;
|
||||
final PlatformType? platformType;
|
||||
|
||||
/// Whether this is an ephemeral device.
|
||||
final bool ephemeral;
|
||||
|
@ -2,9 +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:meta/meta.dart';
|
||||
import 'package:process/process.dart';
|
||||
|
||||
import 'android/android_studio_validator.dart';
|
||||
@ -43,7 +40,7 @@ import 'windows/windows_workflow.dart';
|
||||
|
||||
abstract class DoctorValidatorsProvider {
|
||||
/// The singleton instance, pulled from the [AppContext].
|
||||
static DoctorValidatorsProvider get instance => context.get<DoctorValidatorsProvider>();
|
||||
static DoctorValidatorsProvider get _instance => context.get<DoctorValidatorsProvider>()!;
|
||||
|
||||
static final DoctorValidatorsProvider defaultInstance = _DefaultDoctorValidatorsProvider();
|
||||
|
||||
@ -52,8 +49,8 @@ abstract class DoctorValidatorsProvider {
|
||||
}
|
||||
|
||||
class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider {
|
||||
List<DoctorValidator> _validators;
|
||||
List<Workflow> _workflows;
|
||||
List<DoctorValidator>? _validators;
|
||||
List<Workflow>? _workflows;
|
||||
|
||||
final LinuxWorkflow linuxWorkflow = LinuxWorkflow(
|
||||
platform: globals.platform,
|
||||
@ -73,11 +70,11 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider {
|
||||
@override
|
||||
List<DoctorValidator> get validators {
|
||||
if (_validators != null) {
|
||||
return _validators;
|
||||
return _validators!;
|
||||
}
|
||||
|
||||
final List<DoctorValidator> ideValidators = <DoctorValidator>[
|
||||
if (androidWorkflow.appliesToHostPlatform)
|
||||
if (androidWorkflow!.appliesToHostPlatform)
|
||||
...AndroidStudioValidator.allValidators(globals.config, globals.platform, globals.fs, globals.userMessages),
|
||||
...IntelliJValidator.installedValidators(
|
||||
fileSystem: globals.fs,
|
||||
@ -96,14 +93,14 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider {
|
||||
flutterVersion: () => globals.flutterVersion,
|
||||
processManager: globals.processManager,
|
||||
userMessages: userMessages,
|
||||
artifacts: globals.artifacts,
|
||||
flutterRoot: () => Cache.flutterRoot,
|
||||
artifacts: globals.artifacts!,
|
||||
flutterRoot: () => Cache.flutterRoot!,
|
||||
operatingSystemUtils: globals.os,
|
||||
),
|
||||
if (androidWorkflow.appliesToHostPlatform)
|
||||
GroupedValidator(<DoctorValidator>[androidValidator, androidLicenseValidator]),
|
||||
if (globals.iosWorkflow.appliesToHostPlatform || macOSWorkflow.appliesToHostPlatform)
|
||||
GroupedValidator(<DoctorValidator>[XcodeValidator(xcode: globals.xcode, userMessages: userMessages), globals.cocoapodsValidator]),
|
||||
if (androidWorkflow!.appliesToHostPlatform)
|
||||
GroupedValidator(<DoctorValidator>[androidValidator!, androidLicenseValidator!]),
|
||||
if (globals.iosWorkflow!.appliesToHostPlatform || macOSWorkflow.appliesToHostPlatform)
|
||||
GroupedValidator(<DoctorValidator>[XcodeValidator(xcode: globals.xcode!, userMessages: userMessages), globals.cocoapodsValidator!]),
|
||||
if (webWorkflow.appliesToHostPlatform)
|
||||
ChromeValidator(
|
||||
chromiumLauncher: ChromiumLauncher(
|
||||
@ -121,21 +118,21 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider {
|
||||
processManager: globals.processManager,
|
||||
userMessages: userMessages,
|
||||
),
|
||||
if (windowsWorkflow.appliesToHostPlatform)
|
||||
visualStudioValidator,
|
||||
if (windowsWorkflow!.appliesToHostPlatform)
|
||||
visualStudioValidator!,
|
||||
if (ideValidators.isNotEmpty)
|
||||
...ideValidators
|
||||
else
|
||||
NoIdeValidator(),
|
||||
if (proxyValidator.shouldShow)
|
||||
proxyValidator,
|
||||
if (globals.deviceManager.canListAnything)
|
||||
if (globals.deviceManager?.canListAnything == true)
|
||||
DeviceValidator(
|
||||
deviceManager: globals.deviceManager,
|
||||
userMessages: globals.userMessages,
|
||||
),
|
||||
];
|
||||
return _validators;
|
||||
return _validators!;
|
||||
}
|
||||
|
||||
@override
|
||||
@ -143,48 +140,48 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider {
|
||||
if (_workflows == null) {
|
||||
_workflows = <Workflow>[];
|
||||
|
||||
if (globals.iosWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(globals.iosWorkflow);
|
||||
if (globals.iosWorkflow!.appliesToHostPlatform) {
|
||||
_workflows!.add(globals.iosWorkflow!);
|
||||
}
|
||||
|
||||
if (androidWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(androidWorkflow);
|
||||
if (androidWorkflow?.appliesToHostPlatform == true) {
|
||||
_workflows!.add(androidWorkflow!);
|
||||
}
|
||||
|
||||
if (fuchsiaWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(fuchsiaWorkflow);
|
||||
if (fuchsiaWorkflow?.appliesToHostPlatform == true) {
|
||||
_workflows!.add(fuchsiaWorkflow!);
|
||||
}
|
||||
|
||||
if (linuxWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(linuxWorkflow);
|
||||
_workflows!.add(linuxWorkflow);
|
||||
}
|
||||
|
||||
if (macOSWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(macOSWorkflow);
|
||||
_workflows!.add(macOSWorkflow);
|
||||
}
|
||||
|
||||
if (windowsWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(windowsWorkflow);
|
||||
if (windowsWorkflow?.appliesToHostPlatform == true) {
|
||||
_workflows!.add(windowsWorkflow!);
|
||||
}
|
||||
|
||||
if (webWorkflow.appliesToHostPlatform) {
|
||||
_workflows.add(webWorkflow);
|
||||
_workflows!.add(webWorkflow);
|
||||
}
|
||||
|
||||
}
|
||||
return _workflows;
|
||||
return _workflows!;
|
||||
}
|
||||
}
|
||||
|
||||
class Doctor {
|
||||
Doctor({
|
||||
@required Logger logger,
|
||||
required Logger logger,
|
||||
}) : _logger = logger;
|
||||
|
||||
final Logger _logger;
|
||||
|
||||
List<DoctorValidator> get validators {
|
||||
return DoctorValidatorsProvider.instance.validators;
|
||||
return DoctorValidatorsProvider._instance.validators;
|
||||
}
|
||||
|
||||
/// Return a list of [ValidatorTask] objects and starts validation on all
|
||||
@ -207,7 +204,7 @@ class Doctor {
|
||||
];
|
||||
|
||||
List<Workflow> get workflows {
|
||||
return DoctorValidatorsProvider.instance.workflows;
|
||||
return DoctorValidatorsProvider._instance.workflows;
|
||||
}
|
||||
|
||||
/// Print a summary of the state of the tooling, as well as how to get more info.
|
||||
@ -289,7 +286,7 @@ class Doctor {
|
||||
bool androidLicenses = false,
|
||||
bool verbose = true,
|
||||
bool showColor = true,
|
||||
AndroidLicenseValidator androidLicenseValidator,
|
||||
AndroidLicenseValidator? androidLicenseValidator,
|
||||
}) async {
|
||||
if (androidLicenses && androidLicenseValidator != null) {
|
||||
return androidLicenseValidator.runLicenseManager();
|
||||
@ -395,14 +392,14 @@ class Doctor {
|
||||
/// specific commit information.
|
||||
class FlutterValidator extends DoctorValidator {
|
||||
FlutterValidator({
|
||||
@required Platform platform,
|
||||
@required FlutterVersion Function() flutterVersion,
|
||||
@required UserMessages userMessages,
|
||||
@required FileSystem fileSystem,
|
||||
@required Artifacts artifacts,
|
||||
@required ProcessManager processManager,
|
||||
@required String Function() flutterRoot,
|
||||
@required OperatingSystemUtils operatingSystemUtils,
|
||||
required Platform platform,
|
||||
required FlutterVersion Function() flutterVersion,
|
||||
required UserMessages userMessages,
|
||||
required FileSystem fileSystem,
|
||||
required Artifacts artifacts,
|
||||
required ProcessManager processManager,
|
||||
required String Function() flutterRoot,
|
||||
required OperatingSystemUtils operatingSystemUtils,
|
||||
}) : _flutterVersion = flutterVersion,
|
||||
_platform = platform,
|
||||
_userMessages = userMessages,
|
||||
@ -426,8 +423,8 @@ class FlutterValidator extends DoctorValidator {
|
||||
Future<ValidationResult> validate() async {
|
||||
final List<ValidationMessage> messages = <ValidationMessage>[];
|
||||
ValidationType valid = ValidationType.installed;
|
||||
String versionChannel;
|
||||
String frameworkVersion;
|
||||
String? versionChannel;
|
||||
String? frameworkVersion;
|
||||
|
||||
try {
|
||||
final FlutterVersion version = _flutterVersion();
|
||||
@ -438,8 +435,9 @@ class FlutterValidator extends DoctorValidator {
|
||||
_flutterRoot(),
|
||||
)));
|
||||
messages.add(ValidationMessage(_userMessages.flutterUpstreamRepositoryUrl(version.repositoryUrl ?? 'unknown')));
|
||||
if (_platform.environment.containsKey('FLUTTER_GIT_URL')) {
|
||||
messages.add(ValidationMessage(_userMessages.flutterGitUrl(_platform.environment['FLUTTER_GIT_URL'])));
|
||||
final String? gitUrl = _platform.environment['FLUTTER_GIT_URL'];
|
||||
if (gitUrl != null) {
|
||||
messages.add(ValidationMessage(_userMessages.flutterGitUrl(gitUrl)));
|
||||
}
|
||||
messages.add(ValidationMessage(_userMessages.flutterRevision(
|
||||
version.frameworkRevisionShort,
|
||||
@ -448,11 +446,13 @@ class FlutterValidator extends DoctorValidator {
|
||||
)));
|
||||
messages.add(ValidationMessage(_userMessages.engineRevision(version.engineRevisionShort)));
|
||||
messages.add(ValidationMessage(_userMessages.dartRevision(version.dartSdkVersion)));
|
||||
if (_platform.environment.containsKey('PUB_HOSTED_URL')) {
|
||||
messages.add(ValidationMessage(_userMessages.pubMirrorURL(_platform.environment['PUB_HOSTED_URL'])));
|
||||
final String? pubUrl = _platform.environment['PUB_HOSTED_URL'];
|
||||
if (pubUrl != null) {
|
||||
messages.add(ValidationMessage(_userMessages.pubMirrorURL(pubUrl)));
|
||||
}
|
||||
if (_platform.environment.containsKey('FLUTTER_STORAGE_BASE_URL')) {
|
||||
messages.add(ValidationMessage(_userMessages.flutterMirrorURL(_platform.environment['FLUTTER_STORAGE_BASE_URL'])));
|
||||
final String? storageBaseUrl = _platform.environment['FLUTTER_STORAGE_BASE_URL'];
|
||||
if (storageBaseUrl != null) {
|
||||
messages.add(ValidationMessage(_userMessages.flutterMirrorURL(storageBaseUrl)));
|
||||
}
|
||||
} on VersionCheckError catch (e) {
|
||||
messages.add(ValidationMessage.error(e.message));
|
||||
@ -498,9 +498,9 @@ class FlutterValidator extends DoctorValidator {
|
||||
class DeviceValidator extends DoctorValidator {
|
||||
// TODO(jmagman): Make required once g3 rolls and is updated.
|
||||
DeviceValidator({
|
||||
DeviceManager deviceManager,
|
||||
UserMessages userMessages,
|
||||
}) : _deviceManager = deviceManager ?? globals.deviceManager,
|
||||
DeviceManager? deviceManager,
|
||||
UserMessages? userMessages,
|
||||
}) : _deviceManager = deviceManager ?? globals.deviceManager!,
|
||||
_userMessages = userMessages ?? globals.userMessages,
|
||||
super('Connected device');
|
||||
|
||||
|
@ -2,11 +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 'base/context.dart';
|
||||
import 'doctor.dart';
|
||||
// TODO(jmagman): Remove globals_null_migrated.dart, move into globals.dart.
|
||||
|
||||
export 'globals_null_migrated.dart';
|
||||
|
||||
Doctor get doctor => context.get<Doctor>();
|
||||
|
@ -28,6 +28,7 @@ import 'build_system/build_system.dart';
|
||||
import 'cache.dart';
|
||||
import 'custom_devices/custom_devices_config.dart';
|
||||
import 'device.dart';
|
||||
import 'doctor.dart';
|
||||
import 'fuchsia/fuchsia_sdk.dart';
|
||||
import 'ios/ios_workflow.dart';
|
||||
import 'ios/plist_parser.dart';
|
||||
@ -54,6 +55,7 @@ CocoaPodsValidator? get cocoapodsValidator => context.get<CocoaPodsValidator>();
|
||||
Config get config => context.get<Config>()!;
|
||||
CrashReporter? get crashReporter => context.get<CrashReporter>();
|
||||
DeviceManager? get deviceManager => context.get<DeviceManager>();
|
||||
Doctor? get doctor => context.get<Doctor>();
|
||||
HttpClientFactory? get httpClientFactory => context.get<HttpClientFactory>();
|
||||
IOSSimulatorUtils? get iosSimulatorUtils => context.get<IOSSimulatorUtils>();
|
||||
Logger get logger => context.get<Logger>()!;
|
||||
|
@ -26,7 +26,7 @@ import '../dart/package_map.dart';
|
||||
import '../dart/pub.dart';
|
||||
import '../device.dart';
|
||||
import '../features.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../globals_null_migrated.dart' as globals;
|
||||
import '../project.dart';
|
||||
import '../reporting/reporting.dart';
|
||||
import 'flutter_command_runner.dart';
|
||||
|
@ -42,7 +42,7 @@ class Template {
|
||||
required FileSystem fileSystem,
|
||||
required Logger logger,
|
||||
required TemplateRenderer templateRenderer,
|
||||
required Set<Uri>? templateManifest,
|
||||
Set<Uri>? templateManifest,
|
||||
}) {
|
||||
return Template._(
|
||||
<Directory>[templateSource],
|
||||
|
@ -2,11 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:process/process.dart';
|
||||
|
||||
import '../application_package.dart';
|
||||
@ -51,12 +48,12 @@ class FlutterTesterApp extends ApplicationPackage {
|
||||
/// to the flutter command.
|
||||
class FlutterTesterDevice extends Device {
|
||||
FlutterTesterDevice(String deviceId, {
|
||||
@required ProcessManager processManager,
|
||||
@required FlutterVersion flutterVersion,
|
||||
@required Logger logger,
|
||||
@required FileSystem fileSystem,
|
||||
@required Artifacts artifacts,
|
||||
@required OperatingSystemUtils operatingSystemUtils,
|
||||
required ProcessManager processManager,
|
||||
required FlutterVersion flutterVersion,
|
||||
required Logger logger,
|
||||
required FileSystem fileSystem,
|
||||
required Artifacts artifacts,
|
||||
required OperatingSystemUtils operatingSystemUtils,
|
||||
}) : _processManager = processManager,
|
||||
_flutterVersion = flutterVersion,
|
||||
_logger = logger,
|
||||
@ -77,14 +74,14 @@ class FlutterTesterDevice extends Device {
|
||||
final Artifacts _artifacts;
|
||||
final OperatingSystemUtils _operatingSystemUtils;
|
||||
|
||||
Process _process;
|
||||
Process? _process;
|
||||
final DevicePortForwarder _portForwarder = const NoOpDevicePortForwarder();
|
||||
|
||||
@override
|
||||
Future<bool> get isLocalEmulator async => false;
|
||||
|
||||
@override
|
||||
Future<String> get emulatorId async => null;
|
||||
Future<String?> get emulatorId async => null;
|
||||
|
||||
@override
|
||||
String get name => 'Flutter test device';
|
||||
@ -111,7 +108,7 @@ class FlutterTesterDevice extends Device {
|
||||
|
||||
@override
|
||||
DeviceLogReader getLogReader({
|
||||
ApplicationPackage app,
|
||||
ApplicationPackage? app,
|
||||
bool includePastLogs = false,
|
||||
}) {
|
||||
return _logReader;
|
||||
@ -120,13 +117,13 @@ class FlutterTesterDevice extends Device {
|
||||
@override
|
||||
Future<bool> installApp(
|
||||
ApplicationPackage app, {
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
}) async => true;
|
||||
|
||||
@override
|
||||
Future<bool> isAppInstalled(
|
||||
ApplicationPackage app, {
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
}) async => false;
|
||||
|
||||
@override
|
||||
@ -138,13 +135,13 @@ class FlutterTesterDevice extends Device {
|
||||
@override
|
||||
Future<LaunchResult> startApp(
|
||||
ApplicationPackage package, {
|
||||
@required String mainPath,
|
||||
String route,
|
||||
DebuggingOptions debuggingOptions,
|
||||
Map<String, dynamic> platformArgs,
|
||||
String? mainPath,
|
||||
String? route,
|
||||
required DebuggingOptions debuggingOptions,
|
||||
Map<String, Object?> platformArgs = const <String, Object>{},
|
||||
bool prebuiltApplication = false,
|
||||
bool ipv6 = false,
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
}) async {
|
||||
final BuildInfo buildInfo = debuggingOptions.buildInfo;
|
||||
if (!buildInfo.isDebug) {
|
||||
@ -184,7 +181,7 @@ class FlutterTesterDevice extends Device {
|
||||
applicationKernelFilePath
|
||||
];
|
||||
|
||||
ProtocolDiscovery observatoryDiscovery;
|
||||
ProtocolDiscovery? observatoryDiscovery;
|
||||
try {
|
||||
_logger.printTrace(command.join(' '));
|
||||
_process = await _processManager.start(command,
|
||||
@ -203,9 +200,9 @@ class FlutterTesterDevice extends Device {
|
||||
ipv6: ipv6,
|
||||
logger: _logger,
|
||||
);
|
||||
_logReader.initializeProcess(_process);
|
||||
_logReader.initializeProcess(_process!);
|
||||
|
||||
final Uri observatoryUri = await observatoryDiscovery.uri;
|
||||
final Uri? observatoryUri = await observatoryDiscovery.uri;
|
||||
if (observatoryUri != null) {
|
||||
return LaunchResult.succeeded(observatoryUri: observatoryUri);
|
||||
}
|
||||
@ -224,7 +221,7 @@ class FlutterTesterDevice extends Device {
|
||||
@override
|
||||
Future<bool> stopApp(
|
||||
ApplicationPackage app, {
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
}) async {
|
||||
_process?.kill();
|
||||
_process = null;
|
||||
@ -234,7 +231,7 @@ class FlutterTesterDevice extends Device {
|
||||
@override
|
||||
Future<bool> uninstallApp(
|
||||
ApplicationPackage app, {
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
}) async => true;
|
||||
|
||||
@override
|
||||
@ -243,7 +240,7 @@ class FlutterTesterDevice extends Device {
|
||||
@override
|
||||
DevFSWriter createDevFSWriter(
|
||||
covariant ApplicationPackage app,
|
||||
String userIdentifier,
|
||||
String? userIdentifier,
|
||||
) {
|
||||
return LocalDevFSWriter(
|
||||
fileSystem: _fileSystem,
|
||||
@ -252,19 +249,19 @@ class FlutterTesterDevice extends Device {
|
||||
|
||||
@override
|
||||
Future<void> dispose() async {
|
||||
_logReader?.dispose();
|
||||
await _portForwarder?.dispose();
|
||||
_logReader.dispose();
|
||||
await _portForwarder.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
class FlutterTesterDevices extends PollingDeviceDiscovery {
|
||||
FlutterTesterDevices({
|
||||
@required FileSystem fileSystem,
|
||||
@required Artifacts artifacts,
|
||||
@required ProcessManager processManager,
|
||||
@required Logger logger,
|
||||
@required FlutterVersion flutterVersion,
|
||||
@required OperatingSystemUtils operatingSystemUtils,
|
||||
required FileSystem fileSystem,
|
||||
required Artifacts artifacts,
|
||||
required ProcessManager processManager,
|
||||
required Logger logger,
|
||||
required FlutterVersion flutterVersion,
|
||||
required OperatingSystemUtils operatingSystemUtils,
|
||||
}) : _testerDevice = FlutterTesterDevice(
|
||||
kTesterDeviceId,
|
||||
fileSystem: fileSystem,
|
||||
@ -289,7 +286,7 @@ class FlutterTesterDevices extends PollingDeviceDiscovery {
|
||||
bool get supportsPlatform => true;
|
||||
|
||||
@override
|
||||
Future<List<Device>> pollingGetDevices({ Duration timeout }) async {
|
||||
Future<List<Device>> pollingGetDevices({ Duration? timeout }) async {
|
||||
return showFlutterTesterDevice ? <Device>[_testerDevice] : <Device>[];
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,6 @@ void main() {
|
||||
fileSystem: fileSystem,
|
||||
logger: logger,
|
||||
templateRenderer: const MustacheTemplateRenderer(),
|
||||
templateManifest: null
|
||||
);
|
||||
|
||||
final Map<String, Object> context = <String, Object>{
|
||||
|
@ -21,7 +21,6 @@ void main() {
|
||||
fileSystem: fileSystem,
|
||||
logger: BufferLogger.test(),
|
||||
templateRenderer: FakeTemplateRenderer(),
|
||||
templateManifest: null,
|
||||
), throwsToolExit());
|
||||
});
|
||||
|
||||
@ -34,7 +33,6 @@ void main() {
|
||||
fileSystem: fileSystem,
|
||||
logger: BufferLogger.test(),
|
||||
templateRenderer: FakeTemplateRenderer(),
|
||||
templateManifest: null,
|
||||
);
|
||||
final Directory directory = fileSystem.directory('foo');
|
||||
handler.addError(directory, FileSystemOp.create, const FileSystemException());
|
||||
@ -58,7 +56,6 @@ void main() {
|
||||
templateDir,
|
||||
imageSourceDir,
|
||||
fileSystem: fileSystem,
|
||||
templateManifest: null,
|
||||
logger: BufferLogger.test(),
|
||||
templateRenderer: FakeTemplateRenderer(),
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user