From 7f6af7d413834d10e0a2cba9816bb5a391dc4d77 Mon Sep 17 00:00:00 2001 From: mcfrei <37238771+mcfrei@users.noreply.github.com> Date: Fri, 26 May 2023 11:18:24 +0300 Subject: [PATCH] fix nullref on exiting dialer by long pressing of Back key on KYF33 (#262) * fix nullref on exiting com.android.dialer by long pressing of Back key on KYF33 * fix misleading ModeDialer.toString() * fix textField and inputType are assumed to be defined everywhere * fix yet another potential case of currentInputConnection = null --------- Co-authored-by: sspanak --- src/io/github/sspanak/tt9/ime/KeyPadHandler.java | 1 + src/io/github/sspanak/tt9/ime/TraditionalT9.java | 8 ++++++-- src/io/github/sspanak/tt9/ime/modes/ModeDialer.java | 8 ++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/io/github/sspanak/tt9/ime/KeyPadHandler.java b/src/io/github/sspanak/tt9/ime/KeyPadHandler.java index 7f2997c1..1b05e5f4 100644 --- a/src/io/github/sspanak/tt9/ime/KeyPadHandler.java +++ b/src/io/github/sspanak/tt9/ime/KeyPadHandler.java @@ -82,6 +82,7 @@ abstract class KeyPadHandler extends InputMethodService { @Override public void onStartInputView(EditorInfo inputField, boolean restarting) { + currentInputConnection = getCurrentInputConnection(); onRestart(inputField); } diff --git a/src/io/github/sspanak/tt9/ime/TraditionalT9.java b/src/io/github/sspanak/tt9/ime/TraditionalT9.java index 68792c7c..d9cf3114 100644 --- a/src/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/src/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -7,6 +7,8 @@ import android.view.View; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.List; @@ -27,8 +29,10 @@ import io.github.sspanak.tt9.ui.tray.SuggestionsBar; public class TraditionalT9 extends KeyPadHandler { // internal settings/data private boolean isActive = false; - private TextField textField; - private InputType inputType; + @NotNull + private TextField textField = new TextField(null, null); + @NotNull + private InputType inputType = new InputType(null, null); // editing mode protected static final int NON_EDIT = 0; diff --git a/src/io/github/sspanak/tt9/ime/modes/ModeDialer.java b/src/io/github/sspanak/tt9/ime/modes/ModeDialer.java index 1e9000b6..55952aba 100644 --- a/src/io/github/sspanak/tt9/ime/modes/ModeDialer.java +++ b/src/io/github/sspanak/tt9/ime/modes/ModeDialer.java @@ -1,5 +1,7 @@ package io.github.sspanak.tt9.ime.modes; +import androidx.annotation.NonNull; + import io.github.sspanak.tt9.ime.helpers.Key; // see: InputType.isDialer() @@ -12,4 +14,10 @@ public class ModeDialer extends Mode123 { public boolean onOtherKey(int key) { return !Key.isDecimalSeparator(key) && super.onOtherKey(key); } + + @NonNull + @Override + public String toString() { + return "Dialer"; + } }