Merge pull request #37 from kasoki/android_immersive_mode

Add support for android immsersive mode
This commit is contained in:
Joshua Granick
2014-02-04 08:15:05 -08:00

View File

@@ -17,6 +17,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.Message;
import android.os.Vibrator; import android.os.Vibrator;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
@@ -99,7 +100,10 @@ public class GameActivity extends Activity implements SensorEventListener {
requestWindowFeature (Window.FEATURE_NO_TITLE); requestWindowFeature (Window.FEATURE_NO_TITLE);
::if WIN_FULLSCREEN:: ::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:: ::end::
metrics = new DisplayMetrics (); 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 () { public static double CapabilitiesGetPixelAspectRatio () {