@@ -222,6 +222,17 @@ public void onCreate(Bundle savedInstanceState) {
222222 WindowManager .LayoutParams .FLAG_FULLSCREEN );
223223 } else if (preferences .getBoolean ("Fullscreen" , false )) {
224224 toggleFullscreen (getWindow ());
225+
226+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ) {
227+ getWindow ().getDecorView ().setOnSystemUiVisibilityChangeListener (new View .OnSystemUiVisibilityChangeListener () {
228+ @ Override
229+ public void onSystemUiVisibilityChange (int visibility ) {
230+ if ((visibility & View .SYSTEM_UI_FLAG_FULLSCREEN ) == 0 ) {
231+ setSystemUiVisibilityMode (getWindow ());
232+ }
233+ }
234+ });
235+ }
225236 } else {
226237 getWindow ().setFlags (WindowManager .LayoutParams .FLAG_FORCE_NOT_FULLSCREEN ,
227238 WindowManager .LayoutParams .FLAG_FORCE_NOT_FULLSCREEN );
@@ -300,19 +311,23 @@ protected void createViews() {
300311 @ SuppressLint ("NewApi" )
301312 private void toggleFullscreen (Window window ) {
302313 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ) {
303- final int uiOptions =
314+ setSystemUiVisibilityMode (window );
315+ } else {
316+ window .setFlags (WindowManager .LayoutParams .FLAG_FULLSCREEN ,
317+ WindowManager .LayoutParams .FLAG_FULLSCREEN );
318+ }
319+ }
320+
321+ private void setSystemUiVisibilityMode (Window window ) {
322+ final int uiOptions =
304323 View .SYSTEM_UI_FLAG_LAYOUT_STABLE
305324 | View .SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
306325 | View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
307326 | View .SYSTEM_UI_FLAG_HIDE_NAVIGATION
308327 | View .SYSTEM_UI_FLAG_FULLSCREEN
309328 | View .SYSTEM_UI_FLAG_IMMERSIVE_STICKY ;
310329
311- window .getDecorView ().setSystemUiVisibility (uiOptions );
312- } else {
313- window .setFlags (WindowManager .LayoutParams .FLAG_FULLSCREEN ,
314- WindowManager .LayoutParams .FLAG_FULLSCREEN );
315- }
330+ window .getDecorView ().setSystemUiVisibility (uiOptions );
316331 }
317332
318333 /**
@@ -1021,6 +1036,17 @@ public void run() {
10211036 if (getBooleanProperty ("FullScreen" , false ))
10221037 {
10231038 toggleFullscreen (splashDialog .getWindow ());
1039+
1040+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ) {
1041+ splashDialog .getWindow ().getDecorView ().setOnSystemUiVisibilityChangeListener (new View .OnSystemUiVisibilityChangeListener () {
1042+ @ Override
1043+ public void onSystemUiVisibilityChange (int visibility ) {
1044+ if ((visibility & View .SYSTEM_UI_FLAG_FULLSCREEN ) == 0 ) {
1045+ setSystemUiVisibilityMode (splashDialog .getWindow ());
1046+ }
1047+ }
1048+ });
1049+ }
10241050 }
10251051
10261052 splashDialog .setContentView (splashLayout );
0 commit comments