add support for android-19 immersive mode
This commit is contained in:
@@ -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;
|
||||
@@ -160,6 +161,68 @@ public class GameActivity extends Activity implements SensorEventListener {
|
||||
|
||||
}
|
||||
|
||||
::if (ANDROID_TARGET_SDK_VERSION >= 19)::
|
||||
|
||||
private final int HIDE_DELAY = 100;
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
|
||||
this.delayedHide(HIDE_DELAY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasFocus) {
|
||||
super.onWindowFocusChanged(hasFocus);
|
||||
|
||||
// when the window lost focus cancel all pending hide actions
|
||||
// when the window gains focus, hide the system ui.
|
||||
if(hasFocus) {
|
||||
this.delayedHide(HIDE_DELAY);
|
||||
} else {
|
||||
hideSystemUiHandler.removeMessages(0);
|
||||
}
|
||||
}
|
||||
|
||||
// declare handler
|
||||
protected Handler hideSystemUiHandler = new Handler() {
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message message) {
|
||||
hideSystemUi();
|
||||
}
|
||||
};
|
||||
|
||||
// hide system ui after delay
|
||||
private void delayedHide(int delayInMilliseconds) {
|
||||
this.hideSystemUiHandler.removeMessages(0);
|
||||
this.hideSystemUiHandler.sendEmptyMessageDelayed(0, delayInMilliseconds);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
private void showSystemUi() {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
::end::
|
||||
|
||||
public static double CapabilitiesGetPixelAspectRatio () {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user