| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // 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 '../base/platform.dart'; |
| import '../doctor_validator.dart'; |
| import '../features.dart'; |
| import 'fuchsia_sdk.dart'; |
| |
| /// The [FuchsiaWorkflow] instance. |
| FuchsiaWorkflow? get fuchsiaWorkflow => context.get<FuchsiaWorkflow>(); |
| |
| /// The Fuchsia-specific implementation of a [Workflow]. |
| /// |
| /// This workflow assumes development within the fuchsia source tree, |
| /// including a working fx command-line tool in the user's PATH. |
| class FuchsiaWorkflow implements Workflow { |
| FuchsiaWorkflow({ |
| required Platform platform, |
| required FeatureFlags featureFlags, |
| required FuchsiaArtifacts fuchsiaArtifacts, |
| }) : _platform = platform, |
| _featureFlags = featureFlags, |
| _fuchsiaArtifacts = fuchsiaArtifacts; |
| |
| final Platform _platform; |
| final FeatureFlags _featureFlags; |
| final FuchsiaArtifacts _fuchsiaArtifacts; |
| |
| @override |
| bool get appliesToHostPlatform => _featureFlags.isFuchsiaEnabled && (_platform.isLinux || _platform.isMacOS); |
| |
| @override |
| bool get canListDevices { |
| return _fuchsiaArtifacts.ffx != null; |
| } |
| |
| @override |
| bool get canLaunchDevices { |
| return _fuchsiaArtifacts.ffx != null && _fuchsiaArtifacts.sshConfig != null; |
| } |
| |
| @override |
| bool get canListEmulators => false; |
| } |