From 0c18890930ccd3b4fb1748db5733836ffda9cd63 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Mon, 13 Nov 2023 18:23:01 +0530 Subject: [PATCH] fix(terminal): cancel last toast when TermuxActivity is destroyed --- .../src/main/java/com/termux/app/TermuxActivity.java | 10 ++++++---- .../java/com/termux/shared/view/KeyboardUtils.java | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java index 0a458ed37..a3787997e 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java @@ -333,7 +333,11 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection if (mIsInvalidState) return; this.binding = null; - this.mLastToast = null; + + if (mLastToast != null) { + mLastToast.cancel(); + } + mLastToast = null; if (mTermuxService != null) { // Do not leave service and session clients with references to activity. @@ -580,9 +584,7 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection @SuppressLint("RtlHardcoded") @Override public void onBackPressed() { - if (KeyboardUtils.isSoftKeyboardVisible(this)) { - KeyboardUtils.showSoftKeyboard(this, getTerminalView()); - } else if (getDrawer().isDrawerOpen(Gravity.LEFT)) { + if (getDrawer().isDrawerOpen(Gravity.LEFT)) { getDrawer().closeDrawers(); } else { finishActivityIfNotFinishing(); diff --git a/termux/termux-shared/src/main/java/com/termux/shared/view/KeyboardUtils.java b/termux/termux-shared/src/main/java/com/termux/shared/view/KeyboardUtils.java index 5df35d2b0..8d6da888e 100644 --- a/termux/termux-shared/src/main/java/com/termux/shared/view/KeyboardUtils.java +++ b/termux/termux-shared/src/main/java/com/termux/shared/view/KeyboardUtils.java @@ -120,7 +120,6 @@ public class KeyboardUtils { * @param activity The Activity of the root view for which the visibility should be checked. * @return Returns {@code true} if soft keyboard is visible, otherwise {@code false}. */ - @RequiresApi(api = Build.VERSION_CODES.M) public static boolean isSoftKeyboardVisible(final Activity activity) { if (activity != null && activity.getWindow() != null) { WindowInsets insets = activity.getWindow().getDecorView().getRootWindowInsets();