From 8e2ea26301211523ef3d3035b7fad0bfab684daf Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Thu, 31 Jan 2019 18:42:30 -0800 Subject: [PATCH] Make the deviceDiscovery API overridable (#27378) --- packages/flutter_tools/lib/src/device.dart | 27 ++++++++++---------- packages/flutter_tools/test/src/context.dart | 3 +++ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index d932fd469d..dc2a84452b 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -25,21 +25,20 @@ DeviceManager get deviceManager => context[DeviceManager]; /// A class to get all available devices. class DeviceManager { + /// Constructing DeviceManagers is cheap; they only do expensive work if some /// of their methods are called. - DeviceManager() { - // Register the known discoverers. - _deviceDiscoverers.add(AndroidDevices()); - _deviceDiscoverers.add(IOSDevices()); - _deviceDiscoverers.add(IOSSimulators()); - _deviceDiscoverers.add(FuchsiaDevices()); - _deviceDiscoverers.add(FlutterTesterDevices()); - _deviceDiscoverers.add(MacOSDevices()); - _deviceDiscoverers.add(LinuxDevices()); - _deviceDiscoverers.add(WindowsDevices()); - } - - final List _deviceDiscoverers = []; + List get deviceDiscoverers => _deviceDiscoverers; + final List _deviceDiscoverers = List.unmodifiable([ + AndroidDevices(), + IOSDevices(), + IOSSimulators(), + FuchsiaDevices(), + FlutterTesterDevices(), + MacOSDevices(), + LinuxDevices(), + WindowsDevices(), + ]); String _specifiedDeviceId; @@ -91,7 +90,7 @@ class DeviceManager { } Iterable get _platformDiscoverers { - return _deviceDiscoverers.where((DeviceDiscovery discoverer) => discoverer.supportsPlatform); + return deviceDiscoverers.where((DeviceDiscovery discoverer) => discoverer.supportsPlatform); } /// Return the list of all connected devices. diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index 3243d287f7..92ae65eaac 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart @@ -179,6 +179,9 @@ class MockDeviceManager implements DeviceManager { @override Future> getDeviceDiagnostics() async => []; + + @override + List get deviceDiscoverers => []; } class MockAndroidLicenseValidator extends AndroidLicenseValidator {