Unverified Commit d9983e1b authored by Danny Tuppeny's avatar Danny Tuppeny Committed by GitHub

Add category/platformType to emulators (#34721)

parent b798b27b
...@@ -199,7 +199,7 @@ This is sent when a device is disconnected (and polling has been enabled via `en ...@@ -199,7 +199,7 @@ This is sent when a device is disconnected (and polling has been enabled via `en
#### emulator.getEmulators #### emulator.getEmulators
Return a list of all available emulators. The `params` field will be a List; each item is a map with the fields `id` and `name`. Return a list of all available emulators. The `params` field will be a List; each item is a map with the fields `id`, `name`, `category` and `platformType`. `category` and `platformType` values match the values described in `device.getDevices`.
#### emulator.launch #### emulator.launch
...@@ -258,7 +258,8 @@ See the [source](https://github.com/flutter/flutter/blob/master/packages/flutter ...@@ -258,7 +258,8 @@ See the [source](https://github.com/flutter/flutter/blob/master/packages/flutter
## Changelog ## Changelog
- 0.5.1: Added `platformType`, `ephemeral`, and `category` field to device. - 0.5.2: Added `platformType` and `category` fields to emulator.
- 0.5.1: Added `platformType`, `ephemeral`, and `category` fields to device.
- 0.5.0: Added `daemon.getSupportedPlatforms` command - 0.5.0: Added `daemon.getSupportedPlatforms` command
- 0.4.2: Added `app.detach` command - 0.4.2: Added `app.detach` command
- 0.4.1: Added `flutter attach --machine` - 0.4.1: Added `flutter attach --machine`
......
...@@ -11,6 +11,7 @@ import '../android/android_workflow.dart'; ...@@ -11,6 +11,7 @@ import '../android/android_workflow.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/io.dart'; import '../base/io.dart';
import '../base/process_manager.dart'; import '../base/process_manager.dart';
import '../device.dart';
import '../emulator.dart'; import '../emulator.dart';
import 'android_sdk.dart'; import 'android_sdk.dart';
...@@ -40,6 +41,12 @@ class AndroidEmulator extends Emulator { ...@@ -40,6 +41,12 @@ class AndroidEmulator extends Emulator {
@override @override
String get label => _prop('avd.ini.displayname'); String get label => _prop('avd.ini.displayname');
@override
Category get category => Category.mobile;
@override
PlatformType get platformType => PlatformType.android;
String _prop(String name) => _properties != null ? _properties[name] : null; String _prop(String name) => _properties != null ? _properties[name] : null;
@override @override
......
...@@ -26,7 +26,7 @@ import '../run_hot.dart'; ...@@ -26,7 +26,7 @@ import '../run_hot.dart';
import '../runner/flutter_command.dart'; import '../runner/flutter_command.dart';
import '../vmservice.dart'; import '../vmservice.dart';
const String protocolVersion = '0.5.1'; const String protocolVersion = '0.5.2';
/// A server process command. This command will start up a long-lived server. /// A server process command. This command will start up a long-lived server.
/// It reads JSON-RPC based commands from stdin, executes them, and returns /// It reads JSON-RPC based commands from stdin, executes them, and returns
...@@ -783,6 +783,8 @@ Map<String, dynamic> _emulatorToMap(Emulator emulator) { ...@@ -783,6 +783,8 @@ Map<String, dynamic> _emulatorToMap(Emulator emulator) {
return <String, dynamic>{ return <String, dynamic>{
'id': emulator.id, 'id': emulator.id,
'name': emulator.name, 'name': emulator.name,
'category': emulator.category?.toString(),
'platformType': emulator.platformType?.toString(),
}; };
} }
......
...@@ -10,6 +10,7 @@ import 'android/android_sdk.dart'; ...@@ -10,6 +10,7 @@ import 'android/android_sdk.dart';
import 'base/context.dart'; import 'base/context.dart';
import 'base/io.dart' show ProcessResult; import 'base/io.dart' show ProcessResult;
import 'base/process_manager.dart'; import 'base/process_manager.dart';
import 'device.dart';
import 'globals.dart'; import 'globals.dart';
import 'ios/ios_emulators.dart'; import 'ios/ios_emulators.dart';
...@@ -218,6 +219,8 @@ abstract class Emulator { ...@@ -218,6 +219,8 @@ abstract class Emulator {
String get name; String get name;
String get manufacturer; String get manufacturer;
String get label; String get label;
Category get category;
PlatformType get platformType;
@override @override
int get hashCode => id.hashCode; int get hashCode => id.hashCode;
......
...@@ -6,6 +6,7 @@ import 'dart:async'; ...@@ -6,6 +6,7 @@ import 'dart:async';
import '../base/platform.dart'; import '../base/platform.dart';
import '../base/process.dart'; import '../base/process.dart';
import '../device.dart';
import '../emulator.dart'; import '../emulator.dart';
import '../globals.dart'; import '../globals.dart';
import '../macos/xcode.dart'; import '../macos/xcode.dart';
...@@ -34,6 +35,12 @@ class IOSEmulator extends Emulator { ...@@ -34,6 +35,12 @@ class IOSEmulator extends Emulator {
@override @override
String get label => null; String get label => null;
@override
Category get category => Category.mobile;
@override
PlatformType get platformType => PlatformType.ios;
@override @override
Future<void> launch() async { Future<void> launch() async {
Future<bool> launchSimulator(List<String> additionalArgs) async { Future<bool> launchSimulator(List<String> additionalArgs) async {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter_tools/src/android/android_emulator.dart'; import 'package:flutter_tools/src/android/android_emulator.dart';
import 'package:flutter_tools/src/device.dart';
import '../src/common.dart'; import '../src/common.dart';
import '../src/context.dart'; import '../src/context.dart';
...@@ -38,6 +39,8 @@ void main() { ...@@ -38,6 +39,8 @@ void main() {
expect(emulator.name, name); expect(emulator.name, name);
expect(emulator.manufacturer, manufacturer); expect(emulator.manufacturer, manufacturer);
expect(emulator.label, label); expect(emulator.label, label);
expect(emulator.category, Category.mobile);
expect(emulator.platformType, PlatformType.android);
}); });
testUsingContext('parses ini files', () { testUsingContext('parses ini files', () {
const String iniFile = ''' const String iniFile = '''
......
...@@ -9,6 +9,7 @@ import 'package:collection/collection.dart' show ListEquality; ...@@ -9,6 +9,7 @@ import 'package:collection/collection.dart' show ListEquality;
import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/android/android_sdk.dart';
import 'package:flutter_tools/src/base/config.dart'; import 'package:flutter_tools/src/base/config.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/emulator.dart'; import 'package:flutter_tools/src/emulator.dart';
import 'package:flutter_tools/src/ios/ios_emulators.dart'; import 'package:flutter_tools/src/ios/ios_emulators.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
...@@ -171,6 +172,12 @@ class _MockEmulator extends Emulator { ...@@ -171,6 +172,12 @@ class _MockEmulator extends Emulator {
@override @override
final String label; final String label;
@override
Category get category => Category.mobile;
@override
PlatformType get platformType => PlatformType.android;
@override @override
Future<void> launch() { Future<void> launch() {
throw UnimplementedError('Not implemented in Mock'); throw UnimplementedError('Not implemented in Mock');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment