diff --git a/templates/android/template/src/org/haxe/lime/GameActivity.java b/templates/android/template/src/org/haxe/lime/GameActivity.java index b06853e11..eb918e36f 100644 --- a/templates/android/template/src/org/haxe/lime/GameActivity.java +++ b/templates/android/template/src/org/haxe/lime/GameActivity.java @@ -17,6 +17,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; +import android.os.Message; import android.os.Vibrator; import android.util.DisplayMetrics; import android.util.Log; @@ -99,7 +100,10 @@ public class GameActivity extends Activity implements SensorEventListener { requestWindowFeature (Window.FEATURE_NO_TITLE); ::if WIN_FULLSCREEN:: - getWindow ().addFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + ::if (ANDROID_TARGET_SDK_VERSION < 19):: + getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN + | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + ::end:: ::end:: metrics = new DisplayMetrics (); @@ -160,6 +164,31 @@ public class GameActivity extends Activity implements SensorEventListener { } + // IMMERSIVE MODE SUPPORT + ::if (ANDROID_TARGET_SDK_VERSION >= 19):: + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + + if(hasFocus) { + hideSystemUi(); + } + } + + private void hideSystemUi() { + View decorView = this.getWindow().getDecorView(); + + decorView.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); + } + + ::end:: public static double CapabilitiesGetPixelAspectRatio () {