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();