You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add An Immersive Mode Option That Hides Both The Status Bar And Navigation Bar #42
ZenNotes currently provides an option to hide the status bar, but the navigation bar remains visible. This prevents the app UI from occupying the entire screen.
Proposed Enhancement
Add an Immersive Mode option that hides both the status bar and navigation bar.
The system bars should still be temporarily revealed through the standard Android edge-swipe gesture and automatically hidden again after being revealed.
Considerations
Immersive Mode should use Android's standard transient system-bar behaviour so that users can temporarily reveal the system bars when needed.
Possible Implementation
Use WindowInsetsControllerCompat to hide WindowInsetsCompat.Type.systemBars() and set systemBarsBehaviour to BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE. This would hide both the status bar and navigation bar while allowing them to be temporarily revealed through an edge-swipe gesture.
The window should also use transparent system-bar colours and edge-to-edge layout so that hiding the bars does not leave their configured background colours visible.
Rationale
Allowing both system bars to be hidden would provide a more complete fullscreen experience and allow the app UI to occupy the entire screen.
Current Workaround
The current Hide Status Bar option can hide the status bar, but the navigation bar remains visible.
Additional Context
When the status bar is hidden, its configured background colour still remains visible as a solid area. The navigation bar also retains its configured background colour. Immersive Mode should ensure that both system-bar areas are transparent rather than leaving solid background-colour blocks around the app UI.
Shipped in 1.1.14 (versionCode 16), submitted to Play today — implemented in e11f1d6, via PR #44.
Settings → Appearance → System bars now has three choices: Shown, No status bar (the previous Hide-status-bar behavior), and Immersive, which hides the navigation bar too so the app UI gets the entire screen.
Implementation matched the proposal almost exactly:
The navigation bar is hidden through Capacitor 8 core's built-in SystemBars plugin, which drives WindowInsetsControllerCompat.hide(Type.navigationBars()) — no new native code needed.
BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE was already set once in MainActivity (from Hide Status Bar For A Fullscreen Experience #22) and covers all system bars, so a swipe from a hidden bar's edge reveals it transiently and it auto-hides again.
On the transparency point: with targetSdk 36 the app is edge-to-edge and Capacitor's insets pipeline re-applies on every change, so hidden bars leave no solid background-colour strips, and transiently revealed bars draw translucent over the content. (The one strip that can remain is the display-cutout inset in portrait — content deliberately stays clear of the camera cutout, same as the existing status-bar option.)
The preference rides the existing zn:hide-status-bar storage key ('1' still means status-bar-hidden, 'immersive' is new), so existing users keep their setting across the upgrade.
Verified on the API 35 emulator with both 3-button and gesture navigation: all three modes, transient reveal + auto-hide, keyboard/toolbar docking under immersive, and persistence across cold start.
Activity
Merge pull request #44 from ZenNotes/release/1.1.14
adibhanna commentedon Sep 1, 2026
Shipped in 1.1.14 (versionCode 16), submitted to Play today — implemented in e11f1d6, via PR #44.
Settings → Appearance → System bars now has three choices: Shown, No status bar (the previous Hide-status-bar behavior), and Immersive, which hides the navigation bar too so the app UI gets the entire screen.
Implementation matched the proposal almost exactly:
SystemBarsplugin, which drivesWindowInsetsControllerCompat.hide(Type.navigationBars())— no new native code needed.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPEwas already set once inMainActivity(from Hide Status Bar For A Fullscreen Experience #22) and covers all system bars, so a swipe from a hidden bar's edge reveals it transiently and it auto-hides again.zn:hide-status-barstorage key ('1' still means status-bar-hidden, 'immersive' is new), so existing users keep their setting across the upgrade.Verified on the API 35 emulator with both 3-button and gesture navigation: all three modes, transient reveal + auto-hide, keyboard/toolbar docking under immersive, and persistence across cold start.