key function
A utility function that dynamically generates LogicalKeyboardKey instances for alphanumeric characters:
Args:
char : the string of the character that needs to be mapped into logicalKeyboardKey
returns: LogicalKeyboardKey instance of the given character
Throws: ArgumentError if the given key is unsupported or invalid character
Usage:
final key = key('A');
// this will set to LogicalKeyboardKey.keyA
Implementation
LogicalKeyboardKey key(String char) {
// Utility to get A–Z, 0–9 dynamically
char = char.toLowerCase();
final code = char.codeUnitAt(0);
if (code >= 97 && code <= 122) {
// a-z
return LogicalKeyboardKey(LogicalKeyboardKey.keyA.keyId + (code - 97));
}
if (code >= 48 && code <= 57) {
// 0-9
return LogicalKeyboardKey(LogicalKeyboardKey.digit0.keyId + (code - 48));
}
throw ArgumentError('Unsupported key "$char"');
}