40
40
import android .graphics .*;
41
41
import android .net .Uri ;
42
42
import android .opengl .GLSurfaceView ;
43
- import android .os .Build ;
44
43
import android .os .Bundle ;
45
44
import android .os .Handler ;
46
45
import android .text .format .Time ;
@@ -490,21 +489,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
490
489
throw new RuntimeException (message );
491
490
}
492
491
493
- if (fullScreen ) {
494
- int visibility ;
495
- if (SDK < 19 ) {
496
- // Pre-4.4
497
- visibility = View .SYSTEM_UI_FLAG_HIDE_NAVIGATION ;
498
- } else {
499
- // 4.4 and higher. Equivalent to:
500
- // View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
501
- // View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
502
- // View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
503
- // so this line can be build with SDK < 4.4
504
- visibility = 256 | 512 | 1024 | View .SYSTEM_UI_FLAG_HIDE_NAVIGATION | 4 | 2048 | 4096 ;
505
- }
506
- surfaceView .setSystemUiVisibility (visibility );
507
- }
492
+ setFullScreenVisibility ();
508
493
509
494
// Getting the display metrics only after setting fullscreen mode
510
495
DisplayMetrics dm = new DisplayMetrics ();
@@ -639,17 +624,42 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
639
624
return rootView ;
640
625
}
641
626
642
-
643
627
@ Override
644
628
public void onConfigurationChanged (Configuration newConfig ) {
645
629
if (DEBUG ) System .out .println ("configuration changed: " + newConfig );
646
630
super .onConfigurationChanged (newConfig );
647
631
}
648
632
649
633
634
+ private void setFullScreenVisibility () {
635
+ if (fullScreen ) {
636
+ int visibility ;
637
+ if (SDK < 19 ) {
638
+ // Pre-4.4
639
+ visibility = View .SYSTEM_UI_FLAG_HIDE_NAVIGATION ;
640
+ } else {
641
+ // 4.4 and higher. Integer instead of constants defined in View so it can
642
+ // build with SDK < 4.4
643
+ visibility = 256 | // View.SYSTEM_UI_FLAG_LAYOUT_STABLE
644
+ 512 | // View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
645
+ 1024 | // View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
646
+ View .SYSTEM_UI_FLAG_HIDE_NAVIGATION |
647
+ 4 | // View.SYSTEM_UI_FLAG_FULLSCREEN
648
+ 4096 ; // View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
649
+ // However, this visibility does not fix a bug where the navigation area
650
+ // turns black after resuming the app:
651
+ // https://code.google.com/p/android/issues/detail?id=170752
652
+
653
+ visibility = View .SYSTEM_UI_FLAG_HIDE_NAVIGATION | 4096 ;
654
+ }
655
+ surfaceView .setSystemUiVisibility (visibility );
656
+ }
657
+ }
658
+
650
659
@ Override
651
660
public void onResume () {
652
661
super .onResume ();
662
+ setFullScreenVisibility ();
653
663
654
664
// TODO need to bring back app state here!
655
665
// surfaceView.onResume();
@@ -665,6 +675,7 @@ public void onResume() {
665
675
@ Override
666
676
public void onPause () {
667
677
super .onPause ();
678
+ setFullScreenVisibility ();
668
679
669
680
// TODO need to save all application state here!
670
681
// System.out.println("PApplet.onPause() called");
@@ -4596,7 +4607,7 @@ public boolean saveJSONObject(JSONObject json, String filename, String options)
4596
4607
return json .save (saveFile (filename ), options );
4597
4608
}
4598
4609
4599
-
4610
+
4600
4611
/**
4601
4612
* @webref input:files
4602
4613
* @param input String to parse as a JSONArray
0 commit comments