From ebdab0e59c702434ead044198dbf4a945fe36c70 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Sat, 11 Jun 2022 19:50:08 +0500 Subject: [PATCH] Changed: Update `TERMUX_APP__AM_SOCKET_SERVER_ENABLED` environment variable value if `termux-am-socket` server state changes --- .../shared/termux/shell/am/TermuxAmSocketServer.java | 1 + .../command/environment/TermuxAppShellEnvironment.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/termux-shared/src/main/java/com/termux/shared/termux/shell/am/TermuxAmSocketServer.java b/termux-shared/src/main/java/com/termux/shared/termux/shell/am/TermuxAmSocketServer.java index e6c293e9..438744e1 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/shell/am/TermuxAmSocketServer.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/shell/am/TermuxAmSocketServer.java @@ -92,6 +92,7 @@ public class TermuxAmSocketServer { // exported in shell sessions and tasks and if state is changed, then env of older shells will // retain invalid value. User should force stop the app to update state after changing prop. TERMUX_APP_AM_SOCKET_SERVER_ENABLED = enabled; + TermuxAppShellEnvironment.updateTermuxAppAMSocketServerEnabled(context); } /** diff --git a/termux-shared/src/main/java/com/termux/shared/termux/shell/command/environment/TermuxAppShellEnvironment.java b/termux-shared/src/main/java/com/termux/shared/termux/shell/command/environment/TermuxAppShellEnvironment.java index 078afc1b..abd11f65 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/shell/command/environment/TermuxAppShellEnvironment.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/shell/command/environment/TermuxAppShellEnvironment.java @@ -161,4 +161,12 @@ public class TermuxAppShellEnvironment { } } + /** Update {@link #ENV_TERMUX_APP__AM_SOCKET_SERVER_ENABLED} value in {@code environment}. */ + public synchronized static void updateTermuxAppAMSocketServerEnabled(@NonNull Context currentPackageContext) { + if (termuxAppEnvironment == null) return; + termuxAppEnvironment.remove(ENV_TERMUX_APP__AM_SOCKET_SERVER_ENABLED); + ShellEnvironmentUtils.putToEnvIfSet(termuxAppEnvironment, ENV_TERMUX_APP__AM_SOCKET_SERVER_ENABLED, + TermuxAmSocketServer.getTermuxAppAMSocketServerEnabled(currentPackageContext)); + } + }