From 7ac62c984053bd56740b18bd92ccab3220258dbc Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Fri, 11 Jun 2021 02:54:47 +0500 Subject: [PATCH] Allow users to disable terminal session change toast The user can add `disable-terminal-session-change-toast=true` entry to `termux.properties` file to disable terminal session change toast. The default value is `false`. Running `termux-reload-settings` command will also update the behaviour instantaneously if changed. Closes #2118 --- .../termux/app/terminal/TermuxTerminalSessionClient.java | 6 ++++-- .../settings/properties/TermuxPropertyConstants.java | 7 +++++++ .../shared/settings/properties/TermuxSharedProperties.java | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java index 8b4ec000..312a5483 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java @@ -255,8 +255,10 @@ public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase void notifyOfSessionChange() { if (!mActivity.isVisible()) return; - TerminalSession session = mActivity.getCurrentSession(); - mActivity.showToast(toToastTitle(session), false); + if (!mActivity.getProperties().areTerminalSessionChangeToastsDisabled()) { + TerminalSession session = mActivity.getCurrentSession(); + mActivity.showToast(toToastTitle(session), false); + } } public void switchToSession(boolean forward) { diff --git a/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxPropertyConstants.java b/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxPropertyConstants.java index b3e426ec..75ea1cf8 100644 --- a/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxPropertyConstants.java +++ b/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxPropertyConstants.java @@ -72,6 +72,11 @@ public final class TermuxPropertyConstants { /* boolean */ + /** Defines the key for whether a toast will be shown when user changes the terminal session */ + public static final String KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST = "disable-terminal-session-change-toast"; // Default: "disable-terminal-session-change-toast" + + + /** Defines the key for whether to enforce character based input to fix the issue where for some devices like Samsung, the letters might not appear until enter is pressed */ public static final String KEY_ENFORCE_CHAR_BASED_INPUT = "enforce-char-based-input"; // Default: "enforce-char-based-input" @@ -285,6 +290,7 @@ public final class TermuxPropertyConstants { * */ public static final Set TERMUX_PROPERTIES_LIST = new HashSet<>(Arrays.asList( /* boolean */ + KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, KEY_ENFORCE_CHAR_BASED_INPUT, KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP, KEY_USE_BLACK_UI, @@ -323,6 +329,7 @@ public final class TermuxPropertyConstants { * default: false * */ public static final Set TERMUX_DEFAULT_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList( + KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, KEY_ENFORCE_CHAR_BASED_INPUT, KEY_HIDE_SOFT_KEYBOARD_ON_STARTUP, KEY_USE_CTRL_SPACE_WORKAROUND, diff --git a/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxSharedProperties.java b/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxSharedProperties.java index 1ffc8f3b..c253a7da 100644 --- a/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxSharedProperties.java +++ b/termux-shared/src/main/java/com/termux/shared/settings/properties/TermuxSharedProperties.java @@ -460,6 +460,10 @@ public class TermuxSharedProperties { + public boolean areTerminalSessionChangeToastsDisabled() { + return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST, true); + } + public boolean isEnforcingCharBasedInput() { return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_ENFORCE_CHAR_BASED_INPUT, true); }