package io.flutter.embedding.android;

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
// This file is generated by flutter/flutter@dev/tools/gen_keycodes/bin/gen_keycodes.dart and
// should not be edited directly.
//
// Edit the template dev/tools/gen_keycodes/data/android_keyboard_map_java.tmpl instead.
// See dev/tools/gen_keycodes/README.md for more information.

import java.util.HashMap;

public class KeyboardMap {
  public static final HashMap<Long, Long> scanCodeToPhysical =
      new HashMap<Long, Long>() {
        private static final long serialVersionUID = 1L;

        {
@@@ANDROID_SCAN_CODE_MAP@@@
        }
      };

  public static final HashMap<Long, Long> keyCodeToLogical =
      new HashMap<Long, Long>() {
        private static final long serialVersionUID = 1L;

        {
@@@ANDROID_KEY_CODE_MAP@@@
        }
      };
}
