fuchsia_device.dart 2.34 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// Copyright 2017 The Chromium 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 'dart:async';

import '../application_package.dart';
import '../build_info.dart';
import '../device.dart';

/// Read the log for a particular device.
class _FuchsiaLogReader extends DeviceLogReader {
  FuchsiaDevice _device;

  _FuchsiaLogReader(this._device);

  @override String get name => _device.name;

  Stream<String> _logLines;
  @override
  Stream<String> get logLines {
22
    _logLines ??= const Stream<String>.empty();
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    return _logLines;
  }

  @override
  String toString() => name;
}

class FuchsiaDevice extends Device {
  FuchsiaDevice(String id, { this.name }) : super(id);

  @override
  bool get supportsHotMode => true;

  @override
  final String name;

  @override
40
  Future<bool> get isLocalEmulator async => false;
41 42 43 44 45

  @override
  bool get supportsStartPaused => false;

  @override
46
  Future<bool> isAppInstalled(ApplicationPackage app) async => false;
47 48

  @override
49
  Future<bool> isLatestBuildInstalled(ApplicationPackage app) async => false;
50 51

  @override
52
  Future<bool> installApp(ApplicationPackage app) => new Future<bool>.value(false);
53 54

  @override
55
  Future<bool> uninstallApp(ApplicationPackage app) async => false;
56 57 58 59 60 61

  @override
  bool isSupported() => true;

  @override
  Future<LaunchResult> startApp(
62
    ApplicationPackage package, {
63 64 65 66 67 68
    String mainPath,
    String route,
    DebuggingOptions debuggingOptions,
    Map<String, dynamic> platformArgs,
    bool prebuiltApplication: false,
    bool applicationNeedsRebuild: false,
69
    bool usesTerminalUi: false,
70
    bool ipv6: false,
71 72 73 74 75 76 77 78 79
  }) => new Future<Null>.error('unimplemented');

  @override
  Future<bool> stopApp(ApplicationPackage app) async {
    // Currently we don't have a way to stop an app running on Fuchsia.
    return false;
  }

  @override
80
  Future<TargetPlatform> get targetPlatform async => TargetPlatform.fuchsia;
81 82

  @override
83
  Future<String> get sdkNameAndVersion async => 'Fuchsia';
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

  _FuchsiaLogReader _logReader;
  @override
  DeviceLogReader getLogReader({ApplicationPackage app}) {
    _logReader ??= new _FuchsiaLogReader(this);
    return _logReader;
  }

  @override
  DevicePortForwarder get portForwarder => null;

  @override
  void clearLogs() {
  }

  @override
  bool get supportsScreenshot => false;
}