From beb8a004e6ea64e2b3795fc9320da8c8b2e0a871 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Fri, 13 Jul 2018 15:10:36 +0300 Subject: [PATCH] clean /tmp directory on cold start --- .../main/java/com/termux/app/TermuxActivity.java | 13 +++++++++++++ app/src/main/java/com/termux/app/TermuxService.java | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 79c1c107..f1fe44aa 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -69,6 +69,7 @@ import com.termux.view.TerminalView; import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Collections; @@ -612,6 +613,18 @@ public final class TermuxActivity extends Activity implements ServiceConnection new AlertDialog.Builder(this).setTitle(R.string.max_terminals_reached_title).setMessage(R.string.max_terminals_reached_message) .setPositiveButton(android.R.string.ok, null).show(); } else { + if (mTermService.getSessions().size() == 0 && !mTermService.isWakelockEnabled()) { + File termuxTmpDir = new File(TermuxService.PREFIX_PATH + "/tmp"); + if (termuxTmpDir.exists()) { + try { + TermuxInstaller.deleteFolder(termuxTmpDir); + } catch (Exception e) { + e.printStackTrace(); + } + + termuxTmpDir.mkdirs(); + } + } String executablePath = (failSafe ? "/system/bin/sh" : null); TerminalSession newSession = mTermService.createTermSession(executablePath, null, null, failSafe); if (sessionName != null) { diff --git a/app/src/main/java/com/termux/app/TermuxService.java b/app/src/main/java/com/termux/app/TermuxService.java index 5cb28fe5..0dd2d30c 100644 --- a/app/src/main/java/com/termux/app/TermuxService.java +++ b/app/src/main/java/com/termux/app/TermuxService.java @@ -250,6 +250,14 @@ public final class TermuxService extends Service implements SessionChangedCallba return mTerminalSessions; } + public boolean isWakelockEnabled() { + if (mWakeLock == null) { + return false; + } else { + return mWakeLock.isHeld(); + } + } + TerminalSession createTermSession(String executablePath, String[] arguments, String cwd, boolean failSafe) { new File(HOME_PATH).mkdirs();