- Replace single NavigationRail with adaptive navigation: NavigationBar
(bottom) for compact <600dp, icon-only NavigationRail for medium
600–840dp, and extended NavigationRail for expanded ≥840dp
- Remove nested Scaffold/AppBar from About, Settings, DeviceList, and
DeviceDetail — all screens now render as plain widgets inside the
single shell Scaffold; page titles surface as inline headings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extract inline widget closures into named StatelessWidgets (_DeviceCard,
_DeviceFilterSheet, _NotificationCard), replace magic ints and hardcoded
repeated widgets with enum-driven loops, fix the InputDecorator/DropdownButton
hack in device_actions, merge symmetric _markAsRead/_markAsNew into _setRead,
and remove dead _isLoading/_isSaving state in settings where operations are
synchronous.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a dropdown in the settings page to switch between available themes
(Catppuccin Mocha, Gruvbox Dark). The selected theme is applied immediately
on save and persisted across restarts via SharedPreferences.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>