Hide the navigation bar only on Android API-19+

Hiding navigation bar only on Android pre API-19 is useless because the
navigation bar appears every time when the user touches the application
window.

[ChangeLog][Android] Hide the navigation bar only on Android API-19+

Change-Id: I085d691a0170cf10dd9970e009c34c6afc961bc6
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
bb10
BogDan Vatra 2016-04-01 09:36:49 +03:00
parent a064bcf883
commit f6eadcd601
1 changed files with 6 additions and 10 deletions

View File

@ -139,17 +139,13 @@ public class QtActivityDelegate
m_activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
m_activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
try {
if (Build.VERSION.SDK_INT >= 14) {
if (Build.VERSION.SDK_INT >= 19) {
int flags = View.class.getDeclaredField("SYSTEM_UI_FLAG_HIDE_NAVIGATION").getInt(null);
if (Build.VERSION.SDK_INT >= 16) {
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_STABLE").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_FULLSCREEN").getInt(null);
if (Build.VERSION.SDK_INT >= 19)
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_IMMERSIVE_STICKY").getInt(null);
}
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_STABLE").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_FULLSCREEN").getInt(null);
flags |= View.class.getDeclaredField("SYSTEM_UI_FLAG_IMMERSIVE_STICKY").getInt(null);
Method m = View.class.getMethod("setSystemUiVisibility", int.class);
m.invoke(m_activity.getWindow().getDecorView(), flags | View.INVISIBLE);
}