Skip to content

Commit ffbdc5d

Browse files
AsCressmarcnause
authored andcommitted
fix: fixes the appearance of Navigation Bar in the fullscreen mode
1 parent 442fcf5 commit ffbdc5d

File tree

2 files changed

+62
-15
lines changed

2 files changed

+62
-15
lines changed

app/src/main/java/io/pslab/activity/LogicalAnalyzerActivity.java

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.pslab.activity;
22

3+
import android.annotation.SuppressLint;
34
import android.content.Intent;
4-
import android.os.Build;
55
import android.os.Bundle;
66
import android.view.Menu;
77
import android.view.MenuItem;
@@ -73,19 +73,36 @@ protected void onResume() {
7373
}
7474

7575
private void removeStatusBar() {
76-
if (Build.VERSION.SDK_INT < 16) {
77-
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
78-
WindowManager.LayoutParams.FLAG_FULLSCREEN);
79-
} else {
80-
View decorView = getWindow().getDecorView();
81-
82-
decorView.setSystemUiVisibility((View.SYSTEM_UI_FLAG_LAYOUT_STABLE
83-
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
84-
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
85-
| View.SYSTEM_UI_FLAG_FULLSCREEN
86-
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
87-
| View.SYSTEM_UI_FLAG_FULLSCREEN
88-
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY));
76+
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
77+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
78+
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
79+
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
80+
| View.SYSTEM_UI_FLAG_FULLSCREEN
81+
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
82+
getWindow().getDecorView().setSystemUiVisibility(flags);
83+
final View decorView = getWindow().getDecorView();
84+
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
85+
@Override
86+
public void onSystemUiVisibilityChange(int i) {
87+
if ((i & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
88+
decorView.setSystemUiVisibility(flags);
89+
}
90+
}
91+
});
92+
}
93+
94+
@SuppressLint("NewApi")
95+
@Override
96+
public void onWindowFocusChanged(boolean hasFocus) {
97+
super.onWindowFocusChanged(hasFocus);
98+
if (hasFocus) {
99+
getWindow().getDecorView().setSystemUiVisibility(
100+
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
101+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
102+
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
103+
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
104+
| View.SYSTEM_UI_FLAG_FULLSCREEN
105+
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
89106
}
90107
}
91108

app/src/main/java/io/pslab/activity/OscilloscopeActivity.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,22 @@ public OscilloscopeActivity() {
212212
protected void onCreate(@Nullable Bundle savedInstanceState) {
213213
requestWindowFeature(Window.FEATURE_NO_TITLE);
214214
super.onCreate(savedInstanceState);
215-
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
215+
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
216+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
217+
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
218+
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
219+
| View.SYSTEM_UI_FLAG_FULLSCREEN
220+
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
221+
getWindow().getDecorView().setSystemUiVisibility(flags);
222+
final View decorView = getWindow().getDecorView();
223+
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
224+
@Override
225+
public void onSystemUiVisibilityChange(int i) {
226+
if ((i & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
227+
decorView.setSystemUiVisibility(flags);
228+
}
229+
}
230+
});
216231
ButterKnife.bind(this);
217232

218233
removeStatusBar();
@@ -475,6 +490,21 @@ public void run() {
475490
}
476491
}
477492

493+
@SuppressLint("NewApi")
494+
@Override
495+
public void onWindowFocusChanged(boolean hasFocus) {
496+
super.onWindowFocusChanged(hasFocus);
497+
if (hasFocus) {
498+
getWindow().getDecorView().setSystemUiVisibility(
499+
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
500+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
501+
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
502+
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
503+
| View.SYSTEM_UI_FLAG_FULLSCREEN
504+
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
505+
}
506+
}
507+
478508
@Override
479509
public boolean onCreateOptionsMenu(Menu menu) {
480510
getMenuInflater().inflate(R.menu.activity_landscape_menu, menu);

0 commit comments

Comments
 (0)