From 8a014dafea7cbb19449601168d54ab0c39543b1e Mon Sep 17 00:00:00 2001 From: sspanak Date: Thu, 1 Aug 2024 17:39:02 +0300 Subject: [PATCH] improved shutdown cleanup procedure to completely prevent the UI not disappearing when another keyboard is selected, and subsequent crashes --- .../io/github/sspanak/tt9/ime/CommandHandler.java | 1 - .../io/github/sspanak/tt9/ime/TraditionalT9.java | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java index 50a826b2..56880199 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java @@ -106,7 +106,6 @@ abstract public class CommandHandler extends TextEditingHandler { suggestionOps.cancelDelayedAccept(); stopVoiceInput(); UI.showChangeKeyboardDialog(this); - onDeath(); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java index b7cbe0c0..66b4cb58 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -29,7 +29,17 @@ public class TraditionalT9 extends MainViewHandler { public boolean onEvaluateInputViewShown() { super.onEvaluateInputViewShown(); setInputField(getCurrentInputConnection(), getCurrentInputEditorInfo()); - return shouldBeVisible(); + + if (!shouldBeVisible()) { + return false; + } + + if (SystemSettings.isTT9Enabled(this)) { + return true; + } else { + onDeath(); + return false; + } } @@ -177,14 +187,15 @@ public class TraditionalT9 extends MainViewHandler { Logger.w("onDeath", "===> Killing self"); requestHideSelf(0); onStop(); + normalizationHandler.removeCallbacksAndMessages(null); stopSelf(); } @Override public void onDestroy() { - super.onDestroy(); onDeath(); + super.onDestroy(); }