diff --git a/packages/flutter_tools/bin/fuchsia_attach.dart b/packages/flutter_tools/bin/fuchsia_attach.dart index 2427b9b0914..df16901a82b 100644 --- a/packages/flutter_tools/bin/fuchsia_attach.dart +++ b/packages/flutter_tools/bin/fuchsia_attach.dart @@ -14,7 +14,10 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/attach.dart'; import 'package:flutter_tools/src/commands/doctor.dart'; +import 'package:flutter_tools/src/device.dart'; +import 'package:flutter_tools/src/fuchsia/fuchsia_device.dart'; import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart'; +import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; final ArgParser parser = ArgParser() @@ -101,6 +104,7 @@ Future main(List args) async { muteCommandLogging: false, verboseHelp: false, overrides: { + DeviceManager: () => _FuchsiaDeviceManager(), FuchsiaArtifacts: () => FuchsiaArtifacts(sshConfig: sshConfig, devFinder: devFinder), Artifacts: () => OverrideArtifacts( parent: CachedArtifacts(), @@ -113,6 +117,19 @@ Future main(List args) async { ); } +// An implementation of [DeviceManager] that only supports fuchsia devices. +class _FuchsiaDeviceManager extends DeviceManager { + @override + List get deviceDiscoverers => List.unmodifiable([ + FuchsiaDevices(), + ]); + + @override + bool isDeviceSupportedForProject(Device device, FlutterProject flutterProject) { + return true; + } +} + List _extractPathAndName(String gnTarget) { // Separate strings like //path/to/target:app into [path/to/target, app] final int lastColon = gnTarget.lastIndexOf(':');