main
dev
chore/365-cut-1.2.1
fix/363-pin-db-path
feat/351-contact-settings-menu
feat/349-window-geometry
feat/355-migration-merge
integration/290-306-335
release/1.1.2-rc.3-allplatforms
fix/309-path-len-decode
chore/298-path-logging
fix/285-ingest-timelog
fix/252-block-outgoing-dm
feat/64-observer-config
feat/batch1-ux
chore/offband-rebrand
v1.2.1
v1.2.0
v1.1.2-rc.3-allplatforms
v1.1.2-rc.3
v1.1.2-rc.2
v1.0.0
observer-g2-rc3
observer-g2-rc4
observer-g2-rc5
observer-g2-rc6
observer-g2-rc7
observer-g2-rc8
observer-g2-rc9
v1.1.0-rc.1
v1.1.0-rc.2
v1.1.0-rc.3
v1.1.2-beta.1
v1.1.2-beta.2
v1.1.2-beta.3
v1.1.2-ble-test
v1.1.2-queuediag
v1.1.2-rc.1
v1.1.2-rc.1-b45-nearbyrep
v1.1.2-rc.1-b46-pathhash
v1.1.2-rc.1-b47-tracewidth
v1.1.2-rc.1-b48-repeatertrace
v1.1.2-rc.1-b49-maptrace
v1.1.2-rc.1-b50-tracefix
v1.1.2-rc.1-b51-originstrip
v1.1.2-rc.1-b52-channelqr
v1.1.2-rc.1-b53-viarepeater
v1.1.2-rc.1-b54-rxfed
v1.1.2-rc.1-b55-topology
v1.1.2-rc.1-b57-routeux
v1.1.2-rc.1-b58-toporeadout
v1.1.2-rc.3-b59-pathlen
${ noResults }
2 Commits (29ca744667a18bb11232aab86bbda175110f3f0b)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
5c95a768e0 |
fix(#289): make the nav panel pinnable inside a channel too
The channel chat screen had a plain Drawer bolted onto it, so the panel could only be pinned open on the four primary views. Pinning it while reading a channel is the wide-screen case that was actually asked for: keeping the channel list and its unread counts visible without pulling it out. - AppShell now serves pushed detail screens as well: selectedIndex and onDestinationSelected are optional, and the bottom bar is omitted when they are absent (a pushed chat screen has no bottom bar). - New appBarBuilder(context, pinned) lets a screen vary its app bar with the dock state. ChannelChatScreen uses it to drop its hamburger when the panel is already pinned open, since there is nothing left to summon. - ChannelChatScreen builds on AppShell instead of a bare Scaffold, so it gets the same transient/pinned layout as everything else. The four primary views are untouched; the new parameters are additive. flutter analyze clean, dart format applied. Not yet run on hardware. |
3 days ago |
|
|
431b93f0fd |
feat(#292): shared app shell with hamburger nav drawer and pin
Epic A of the navigation redesign (#102). Adds AppShell, which owns the bottom QuickSwitchBar that Channels, Contacts, Map and Line-of-Sight each mounted separately, plus a left nav drawer: a transient slide-out on narrow layouts and a dockable panel that can be pinned open at >= 720px. - New lib/widgets/app_shell.dart. Reuses the 720px breakpoint established by settings_shell.dart. Pinned wide lays the panel out beside the body (Row), unpinned uses a standard Scaffold drawer so the hamburger is injected automatically; automaticallyImplyLeading:false was removed from the four app bars to allow that. - Pin state persists via UiViewStateService.navDrawerPinned. The load is placed before the channel-sort block in initialize(), which returns early and would otherwise skip it. - drawerContent is an empty slot here; the channel list fills it in Epic B (#289). Per owner decisions on #102 (2026-07-16): the bottom bar stays a bottom bar at every width (no left rail), and the drawer carries no view switcher, since the bottom bar owns view switching. flutter analyze clean, dart format applied. Not yet run on hardware. |
3 days ago |