Partially works on Android 2.3 now too

This commit is contained in:
UnknownShadow200 2021-01-30 10:20:23 +11:00
parent 198932aa93
commit 5700988e49

View File

@ -399,7 +399,7 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
setContentView(curView); setContentView(curView);
curView.requestFocus(); curView.requestFocus();
if (fullscreen) goFullscreen(); if (fullscreen) setUIVisibility(FULLSCREEN_FLAGS);
} }
class LauncherView extends SurfaceView { class LauncherView extends SurfaceView {
@ -630,29 +630,30 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
// TODO: this fails because multiple dialog boxes show // TODO: this fails because multiple dialog boxes show
} }
public int getWindowState() { public int getWindowState() { return fullscreen ? 1 : 0; }
return fullscreen ? 1 : 0; final static int FULLSCREEN_FLAGS = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}
void setUIVisibility(int flags) {
void goFullscreen() { if (curView == null) return;
curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); try {
curView.setSystemUiVisibility(flags);
} catch (NoSuchMethodError ex) {
// Not available on API < 11 (Android 3.0)
ex.printStackTrace();
}
} }
public void enterFullscreen() { public void enterFullscreen() {
fullscreen = true; fullscreen = true;
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() { setUIVisibility(FULLSCREEN_FLAGS); }
if (curView != null) goFullscreen();
}
}); });
} }
public void exitFullscreen() { public void exitFullscreen() {
fullscreen = false; fullscreen = false;
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() { setUIVisibility(View.SYSTEM_UI_FLAG_VISIBLE); }
if (curView != null) curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
}); });
} }