resolveScreenshotDevice function
DeviceInfo
resolveScreenshotDevice(
- Map<String, dynamic> args
)
Implementation
DeviceInfo resolveScreenshotDevice(Map<String, dynamic> args) {
final platform = args['platform']?.toString();
final model = args['model']?.toString();
final platformKey = normalizeScreenshotDeviceName(platform);
final candidates = switch (platformKey) {
'android' => Devices.android.all,
'ios' || 'iphone' || 'ipad' => Devices.ios.all,
_ => Devices.all,
};
if (model != null && model.trim().isNotEmpty) {
final modelKey = normalizeScreenshotDeviceName(model);
for (final device in candidates) {
if (normalizeScreenshotDeviceName(device.name) == modelKey ||
normalizeScreenshotDeviceName(device.identifier.name) == modelKey) {
return device;
}
}
for (final device in candidates) {
if (normalizeScreenshotDeviceName(device.name).contains(modelKey) ||
normalizeScreenshotDeviceName(device.identifier.name)
.contains(modelKey)) {
return device;
}
}
throw EnsembleTestFailure(
'Unknown screenshot device model "$model". Available models: '
'${candidates.map((device) => device.name).join(', ')}',
);
}
if (platformKey == 'android') return Devices.android.all.first;
return Devices.ios.iPhone15Pro;
}