[flutter_tools] remove LinuxWorkflow from injection and clean up tests (#51597)
diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index b9a3297..39043f9 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart
@@ -40,7 +40,6 @@ import 'ios/mac.dart'; import 'ios/simulators.dart'; import 'ios/xcodeproj.dart'; -import 'linux/linux_workflow.dart'; import 'macos/cocoapods.dart'; import 'macos/cocoapods_validator.dart'; import 'macos/macos_workflow.dart'; @@ -141,7 +140,6 @@ IOSSimulatorUtils: () => IOSSimulatorUtils(), IOSWorkflow: () => const IOSWorkflow(), KernelCompilerFactory: () => const KernelCompilerFactory(), - LinuxWorkflow: () => const LinuxWorkflow(), Logger: () => globals.platform.isWindows ? WindowsStdoutLogger( terminal: globals.terminal,
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 0a28259..5eef0b4 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart
@@ -15,6 +15,7 @@ import 'base/io.dart'; import 'base/utils.dart'; import 'build_info.dart'; +import 'features.dart'; import 'fuchsia/fuchsia_device.dart'; import 'globals.dart' as globals; import 'ios/devices.dart'; @@ -74,7 +75,10 @@ FuchsiaDevices(), FlutterTesterDevices(), MacOSDevices(), - LinuxDevices(), + LinuxDevices( + platform: globals.platform, + featureFlags: featureFlags, + ), WindowsDevices(), WebDevices(), ]);
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index 5babf68..3a228fd 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -20,6 +20,7 @@ import 'base/version.dart'; import 'cache.dart'; import 'device.dart'; +import 'features.dart'; import 'fuchsia/fuchsia_workflow.dart'; import 'globals.dart' as globals; import 'intellij/intellij.dart'; @@ -67,6 +68,10 @@ ...IntelliJValidator.installedValidators, ...VsCodeValidator.installedValidators, ]; + final LinuxWorkflow linuxWorkflow = LinuxWorkflow( + platform: globals.platform, + featureFlags: featureFlags, + ); _validators = <DoctorValidator>[ FlutterValidator(), @@ -115,6 +120,10 @@ _workflows.add(fuchsiaWorkflow); } + final LinuxWorkflow linuxWorkflow = LinuxWorkflow( + platform: globals.platform, + featureFlags: featureFlags, + ); if (linuxWorkflow.appliesToHostPlatform) { _workflows.add(linuxWorkflow); }
diff --git a/packages/flutter_tools/lib/src/linux/linux_device.dart b/packages/flutter_tools/lib/src/linux/linux_device.dart index 2ab1b61..06c3e1c 100644 --- a/packages/flutter_tools/lib/src/linux/linux_device.dart +++ b/packages/flutter_tools/lib/src/linux/linux_device.dart
@@ -2,10 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:meta/meta.dart'; +import 'package:platform/platform.dart'; + import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; -import '../globals.dart' as globals; +import '../features.dart'; import '../project.dart'; import 'application_package.dart'; import 'build_linux.dart'; @@ -53,13 +56,24 @@ } class LinuxDevices extends PollingDeviceDiscovery { - LinuxDevices() : super('linux devices'); + LinuxDevices({ + @required Platform platform, + @required FeatureFlags featureFlags, + }) : _platform = platform, + _linuxWorkflow = LinuxWorkflow( + platform: platform, + featureFlags: featureFlags, + ), + super('linux devices'); + + final Platform _platform; + final LinuxWorkflow _linuxWorkflow; @override - bool get supportsPlatform => globals.platform.isLinux; + bool get supportsPlatform => _platform.isLinux; @override - bool get canListAnything => linuxWorkflow.canListDevices; + bool get canListAnything => _linuxWorkflow.canListDevices; @override Future<List<Device>> pollingGetDevices() async {
diff --git a/packages/flutter_tools/lib/src/linux/linux_workflow.dart b/packages/flutter_tools/lib/src/linux/linux_workflow.dart index 11423d3..caea987 100644 --- a/packages/flutter_tools/lib/src/linux/linux_workflow.dart +++ b/packages/flutter_tools/lib/src/linux/linux_workflow.dart
@@ -2,29 +2,34 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import '../base/context.dart'; +import 'package:meta/meta.dart'; +import 'package:platform/platform.dart'; + import '../doctor.dart'; import '../features.dart'; -import '../globals.dart' as globals; - -/// The [WindowsWorkflow] instance. -LinuxWorkflow get linuxWorkflow => context.get<LinuxWorkflow>(); /// The windows-specific implementation of a [Workflow]. /// /// This workflow requires the flutter-desktop-embedding as a sibling /// repository to the flutter repo. class LinuxWorkflow implements Workflow { - const LinuxWorkflow(); + const LinuxWorkflow({ + @required Platform platform, + @required FeatureFlags featureFlags, + }) : _platform = platform, + _featureFlags = featureFlags; + + final Platform _platform; + final FeatureFlags _featureFlags; @override - bool get appliesToHostPlatform => globals.platform.isLinux && featureFlags.isLinuxEnabled; + bool get appliesToHostPlatform => _platform.isLinux && _featureFlags.isLinuxEnabled; @override - bool get canLaunchDevices => globals.platform.isLinux && featureFlags.isLinuxEnabled; + bool get canLaunchDevices => _platform.isLinux && _featureFlags.isLinuxEnabled; @override - bool get canListDevices => globals.platform.isLinux && featureFlags.isLinuxEnabled; + bool get canListDevices => _platform.isLinux && _featureFlags.isLinuxEnabled; @override bool get canListEmulators => false;