From 6eafa708f97c5b1a4b06df8d80f167d4b2f39b00 Mon Sep 17 00:00:00 2001 From: Tae Hanazono Date: Sat, 9 Feb 2019 18:53:42 +0800 Subject: [PATCH] Fix setImmersiveMode using unsupported flags in some older devices. --- .../java/org/love2d/android/GameActivity.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/love/src/main/java/org/love2d/android/GameActivity.java b/love/src/main/java/org/love2d/android/GameActivity.java index da442458..c934a862 100644 --- a/love/src/main/java/org/love2d/android/GameActivity.java +++ b/love/src/main/java/org/love2d/android/GameActivity.java @@ -215,17 +215,22 @@ public class GameActivity extends SDLActivity { public void run() { synchronized (lock) { if (immersive_enabled) { + int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + + if (android.os.Build.VERSION.SDK_INT >= 16) { + flags |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_FULLSCREEN; + } + if (android.os.Build.VERSION.SDK_INT >= 19) { + flags |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; + } + getWindow().getDecorView().setSystemUiVisibility(flags); + } else if (android.os.Build.VERSION.SDK_INT >= 16) { getWindow().getDecorView().setSystemUiVisibility( - 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); - } else { - getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ); }