From a5ccb974f52a41068be14395c7bb613893d4af38 Mon Sep 17 00:00:00 2001 From: wintrics Date: Tue, 10 Mar 2026 09:05:15 +0000 Subject: [PATCH] Fix fullscreen mode on Android 11+ where navigation bar was not hidden --- .../java/com/termux/app/TermuxActivity.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 0c9f74125b..79612cd6fb 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -10,6 +10,7 @@ import android.content.IntentFilter; import android.content.ServiceConnection; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.view.ContextMenu; @@ -193,6 +194,12 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo private static final String ARG_ACTIVITY_RECREATED = "activity_recreated"; private static final String LOG_TAG = "TermuxActivity"; + private static final int FULLSCREEN_UI_FLAGS = View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; @Override public void onCreate(Bundle savedInstanceState) { @@ -238,7 +245,7 @@ public void onCreate(Bundle savedInstanceState) { }); if (mProperties.isUsingFullScreen()) { - getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + enableFullScreenMode(); } setTermuxTerminalViewAndClients(); @@ -322,6 +329,14 @@ public void onResume() { mIsOnResumeAfterOnCreate = false; } + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + + if (hasFocus && mProperties != null && mProperties.isUsingFullScreen()) + enableFullScreenMode(); + } + @Override protected void onStop() { super.onStop(); @@ -449,6 +464,12 @@ private void reloadProperties() { mTermuxTerminalViewClient.onReloadProperties(); } + private void enableFullScreenMode() { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) + getWindow().getDecorView().setSystemUiVisibility(FULLSCREEN_UI_FLAGS); + } + private void setActivityTheme() {