Fix setImmersiveMode using unsupported flags in some older devices.

This commit is contained in:
Tae Hanazono
2019-02-09 18:53:42 +08:00
parent 53d24a1b5f
commit 6eafa708f9
@@ -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
);
}