From 8420c6c9617f97bea5fdd110785e3a15771af6df Mon Sep 17 00:00:00 2001 From: sspanak Date: Mon, 17 Mar 2025 11:56:08 +0200 Subject: [PATCH] a different attempt to clear the MainView in onDestroy(), again to prevent crashing --- .../github/sspanak/tt9/ime/MainViewHandler.java | 2 +- .../io/github/sspanak/tt9/ime/TraditionalT9.java | 15 ++++++--------- .../sspanak/tt9/ui/main/ResizableMainView.java | 9 ++------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/MainViewHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/MainViewHandler.java index 5a10365e..65db41f4 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/MainViewHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/MainViewHandler.java @@ -57,7 +57,7 @@ abstract public class MainViewHandler extends HotkeyHandler { orientationListener = null; } if (mainView != null) { - mainView.stopListeners(); + mainView.destroy(); } } 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 ed04d795..743ace22 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 @@ -217,9 +217,6 @@ public class TraditionalT9 extends MainViewHandler { requestHideSelf(0); cleanUp(); stopSelf(); - if (mainView != null) { - mainView.destroy(); - } isDead = true; } @@ -236,14 +233,14 @@ public class TraditionalT9 extends MainViewHandler { @Override public void onDestroy() { - if (!isDead) { - cleanUp(); - isDead = true; + if (isDead) { + Logger.w(LOG_TAG, "===> Already dead. Not destroying self."); + return; } + + cleanUp(); + isDead = true; super.onDestroy(); - if (mainView != null) { // this run last because the MainView is used in super.onDestroy() - mainView.destroy(); - } Logger.d(LOG_TAG, "===> Shutdown completed"); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java index 9d929382..883c0c00 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java @@ -52,16 +52,11 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha } - public void stopListeners() { + @Override + public void destroy() { if (main != null && main.getView() != null) { main.getView().removeOnAttachStateChangeListener(this); } - } - - - @Override - public void destroy() { - stopListeners(); super.destroy(); }