From 5aa68dd172d5c0087bfa6e8e9e2a3988ac834fc7 Mon Sep 17 00:00:00 2001 From: SkySeraph Date: Wed, 27 Mar 2019 16:10:27 +0800 Subject: [PATCH] Update EventController.java add KeyCharacterMap.UnavailableException in charMap --- .../java/com/genymobile/scrcpy/EventController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/genymobile/scrcpy/EventController.java b/server/src/main/java/com/genymobile/scrcpy/EventController.java index 5fa2cab2..14648a0e 100644 --- a/server/src/main/java/com/genymobile/scrcpy/EventController.java +++ b/server/src/main/java/com/genymobile/scrcpy/EventController.java @@ -19,7 +19,8 @@ public class EventController { private final Device device; private final DesktopConnection connection; - private final KeyCharacterMap charMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); + // private final KeyCharacterMap charMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); + private KeyCharacterMap charMap; private long lastMouseDown; private final MotionEvent.PointerProperties[] pointerProperties = {new MotionEvent.PointerProperties()}; @@ -93,6 +94,15 @@ public class EventController { private boolean injectChar(char c) { String decomposed = KeyComposition.decompose(c); char[] chars = decomposed != null ? decomposed.toCharArray() : new char[] {c}; + + if (charMap == null) { + try { + charMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); + } catch (KeyCharacterMap.UnavailableException e) { + return false; + } + } + KeyEvent[] events = charMap.getEvents(chars); if (events == null) { return false;