From 3c3fbe98e354db8051cb175ef9464b4bf0afcc44 Mon Sep 17 00:00:00 2001 From: sspanak Date: Thu, 19 Dec 2024 17:01:18 +0200 Subject: [PATCH] fixed a crash when shutting down or when switching to another keyboard --- .../sspanak/tt9/ime/helpers/SuggestionOps.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java index 6cca6a96..9ea9a551 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java @@ -4,6 +4,7 @@ import android.os.Handler; import android.os.Looper; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import java.util.ArrayList; @@ -16,10 +17,10 @@ public class SuggestionOps { @NonNull private final Handler delayedAcceptHandler; @NonNull private final ConsumerCompat onDelayedAccept; @NonNull protected final SuggestionsBar suggestionBar; - @NonNull private TextField textField; + @Nullable private TextField textField; - public SuggestionOps(@NonNull SettingsStore settings, @NonNull ResizableMainView mainView, @NonNull TextField textField, @NonNull ConsumerCompat onDelayedAccept, @NonNull Runnable onSuggestionClick) { + public SuggestionOps(@NonNull SettingsStore settings, @NonNull ResizableMainView mainView, @Nullable TextField textField, @NonNull ConsumerCompat onDelayedAccept, @NonNull Runnable onSuggestionClick) { delayedAcceptHandler = new Handler(Looper.getMainLooper()); this.onDelayedAccept = onDelayedAccept; @@ -28,7 +29,7 @@ public class SuggestionOps { } - public void setTextField(@NonNull TextField textField) { + public void setTextField(@Nullable TextField textField) { this.textField = textField; } @@ -50,8 +51,10 @@ public class SuggestionOps { public void clear() { set(null); - textField.setComposingText(""); - textField.finishComposingText(); + if (textField != null) { + textField.setComposingText(""); + textField.finishComposingText(); + } } public void set(ArrayList suggestions) { @@ -103,7 +106,7 @@ public class SuggestionOps { public void commitCurrent(boolean entireSuggestion) { - if (!suggestionBar.isEmpty()) { + if (textField != null && !suggestionBar.isEmpty()) { if (entireSuggestion) { textField.setComposingText(getCurrent()); }