@SuppressLint("NewApi") public static void updateImmersiveMode() { if (android.os.Build.VERSION.SDK_INT >= 19 && instance != null && instance.getWindow() != null && instance.getWindow().getDecorView() != null) { try { // Sometime NullPointerException happens here instance.getWindow().getDecorView().setSystemUiVisibility( immersed() ? 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 : 0 ); } catch (Exception e) { reportException( e ); } } }
public static void updateSystemUI() { boolean fullscreen = Build.VERSION.SDK_INT < Build.VERSION_CODES.N || !instance.isInMultiWindowMode(); if (fullscreen){ instance.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else { instance.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } if (DeviceCompat.supportsFullScreen()){ if (fullscreen && SPDSettings.fullscreen()) { instance.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION ); } else { instance.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE ); } } }