Skip to content

Commit a125dd4

Browse files
author
sds100
committed
openboard-team#484 send KeyEvents to IME instead of extras for each KeyEvent property
1 parent 17e0814 commit a125dd4

1 file changed

Lines changed: 8 additions & 39 deletions

File tree

  • app/src/main/java/io/github/sds100/keymapper/inputmethod/latin

app/src/main/java/io/github/sds100/keymapper/inputmethod/latin/LatinIME.java

Lines changed: 8 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package io.github.sds100.keymapper.inputmethod.latin;
1818

19-
import android.Manifest.permission;
2019
import android.app.AlertDialog;
2120
import android.content.BroadcastReceiver;
2221
import android.content.Context;
@@ -138,10 +137,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
138137
private static final String KEY_MAPPER_INPUT_METHOD_ACTION_INPUT_UP = "io.github.sds100.keymapper.inputmethod.ACTION_INPUT_UP";
139138
private static final String KEY_MAPPER_INPUT_METHOD_ACTION_TEXT = "io.github.sds100.keymapper.inputmethod.ACTION_INPUT_TEXT";
140139

141-
private static final String KEY_MAPPER_INPUT_METHOD_EXTRA_KEYCODE = "io.github.sds100.keymapper.inputmethod.EXTRA_KEYCODE";
142-
private static final String KEY_MAPPER_INPUT_METHOD_EXTRA_METASTATE = "io.github.sds100.keymapper.inputmethod.EXTRA_METASTATE";
143140
private static final String KEY_MAPPER_INPUT_METHOD_EXTRA_TEXT = "io.github.sds100.keymapper.inputmethod.EXTRA_TEXT";
144-
private static final String KEY_MAPPER_INPUT_METHOD_EXTRA_DEVICE_ID = "io.github.sds100.keymapper.inputmethod.EXTRA_DEVICE_ID";
141+
private static final String KEY_MAPPER_INPUT_METHOD_EXTRA_KEY_EVENT = "io.github.sds100.keymapper.inputmethod.EXTRA_KEY_EVENT";
145142

146143
/**
147144
* The name of the scheme used by the Package Manager to warn of a new package installation,
@@ -216,22 +213,15 @@ public void onReceive(Context context, Intent intent) {
216213

217214
switch (action) {
218215
case LatinIME.KEY_MAPPER_INPUT_METHOD_ACTION_INPUT_DOWN_UP: {
219-
int keyCode = getKeyCode(intent);
220-
if (keyCode == -1) return;
221-
222-
long eventTime = SystemClock.uptimeMillis();
223-
224-
KeyEvent downEvent = new KeyEvent(eventTime, eventTime,
225-
KeyEvent.ACTION_DOWN, keyCode, 0, getMetaState(intent), getDeviceId(intent), 0);
216+
KeyEvent downEvent = intent.getParcelableExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_KEY_EVENT);
226217

227218
InputConnection ic = mIms.getCurrentInputConnection();
228219

229220
if (ic != null) {
230221
ic.sendKeyEvent(downEvent);
231222
}
232223

233-
KeyEvent upEvent = new KeyEvent(eventTime, SystemClock.uptimeMillis(),
234-
KeyEvent.ACTION_UP, keyCode, 0, getMetaState(intent), getDeviceId(intent), 0);
224+
KeyEvent upEvent = KeyEvent.changeAction(downEvent, KeyEvent.ACTION_UP);
235225

236226
if (ic != null) {
237227
ic.sendKeyEvent(upEvent);
@@ -241,13 +231,9 @@ public void onReceive(Context context, Intent intent) {
241231
}
242232

243233
case LatinIME.KEY_MAPPER_INPUT_METHOD_ACTION_INPUT_DOWN: {
244-
int keyCode = getKeyCode(intent);
245-
if (keyCode == -1) return;
246-
247-
long eventTime = SystemClock.uptimeMillis();
234+
KeyEvent downEvent = intent.getParcelableExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_KEY_EVENT);
248235

249-
KeyEvent downEvent = new KeyEvent(eventTime, eventTime,
250-
KeyEvent.ACTION_DOWN, keyCode, 0, getMetaState(intent), getDeviceId(intent), 0);
236+
downEvent = KeyEvent.changeAction(downEvent, KeyEvent.ACTION_DOWN);
251237

252238
InputConnection ic = mIms.getCurrentInputConnection();
253239

@@ -259,13 +245,9 @@ public void onReceive(Context context, Intent intent) {
259245
}
260246

261247
case LatinIME.KEY_MAPPER_INPUT_METHOD_ACTION_INPUT_UP: {
262-
int keyCode = getKeyCode(intent);
263-
if (keyCode == -1) return;
248+
KeyEvent upEvent = intent.getParcelableExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_KEY_EVENT);
264249

265-
long eventTime = SystemClock.uptimeMillis();
266-
267-
KeyEvent upEvent = new KeyEvent(eventTime, SystemClock.uptimeMillis(),
268-
KeyEvent.ACTION_UP, keyCode, 0, getMetaState(intent), getDeviceId(intent), 0);
250+
upEvent = KeyEvent.changeAction(upEvent, KeyEvent.ACTION_UP);
269251

270252
InputConnection ic = mIms.getCurrentInputConnection();
271253

@@ -291,18 +273,6 @@ public void onReceive(Context context, Intent intent) {
291273
}
292274
}
293275
}
294-
295-
private int getKeyCode(Intent intent) {
296-
return intent.getIntExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_KEYCODE, -1);
297-
}
298-
299-
private int getMetaState(Intent intent) {
300-
return intent.getIntExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_METASTATE, 0);
301-
}
302-
303-
private int getDeviceId(Intent intent){
304-
return intent.getIntExtra(KEY_MAPPER_INPUT_METHOD_EXTRA_DEVICE_ID, 0);
305-
}
306276
}
307277

308278
final KeyMapperBroadcastReceiver mKeyMapperBroadcastReceiver = new KeyMapperBroadcastReceiver(this);
@@ -1479,8 +1449,7 @@ public void onMovePointer(int steps) {
14791449
if (steps < 0) {
14801450
int availableCharacters = mInputLogic.mConnection.getTextBeforeCursor(64, 0).length();
14811451
steps = availableCharacters < -steps ? -availableCharacters : steps;
1482-
}
1483-
else if (steps > 0) {
1452+
} else if (steps > 0) {
14841453
int availableCharacters = mInputLogic.mConnection.getTextAfterCursor(64, 0).length();
14851454
steps = Math.min(availableCharacters, steps);
14861455
} else

0 commit comments

Comments
 (0)