@@ -58,6 +58,7 @@ enum DeviceOperatingSystem {
5858 fake,
5959 fuchsia,
6060 ios,
61+ linux,
6162 macos,
6263 windows,
6364}
@@ -79,6 +80,8 @@ abstract class DeviceDiscovery {
7980 return IosDeviceDiscovery ();
8081 case DeviceOperatingSystem .fuchsia:
8182 return FuchsiaDeviceDiscovery ();
83+ case DeviceOperatingSystem .linux:
84+ return LinuxDeviceDiscovery ();
8285 case DeviceOperatingSystem .macos:
8386 return MacosDeviceDiscovery ();
8487 case DeviceOperatingSystem .windows:
@@ -356,6 +359,40 @@ class AndroidDeviceDiscovery implements DeviceDiscovery {
356359 }
357360}
358361
362+ class LinuxDeviceDiscovery implements DeviceDiscovery {
363+ factory LinuxDeviceDiscovery () {
364+ return _instance ?? = LinuxDeviceDiscovery ._();
365+ }
366+
367+ LinuxDeviceDiscovery ._();
368+
369+ static LinuxDeviceDiscovery ? _instance;
370+
371+ static const LinuxDevice _device = LinuxDevice ();
372+
373+ @override
374+ Future <Map <String , HealthCheckResult >> checkDevices () async {
375+ return < String , HealthCheckResult > {};
376+ }
377+
378+ @override
379+ Future <void > chooseWorkingDevice () async { }
380+
381+ @override
382+ Future <void > chooseWorkingDeviceById (String deviceId) async { }
383+
384+ @override
385+ Future <List <String >> discoverDevices () async {
386+ return < String > ['linux' ];
387+ }
388+
389+ @override
390+ Future <void > performPreflightTasks () async { }
391+
392+ @override
393+ Future <Device > get workingDevice async => _device;
394+ }
395+
359396class MacosDeviceDiscovery implements DeviceDiscovery {
360397 factory MacosDeviceDiscovery () {
361398 return _instance ?? = MacosDeviceDiscovery ._();
@@ -1046,6 +1083,58 @@ class IosDevice extends Device {
10461083 }
10471084}
10481085
1086+ class LinuxDevice extends Device {
1087+ const LinuxDevice ();
1088+
1089+ @override
1090+ String get deviceId => 'linux' ;
1091+
1092+ @override
1093+ Future <Map <String , dynamic >> getMemoryStats (String packageName) async {
1094+ return < String , dynamic > {};
1095+ }
1096+
1097+ @override
1098+ Future <void > home () async { }
1099+
1100+ @override
1101+ Future <bool > isAsleep () async {
1102+ return false ;
1103+ }
1104+
1105+ @override
1106+ Future <bool > isAwake () async {
1107+ return true ;
1108+ }
1109+
1110+ @override
1111+ Stream <String > get logcat => const Stream <String >.empty ();
1112+
1113+ @override
1114+ Future <void > clearLogs () async {}
1115+
1116+ @override
1117+ Future <void > reboot () async { }
1118+
1119+ @override
1120+ Future <void > sendToSleep () async { }
1121+
1122+ @override
1123+ Future <void > stop (String packageName) async { }
1124+
1125+ @override
1126+ Future <void > tap (int x, int y) async { }
1127+
1128+ @override
1129+ Future <void > togglePower () async { }
1130+
1131+ @override
1132+ Future <void > unlock () async { }
1133+
1134+ @override
1135+ Future <void > wakeUp () async { }
1136+ }
1137+
10491138class MacosDevice extends Device {
10501139 const MacosDevice ();
10511140
0 commit comments