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"');
}