forked from extern/Unexpected-Keyboard
Fix del key and keyEvent keys
This commit is contained in:
parent
e9df9bc299
commit
b32f2ce3f3
@ -32,6 +32,28 @@ public class Keyboard2 extends InputMethodService
|
||||
if (getCurrentInputConnection() == null)
|
||||
return ;
|
||||
if ((flags & (KeyValue.FLAG_CTRL | KeyValue.FLAG_ALT)) != 0)
|
||||
handleMetaKeyUp(key, flags);
|
||||
else if (key.getEventCode() == KeyEvent.KEYCODE_DEL)
|
||||
handleDelKey(1, 0);
|
||||
else if (key.getEventCode() == KeyEvent.KEYCODE_FORWARD_DEL)
|
||||
handleDelKey(0, 1);
|
||||
else if (key.getChar(false) == KeyValue.CHAR_NONE && key.getEventCode() != KeyValue.EVENT_NONE)
|
||||
handleMetaKeyUp(key, flags);
|
||||
else if (key.getChar(false) != KeyValue.CHAR_NONE)
|
||||
sendKeyChar(key.getChar((flags & KeyValue.FLAG_SHIFT) != 0));
|
||||
}
|
||||
|
||||
private void handleDelKey(int before, int after)
|
||||
{
|
||||
CharSequence selection = getCurrentInputConnection().getSelectedText(0);
|
||||
|
||||
if (selection != null && selection.length() > 0)
|
||||
getCurrentInputConnection().commitText("", 1);
|
||||
else
|
||||
getCurrentInputConnection().deleteSurroundingText(before, after);
|
||||
}
|
||||
|
||||
private void handleMetaKeyUp(KeyValue key, int flags)
|
||||
{
|
||||
int metaState = 0;
|
||||
KeyEvent event;
|
||||
@ -48,26 +70,6 @@ public class Keyboard2 extends InputMethodService
|
||||
getCurrentInputConnection().sendKeyEvent(event);
|
||||
getCurrentInputConnection().sendKeyEvent(KeyEvent.changeAction(event, KeyEvent.ACTION_UP));
|
||||
}
|
||||
else if (key.getEventCode() == KeyEvent.KEYCODE_DEL)
|
||||
{
|
||||
getCurrentInputConnection().deleteSurroundingText(1, 0);
|
||||
}
|
||||
else if (key.getEventCode() == KeyEvent.KEYCODE_FORWARD_DEL)
|
||||
{
|
||||
getCurrentInputConnection().deleteSurroundingText(0, 1);
|
||||
}
|
||||
else if (key.getChar(false) == KeyValue.CHAR_NONE && key.getEventCode() != KeyValue.EVENT_NONE)
|
||||
{
|
||||
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, key.getEventCode());
|
||||
|
||||
getCurrentInputConnection().sendKeyEvent(event);
|
||||
getCurrentInputConnection().sendKeyEvent(KeyEvent.changeAction(event, KeyEvent.ACTION_UP));
|
||||
}
|
||||
else if (key.getChar(false) != KeyValue.CHAR_NONE)
|
||||
{
|
||||
sendKeyChar(key.getChar((flags & KeyValue.FLAG_SHIFT) != 0));
|
||||
}
|
||||
}
|
||||
|
||||
public static void log(String str)
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ public class Keyboard2View extends View
|
||||
{
|
||||
private static final float KEY_PER_ROW = 10;
|
||||
|
||||
private static final float SUB_VALUE_DIST = 6f;
|
||||
private static final float SUB_VALUE_DIST = 7f;
|
||||
|
||||
private static final long VIBRATE_LONG = 25;
|
||||
private static final long VIBRATE_MIN_INTERVAL = 100;
|
||||
|
Loading…
Reference in New Issue
Block a user