mirror of
https://github.com/love2d/love-android.git
synced 2026-08-12 00:20:57 +02:00
Remove setImmersiveMode code as it conflicts with SDL's immersive mode code.
This commit is contained in:
@@ -40,6 +40,7 @@ public class GameActivity extends SDLActivity {
|
||||
private static boolean immersiveActive = false;
|
||||
private static boolean mustCacheArchive = false;
|
||||
private boolean storagePermissionUnnecessary = false;
|
||||
private boolean shortEdgesMode = false;
|
||||
public int safeAreaTop = 0;
|
||||
public int safeAreaLeft = 0;
|
||||
public int safeAreaBottom = 0;
|
||||
@@ -95,7 +96,8 @@ public class GameActivity extends SDLActivity {
|
||||
getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= 28) {
|
||||
getWindow().getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
|
||||
getWindow().getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
|
||||
shortEdgesMode = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,67 +237,17 @@ public class GameActivity extends SDLActivity {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (immersiveActive) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public void setImmersiveMode(boolean immersive_mode) {
|
||||
if (android.os.Build.VERSION.SDK_INT < 11) {
|
||||
// The API getWindow().getDecorView().setSystemUiVisibility() was
|
||||
// added in Android 11 (a.k.a. Honeycomb, a.k.a. 3.0.x). If we run
|
||||
// on this we do nothing.
|
||||
return;
|
||||
if (android.os.Build.VERSION.SDK_INT >= 28) {
|
||||
getWindow().getAttributes().layoutInDisplayCutoutMode = immersive_mode ?
|
||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES :
|
||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
|
||||
shortEdgesMode = immersive_mode;
|
||||
}
|
||||
|
||||
immersiveActive = immersive_mode;
|
||||
|
||||
final Object lock = new Object();
|
||||
final boolean immersive_enabled = immersive_mode;
|
||||
synchronized (lock) {
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
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_FULLSCREEN
|
||||
);
|
||||
}
|
||||
|
||||
lock.notify();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
;
|
||||
}
|
||||
|
||||
public boolean getImmersiveMode() {
|
||||
@@ -530,7 +482,7 @@ public class GameActivity extends SDLActivity {
|
||||
|
||||
@Keep
|
||||
public boolean initializeSafeArea() {
|
||||
if (android.os.Build.VERSION.SDK_INT >= 28) {
|
||||
if (android.os.Build.VERSION.SDK_INT >= 28 && shortEdgesMode) {
|
||||
DisplayCutout cutout = getWindow().getDecorView().getRootWindowInsets().getDisplayCutout();
|
||||
|
||||
if (cutout != null) {
|
||||
|
||||
Reference in New Issue
Block a user