diff --git a/packages/flutter_tools/lib/src/android/android_device_discovery.dart b/packages/flutter_tools/lib/src/android/android_device_discovery.dart index 4d51fada13..4f1322936b 100644 --- a/packages/flutter_tools/lib/src/android/android_device_discovery.dart +++ b/packages/flutter_tools/lib/src/android/android_device_discovery.dart @@ -17,27 +17,35 @@ import 'adb.dart'; import 'android_device.dart'; import 'android_sdk.dart'; import 'android_workflow.dart' hide androidWorkflow; -import 'android_workflow.dart' as workflow show androidWorkflow; /// Device discovery for Android physical devices and emulators.s class AndroidDevices extends PollingDeviceDiscovery { - // TODO(jonahwilliams): make these required after google3 is updated. AndroidDevices({ - AndroidWorkflow androidWorkflow, - ProcessManager processManager, - Logger logger, - AndroidSdk androidSdk, - }) : _androidWorkflow = androidWorkflow ?? workflow.androidWorkflow, - _androidSdk = androidSdk ?? globals.androidSdk, + @required AndroidWorkflow androidWorkflow, + @required ProcessManager processManager, + @required Logger logger, + @required AndroidSdk androidSdk, + FileSystem fileSystem, // TODO(jonahwilliams): remove after rolling into google3 + Platform platform, + }) : _androidWorkflow = androidWorkflow, + _androidSdk = androidSdk, _processUtils = ProcessUtils( - logger: logger ?? globals.logger, - processManager: processManager ?? globals.processManager, + logger: logger, + processManager: processManager, ), + _processManager = processManager, + _logger = logger, + _fileSystem = fileSystem ?? globals.fs, + _platform = platform ?? globals.platform, super('Android devices'); final AndroidWorkflow _androidWorkflow; final ProcessUtils _processUtils; final AndroidSdk _androidSdk; + final ProcessManager _processManager; + final Logger _logger; + final FileSystem _fileSystem; + final Platform _platform; @override bool get supportsPlatform => _androidWorkflow.appliesToHostPlatform; @@ -69,6 +77,11 @@ class AndroidDevices extends PollingDeviceDiscovery { text, devices: devices, timeoutConfiguration: timeoutConfiguration, + processManager: _processManager, + logger: _logger, + fileSystem: _fileSystem, + androidSdk: _androidSdk, + platform: _platform, ); return devices; } @@ -90,6 +103,11 @@ class AndroidDevices extends PollingDeviceDiscovery { text, diagnostics: diagnostics, timeoutConfiguration: timeoutConfiguration, + processManager: _processManager, + logger: _logger, + fileSystem: _fileSystem, + androidSdk: _androidSdk, + platform: _platform, ); return diagnostics; } @@ -106,11 +124,11 @@ class AndroidDevices extends PollingDeviceDiscovery { String text, { List devices, List diagnostics, - AndroidSdk androidSdk, - FileSystem fileSystem, - Logger logger, - Platform platform, - ProcessManager processManager, + @required AndroidSdk androidSdk, + @required FileSystem fileSystem, + @required Logger logger, + @required Platform platform, + @required ProcessManager processManager, @required TimeoutConfiguration timeoutConfiguration, }) { // Check for error messages from adb @@ -170,11 +188,11 @@ class AndroidDevices extends PollingDeviceDiscovery { productID: info['product'], modelID: info['model'] ?? deviceID, deviceCodeName: info['device'], - androidSdk: androidSdk ?? globals.androidSdk, - fileSystem: fileSystem ?? globals.fs, - logger: logger ?? globals.logger, - platform: platform ?? globals.platform, - processManager: processManager ?? globals.processManager, + androidSdk: androidSdk, + fileSystem: fileSystem, + logger: logger, + platform: platform, + processManager: processManager, timeoutConfiguration: timeoutConfiguration, )); } diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 71932dc2a3..564174e79e 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -31,16 +31,15 @@ import 'iproxy.dart'; import 'mac.dart'; class IOSDevices extends PollingDeviceDiscovery { - // TODO(fujino): make these required and remove fallbacks once internal invocations migrated IOSDevices({ - Platform platform, - XCDevice xcdevice, - IOSWorkflow iosWorkflow, - Logger logger, - }) : _platform = platform ?? globals.platform, - _xcdevice = xcdevice ?? globals.xcdevice, - _iosWorkflow = iosWorkflow ?? globals.iosWorkflow, - _logger = logger ?? globals.logger, + @required Platform platform, + @required XCDevice xcdevice, + @required IOSWorkflow iosWorkflow, + @required Logger logger, + }) : _platform = platform, + _xcdevice = xcdevice, + _iosWorkflow = iosWorkflow, + _logger = logger, super('iOS devices'); final Platform _platform; diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 896f3e0d7e..ff38ddc5ae 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -17,7 +17,6 @@ import '../build_info.dart'; import '../bundle.dart'; import '../convert.dart'; import '../device.dart'; -import '../globals.dart' as globals; import '../project.dart'; import '../protocol_discovery.dart'; import '../version.dart'; @@ -48,18 +47,18 @@ class FlutterTesterApp extends ApplicationPackage { // TODO(scheglov): This device does not currently work with full restarts. class FlutterTesterDevice extends Device { FlutterTesterDevice(String deviceId, { - ProcessManager processManager, - FlutterVersion flutterVersion, - Logger logger, - String buildDirectory, - FileSystem fileSystem, - Artifacts artifacts, - }) : _processManager = processManager ?? globals.processManager, // TODO(jonahwilliams): remove after google3 roll. - _flutterVersion = flutterVersion ?? globals.flutterVersion, - _logger = logger ?? globals.logger, - _buildDirectory = buildDirectory ?? getBuildDirectory(), - _fileSystem = fileSystem ?? globals.fs, - _artifacts = artifacts ?? globals.artifacts, + @required ProcessManager processManager, + @required FlutterVersion flutterVersion, + @required Logger logger, + @required String buildDirectory, + @required FileSystem fileSystem, + @required Artifacts artifacts, + }) : _processManager = processManager, + _flutterVersion = flutterVersion, + _logger = logger, + _buildDirectory = buildDirectory, + _fileSystem = fileSystem, + _artifacts = artifacts, super( deviceId, platformType: null, @@ -255,20 +254,20 @@ class FlutterTesterDevice extends Device { class FlutterTesterDevices extends PollingDeviceDiscovery { FlutterTesterDevices({ - FileSystem fileSystem, - Artifacts artifacts, - ProcessManager processManager, - Logger logger, - FlutterVersion flutterVersion, - Config config, - }) : _testerDevice = FlutterTesterDevice( // TODO(jonahwilliams): remove after google3 roll. + @required FileSystem fileSystem, + @required Artifacts artifacts, + @required ProcessManager processManager, + @required Logger logger, + @required FlutterVersion flutterVersion, + @required Config config, + }) : _testerDevice = FlutterTesterDevice( kTesterDeviceId, - fileSystem: fileSystem ?? globals.fs, - artifacts: artifacts ?? globals.artifacts, - processManager: processManager ?? globals.processManager, - buildDirectory: getBuildDirectory(config ?? globals.config, fileSystem ?? globals.fs), - logger: logger ?? globals.logger, - flutterVersion: flutterVersion ?? globals.flutterVersion, + fileSystem: fileSystem, + artifacts: artifacts, + processManager: processManager, + buildDirectory: getBuildDirectory(config, fileSystem), + logger: logger, + flutterVersion: flutterVersion, ), super('Flutter tester'); diff --git a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart index fcc5d46a58..c8861c1ca7 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart @@ -26,6 +26,8 @@ void main() { featureFlags: TestFeatureFlags(), ), processManager: FakeProcessManager.list([]), + fileSystem: MemoryFileSystem.test(), + platform: FakePlatform(), ); expect(await androidDevices.pollingGetDevices(), isEmpty); @@ -48,6 +50,8 @@ void main() { featureFlags: TestFeatureFlags(), ), processManager: processManager, + fileSystem: MemoryFileSystem.test(), + platform: FakePlatform(), ); expect(androidDevices.pollingGetDevices(), @@ -69,6 +73,8 @@ void main() { featureFlags: TestFeatureFlags(), ), processManager: processManager, + fileSystem: MemoryFileSystem.test(), + platform: FakePlatform(), ); expect(androidDevices.pollingGetDevices(), @@ -86,6 +92,8 @@ void main() { ), ), processManager: FakeProcessManager.any(), + fileSystem: MemoryFileSystem.test(), + platform: FakePlatform(), ); expect(androidDevices.supportsPlatform, false); @@ -163,6 +171,11 @@ Use the 'android' tool to install them: ''', devices: devices, diagnostics: diagnostics, timeoutConfiguration: const TimeoutConfiguration(), + processManager: FakeProcessManager.any(), + platform: FakePlatform(), + logger: BufferLogger.test(), + fileSystem: MemoryFileSystem.test(), + androidSdk: MockAndroidSdk(), ); expect(devices, isEmpty);