simulateKeyUpEvent method Null safety
- LogicalKeyboardKey key,
- {String? platform,
- PhysicalKeyboardKey? physicalKey}
Simulates sending a hardware key up event through the system channel.
This only simulates key presses coming from a physical keyboard, not from a soft keyboard.
Specify platform
as one of the platforms allowed in
Platform.operatingSystem to make the event appear to be from that type of
system. Defaults to the operating system that the test is running on. Some
platforms (e.g. Windows, iOS) are not yet supported.
Returns true if the key event was handled by the framework.
See also:
- simulateKeyDownEvent to simulate the corresponding key down event.
Implementation
static Future<bool> simulateKeyUpEvent(
LogicalKeyboardKey key, {
String? platform,
PhysicalKeyboardKey? physicalKey,
}) async {
Future<bool> simulateByRawEvent() {
return _simulateKeyEventByRawEvent(() {
platform ??= _defaultPlatform;
return getKeyData(key, platform: platform!, isDown: false, physicalKey: physicalKey);
});
}
switch (_transitMode) {
case KeyDataTransitMode.rawKeyData:
return simulateByRawEvent();
case KeyDataTransitMode.keyDataThenRawKeyData:
final LogicalKeyboardKey logicalKey = _getKeySynonym(key);
final bool resultByKeyEvent = ServicesBinding.instance.keyEventManager.handleKeyData(
ui.KeyData(
type: ui.KeyEventType.up,
physical: (physicalKey ?? _findPhysicalKey(logicalKey)).usbHidUsage,
logical: logicalKey.keyId,
timeStamp: Duration.zero,
character: null,
synthesized: false,
),
);
return (await simulateByRawEvent()) || resultByKeyEvent;
}
}