Skip to content

Commit 96661db

Browse files
committed
fix: don't crash if fail to unregister callback because key mapper is dead
1 parent d617606 commit 96661db

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,12 @@ class KeyEventRelayServiceWrapperImpl(
4545

4646
override fun onServiceDisconnected(name: ComponentName?) {
4747
synchronized(keyEventRelayServiceLock) {
48-
keyEventRelayService?.unregisterCallback()
49-
keyEventRelayService = null
48+
try {
49+
keyEventRelayService?.unregisterCallback()
50+
} catch (_: DeadObjectException) {
51+
} finally {
52+
keyEventRelayService = null
53+
}
5054
}
5155
}
5256
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ public void onReceive(Context context, Intent intent) {
222222
private KeyEventRelayServiceWrapperImpl mKeyEventRelayServiceWrapperRelease;
223223
private KeyEventRelayServiceWrapperImpl mKeyEventRelayServiceWrapperDebug;
224224
private KeyEventRelayServiceWrapperImpl mKeyEventRelayServiceWrapperCi;
225-
private IKeyEventRelayServiceCallback mKeyEventRelayServiceCallback = new IKeyEventRelayServiceCallback.Stub() {
225+
private final IKeyEventRelayServiceCallback mKeyEventRelayServiceCallback = new IKeyEventRelayServiceCallback.Stub() {
226226
@Override
227227
public boolean onKeyEvent(KeyEvent event, String sourcePackageName) {
228228
InputConnection ic = getCurrentInputConnection();

0 commit comments

Comments
 (0)