diff --git a/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContent.java b/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContent.java index 41ce2489ca..6f44052db3 100644 --- a/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContent.java +++ b/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContent.java @@ -10,7 +10,11 @@ import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Rect; +import android.os.Build.VERSION; +import android.os.Build.VERSION_CODES; import android.os.Bundle; +import android.view.View; +import android.view.WindowManager; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; @@ -468,7 +472,20 @@ public void onGetUrlAndLaunchScreenFromManifest(String url, String readyWhen, St @CalledByNative public void onGetFullscreenFlagFromManifest(boolean enterFullscreen) { - if (enterFullscreen) mContentsClientBridge.onToggleFullscreen(true); + if (enterFullscreen) { + if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { + View decorView = mXWalkView.getActivity().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); + } else { + mXWalkView.getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + } } public void destroy() {