-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathKeyPressDownEvent.java
38 lines (31 loc) · 1.23 KB
/
KeyPressDownEvent.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.externalkeyboard.events;
import android.view.KeyEvent;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.events.Event;
public class KeyPressDownEvent extends Event<KeyPressDownEvent> {
public static String EVENT_NAME = "topKeyDownPress";
public WritableMap payload;
public KeyPressDownEvent(int surfaceId, int id, int keyCode, KeyEvent keyEvent) {
super(surfaceId, id);
int unicode = keyEvent.getUnicodeChar();
payload = Arguments.createMap();
payload.putInt("keyCode", keyCode);
payload.putInt("unicode", unicode);
payload.putString("unicodeChar", String.valueOf((char) unicode));
payload.putBoolean("isLongPress", keyEvent.isLongPress());
payload.putBoolean("isAltPressed", keyEvent.isAltPressed());
payload.putBoolean("isShiftPressed", keyEvent.isShiftPressed());
payload.putBoolean("isCtrlPressed", keyEvent.isCtrlPressed());
payload.putBoolean("isCapsLockOn", keyEvent.isCapsLockOn());
payload.putBoolean("hasNoModifiers", keyEvent.hasNoModifiers());
}
@Override
public String getEventName() {
return EVENT_NAME;
}
@Override
public WritableMap getEventData() {
return payload;
}
}