Example usage for android.view View SYSTEM_UI_FLAG_IMMERSIVE_STICKY

List of usage examples for android.view View SYSTEM_UI_FLAG_IMMERSIVE_STICKY

Introduction

In this page you can find the example usage for android.view View SYSTEM_UI_FLAG_IMMERSIVE_STICKY.

Prototype

int SYSTEM_UI_FLAG_IMMERSIVE_STICKY

To view the source code for android.view View SYSTEM_UI_FLAG_IMMERSIVE_STICKY.

Click Source Link

Document

Flag for #setSystemUiVisibility(int) : View would like to remain interactive when hiding the status bar with #SYSTEM_UI_FLAG_FULLSCREEN and/or hiding the navigation bar with #SYSTEM_UI_FLAG_HIDE_NAVIGATION .

Usage

From source file:com.example.android.advancedimmersivemode.AdvancedImmersiveModeFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle state) {
    final View flagsView = inflater.inflate(R.layout.fragment_flags, container, false);
    mLowProfileCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_lowprof);
    mHideNavCheckbox = (CheckBox) flagsView.findViewById(R.id.flag_hide_navbar);
    mHideStatusBarCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_hide_statbar);
    mImmersiveModeCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_immersive);
    mImmersiveModeStickyCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_immersive_sticky);

    Button toggleFlagsButton = (Button) flagsView.findViewById(R.id.btn_changeFlags);
    toggleFlagsButton.setOnClickListener(new View.OnClickListener() {
        @Override//from w  ww.j  av  a  2 s  . c  om
        public void onClick(View view) {
            toggleUiFlags();
        }
    });

    Button presetsImmersiveModeButton = (Button) flagsView.findViewById(R.id.btn_immersive);
    presetsImmersiveModeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            // BEGIN_INCLUDE(immersive_presets)
            // For immersive mode, the FULLSCREEN, HIDE_HAVIGATION and IMMERSIVE
            // flags should be set (you can use IMMERSIVE_STICKY instead of IMMERSIVE
            // as appropriate for your app).  The LOW_PROFILE flag should be cleared.

            // Immersive mode is primarily for situations where the user will be
            // interacting with the screen, like games or reading books.
            int uiOptions = flagsView.getSystemUiVisibility();
            uiOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
            uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
            uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
            uiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
            flagsView.setSystemUiVisibility(uiOptions);
            // END_INCLUDE(immersive_presets)

            dumpFlagStateToLog(uiOptions);

            // The below code just updates the checkboxes to reflect which flags have been set.
            mLowProfileCheckBox.setChecked(false);
            mHideNavCheckbox.setChecked(true);
            mHideStatusBarCheckBox.setChecked(true);
            mImmersiveModeCheckBox.setChecked(true);
            mImmersiveModeStickyCheckBox.setChecked(false);
        }
    });

    Button presetsLeanbackModeButton = (Button) flagsView.findViewById(R.id.btn_leanback);
    presetsLeanbackModeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // BEGIN_INCLUDE(leanback_presets)
            // For leanback mode, only the HIDE_NAVE and HIDE_STATUSBAR flags
            // should be checked.  In this case IMMERSIVE should *not* be set,
            // since this mode is left as soon as the user touches the screen.
            int uiOptions = flagsView.getSystemUiVisibility();
            uiOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
            uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
            uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
            flagsView.setSystemUiVisibility(uiOptions);
            // END_INCLUDE(leanback_presets)

            dumpFlagStateToLog(uiOptions);

            // The below code just updates the checkboxes to reflect which flags have been set.
            mLowProfileCheckBox.setChecked(false);
            mHideNavCheckbox.setChecked(true);
            mHideStatusBarCheckBox.setChecked(true);
            mImmersiveModeCheckBox.setChecked(false);
            mImmersiveModeStickyCheckBox.setChecked(false);
        }
    });

    // Setting these flags makes the content appear under the navigation
    // bars, so that showing/hiding the nav bars doesn't resize the content
    // window, which can be jarring.
    int uiOptions = flagsView.getSystemUiVisibility();
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
    flagsView.setSystemUiVisibility(uiOptions);

    return flagsView;
}

From source file:com.avolatile.randomdaily.IntroductionActivity.java

@Override
protected void onResume() {

    /* The following code will enable immersive mode for the introduction screen
     * for devices running on Android 3.0 Honeycomb or higher. This will effectively
     * enable immersive mode all of the app's instances as the app is only compatible
     * with devices running on Android 4.1 Jelly Bean or higher */

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                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);
    }//from   ww  w.j  av a  2s.  c o m

    super.onResume();
}

From source file:info.ipeanut.googletrainingcoursedemos.advancedimmersivemode.AdvancedImmersiveModeFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle state) {
    final View flagsView = inflater.inflate(R.layout.fragment_flags, container, false);
    mLowProfileCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_lowprof);
    mHideNavCheckbox = (CheckBox) flagsView.findViewById(R.id.flag_hide_navbar);
    mHideStatusBarCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_hide_statbar);
    mImmersiveModeCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_immersive);
    mImmersiveModeStickyCheckBox = (CheckBox) flagsView.findViewById(R.id.flag_enable_immersive_sticky);

    Button toggleFlagsButton = (Button) flagsView.findViewById(R.id.btn_changeFlags);
    toggleFlagsButton.setOnClickListener(new View.OnClickListener() {
        @Override/*from ww  w .j  a  v  a  2  s  .c  o m*/
        public void onClick(View view) {
            toggleUiFlags();
        }
    });

    Button presetsImmersiveModeButton = (Button) flagsView.findViewById(R.id.btn_immersive);
    presetsImmersiveModeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            // For immersive mode, the FULLSCREEN, HIDE_HAVIGATION and IMMERSIVE
            // flags should be set (you can use IMMERSIVE_STICKY instead of IMMERSIVE
            // as appropriate for your app).  The LOW_PROFILE flag should be cleared.

            // Immersive mode is primarily for situations where the user will be
            // interacting with the screen, like games or reading books.
            int uiOptions = flagsView.getSystemUiVisibility();
            uiOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
            uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
            uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
            uiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
            flagsView.setSystemUiVisibility(uiOptions);

            dumpFlagStateToLog(uiOptions);

            // The below code just updates the checkboxes to reflect which flags have been set.
            mLowProfileCheckBox.setChecked(false);
            mHideNavCheckbox.setChecked(true);
            mHideStatusBarCheckBox.setChecked(true);
            mImmersiveModeCheckBox.setChecked(true);
            mImmersiveModeStickyCheckBox.setChecked(false);
        }
    });

    Button presetsLeanbackModeButton = (Button) flagsView.findViewById(R.id.btn_leanback);
    presetsLeanbackModeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            // For leanback mode, only the HIDE_NAVE and HIDE_STATUSBAR flags
            // should be checked.  In this case IMMERSIVE should *not* be set,
            // since this mode is left as soon as the user touches the screen.
            int uiOptions = flagsView.getSystemUiVisibility();
            uiOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
            uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
            uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE;
            uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
            flagsView.setSystemUiVisibility(uiOptions);

            dumpFlagStateToLog(uiOptions);

            // The below code just updates the checkboxes to reflect which flags have been set.
            mLowProfileCheckBox.setChecked(false);
            mHideNavCheckbox.setChecked(true);
            mHideStatusBarCheckBox.setChecked(true);
            mImmersiveModeCheckBox.setChecked(false);
            mImmersiveModeStickyCheckBox.setChecked(false);
        }
    });

    // Setting these flags makes the content appear under the navigation
    // bars, so that showing/hiding the nav bars doesn't resize the content
    // window, which can be jarring.
    int uiOptions = flagsView.getSystemUiVisibility();
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
    uiOptions |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
    flagsView.setSystemUiVisibility(uiOptions);

    return flagsView;
}

From source file:com.cranberrygame.phonegap.plugin.NavigationBar.java

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void _setUp(boolean autoHideNavigationBar) {
    if (autoHideNavigationBar) {
        Activity activity = cordova.getActivity();
        //http://stackoverflow.com/questions/21164836/immersive-mode-navigation-becomes-sticky-after-volume-press-or-minimise-restore
        //http://www.youtube.com/watch?v=Xw9TIS_JsPM      
        //https://developer.android.com/training/system-ui/status.html
        activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                //| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                //| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

        final CordovaInterface cordova_final = cordova;
        //http://stackoverflow.com/questions/11762306/listen-for-first-touchevent-when-using-system-ui-flag-hide-navigation
        //http://stackoverflow.com/questions/15103339/android-full-screen-modeics-first-touch-shows-the-navigation-bar
        //http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html   
        webView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
            @Override//from w w w  .  jav  a  2 s. co  m
            public void onSystemUiVisibilityChange(int vis) {
                if (vis == 0) {
                    //http://stackoverflow.com/questions/3072173/how-to-call-a-method-after-a-delay-in-android
                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Activity activity = cordova_final.getActivity();
                            activity.getWindow().getDecorView()
                                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//
                                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            //| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            //| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
                        }
                    }, 3000);//after ms                
                }
            }
        });
    }
}

From source file:com.cranberrygame.cordova.plugin.navigationbar.NavigationBar.java

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void _setUp(boolean autoHideNavigationBar) {
    if (autoHideNavigationBar) {
        Activity activity = cordova.getActivity();
        //http://stackoverflow.com/questions/21164836/immersive-mode-navigation-becomes-sticky-after-volume-press-or-minimise-restore
        //http://www.youtube.com/watch?v=Xw9TIS_JsPM      
        //https://developer.android.com/training/system-ui/status.html
        activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                //| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                //| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

        final CordovaInterface cordova_final = cordova;
        //http://stackoverflow.com/questions/11762306/listen-for-first-touchevent-when-using-system-ui-flag-hide-navigation
        //http://stackoverflow.com/questions/15103339/android-full-screen-modeics-first-touch-shows-the-navigation-bar
        //http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html   
        //webView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener(){//cordova5 build error
        getView(webView).setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {//fixed cordova5 build error
            @Override/*from   ww  w  . j a  v a2  s .  com*/
            public void onSystemUiVisibilityChange(int vis) {
                if (vis == 0) {
                    //http://stackoverflow.com/questions/3072173/how-to-call-a-method-after-a-delay-in-android
                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Activity activity = cordova_final.getActivity();
                            activity.getWindow().getDecorView()
                                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//
                                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            //| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            //| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
                        }
                    }, 3000);//after ms                
                }
            }
        });
    }
}

From source file:com.pimp.instincts.activities.GalleryActivity.java

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    View decorView = getWindow().getDecorView();
    if (hasFocus) {
        decorView.setSystemUiVisibility(
                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);
    }//  w  ww  .  jav  a  2  s  .  c  om
}

From source file:de.lespace.apprtc.CallActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Thread.setDefaultUncaughtExceptionHandler(new UnhandledExceptionHandler(this));

    // Set window styles for fullscreen-window size. Needs to be done before
    // adding content.
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().addFlags(/*from  w w  w  . ja  v  a 2 s.  c om*/
            LayoutParams.FLAG_FULLSCREEN | LayoutParams.FLAG_KEEP_SCREEN_ON | LayoutParams.FLAG_DISMISS_KEYGUARD
                    | LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_TURN_SCREEN_ON);

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

    setContentView(R.layout.activity_call);

    iceConnected = false;

    scalingType = ScalingType.SCALE_ASPECT_FILL;

    callFragment = new CallFragment();
    hudFragment = new HudFragment();

    // Create UI controls.
    localRender = (SurfaceViewRenderer) findViewById(R.id.local_video_view);
    remoteRender = (SurfaceViewRenderer) findViewById(R.id.remote_video_view);
    screenRender = (SurfaceViewRenderer) findViewById(R.id.remote_screen_view);

    localRenderLayout = (PercentFrameLayout) findViewById(R.id.local_video_layout);
    remoteRenderLayout = (PercentFrameLayout) findViewById(R.id.remote_video_layout);

    screenRenderLayout = (PercentFrameLayout) findViewById(R.id.remote_screen_layout);

    // Show/hide call control fragment on view click.
    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            toggleCallControlFragmentVisibility();
        }
    };

    localRender.setOnClickListener(listener);
    remoteRender.setOnClickListener(listener);
    screenRender.setOnClickListener(listener); //screensharing

    // Create video renderers.
    rootEglBase = EglBase.create();
    localRender.init(rootEglBase.getEglBaseContext(), null);
    remoteRender.init(rootEglBase.getEglBaseContext(), null);
    screenRender.init(rootEglBase.getEglBaseContext(), null);
    localRender.setZOrderMediaOverlay(true);
    screenRender.setZOrderMediaOverlay(true);
    updateVideoView();

    setResult(RESULT_CANCELED);

    if (!broadcastIsRegistered) {
        registerReceiver(broadcast_reciever, new IntentFilter("finish_CallActivity"));
        registerReceiver(broadcast_reciever, new IntentFilter("finish_screensharing"));
        broadcastIsRegistered = true;
    }

    callFragment = new CallFragment();
    hudFragment = new HudFragment();
    // Send intent arguments to fragments.
    callFragment.setArguments(getIntent().getExtras());
    hudFragment.setArguments(getIntent().getExtras());

    // Activate call and HUD fragments and start the call.
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.add(R.id.call_fragment_container, callFragment);
    ft.add(R.id.hud_fragment_container, hudFragment);
    ft.commit();

    // For command line execution run connection for <runTimeMs> and exit.
    if (commandLineRun && runTimeMs > 0) {
        (new Handler()).postDelayed(new Runnable() {
            @Override
            public void run() {
                disconnect(false);
            }
        }, runTimeMs);
    }

    // Create and audio manager that will take care of audio routing,
    // audio modes, audio device enumeration etc.
    audioManager = AppRTCAudioManager.create(this, new Runnable() {
        // This method will be called each time the audio state (number and
        // type of devices) has been changed.
        @Override
        public void run() {
            onAudioManagerChangedState();
        }
    });

    // Store existing audio settings and change audio mode to
    // MODE_IN_COMMUNICATION for best possible VoIP performance.
    Log.d(TAG, "Initializing the audio manager...");
    audioManager.init();

    peerConnectionClient = PeerConnectionClient.getInstance(true);
    peerConnectionClient.createPeerConnectionFactory(CallActivity.this, peerConnectionParameters, this);

    peerConnectionClient.createPeerConnection(rootEglBase.getEglBaseContext(), localRender, remoteRender,
            screenRender, roomConnectionParameters.initiator);

    logAndToast("Creating OFFER...");
    // Create offer. Offer SDP will be sent to answering client in
    // PeerConnectionEvents.onLocalDescription event.
    peerConnectionClient.createOffer();
}

From source file:org.andstatus.app.MyActivity.java

/**
 * Sets or Toggles fullscreen mode//from   w w  w .j av a  2  s.  co  m
 * REQUIRE: android:configChanges="orientation|screenSize"
 * Based on http://stackoverflow.com/a/30224178/297710
 * On Immersive mode: https://developer.android.com/training/system-ui/immersive.html
 */
public void toggleFullscreen(TriState fullScreenIn) {
    int uiOptions = getWindow().getDecorView().getSystemUiVisibility();
    int uiOptionsNew = uiOptions;
    boolean fullscreenNew = ((uiOptions & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0);
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        fullscreenNew = actionBar.isShowing();
    }
    fullscreenNew = fullScreenIn.toBoolean(fullscreenNew);

    if (actionBar != null) {
        if (fullscreenNew) {
            actionBar.hide();
        } else {
            actionBar.show();
        }
    }
    if (fullscreenNew) {
        if (Build.VERSION.SDK_INT >= 14) {
            uiOptionsNew |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        }
        if (Build.VERSION.SDK_INT >= 16) {
            uiOptionsNew |= View.SYSTEM_UI_FLAG_FULLSCREEN;
        }
        if (Build.VERSION.SDK_INT >= 19) {
            uiOptionsNew |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        }
    } else {
        if (Build.VERSION.SDK_INT >= 14) {
            uiOptionsNew &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        }
        if (Build.VERSION.SDK_INT >= 16) {
            uiOptionsNew &= ~View.SYSTEM_UI_FLAG_FULLSCREEN;
        }
        if (Build.VERSION.SDK_INT >= 19) {
            uiOptionsNew &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        }
    }
    getWindow().getDecorView().setSystemUiVisibility(uiOptionsNew);
}

From source file:de.sixtyfourktec.mirrorhub.Main.java

@TargetApi(19)
private void setFullscreenLevel19() {
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // API 14; hide nav bar
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE // API 16
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // API 16
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // API 16
            | View.SYSTEM_UI_FLAG_FULLSCREEN // API 16; hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); // API 19
}

From source file:com.twolinessoftware.smarterlist.activity.TutorialActivity.java

@SuppressLint("NewApi")
@Override/*from   w  w w. j  ava2s  .c  o m*/
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (m_currentApiVersion >= Build.VERSION_CODES.KITKAT && hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                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);
    }
}