mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-03 03:11:57 +00:00
feat(ui-lvgl): quick panel from the status bar; L2 fixes from rc1
The quick panel, as a phone's: pulled down from the status bar (or a tap on it). Bluetooth, WiFi, GPS, sound, trail and live share switch at a tap; Advert opens the advert popup (moved here from the Nodes header); Lock locks the screen; a brightness slider. Holding a tile opens its settings. Lock and sun glyphs added to the fonts. Fixes from rc1 testing on the L2: - GPS status icon: none when GPS is off (the module kept its last fix valid, so it stayed green); grey on, green with a fix. ensureGps() turns GPS on before trusting that stale fix. - Screen wake: the panel wakes dark, a frame is drawn, then the backlight fades in -- no white flash. Off fades out first. - Power off / flat battery: the chip wakes every 30 s to look for USB power and starts when plugged in (it slept with no wake source before, until the reset button). Plugged in when switched off: stays off until re-plugged. - Message ages in a conversation refresh every 2 s, as on ui-new; the message popup keeps its age, repeaters heard and delivery up to date. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,13 @@ public:
|
||||
void homeAppDrop(int from, int to);
|
||||
void homeAppToggle(int pos);
|
||||
void goHome(); // the side button: Home's clock page
|
||||
// The quick panel, pulled down from the status bar (QuickPanel.h)
|
||||
void quickPanelBuild();
|
||||
bool quickPanelBegin();
|
||||
void quickPanelClose(bool animate);
|
||||
bool quickPanelOpen() const;
|
||||
void quickPanelRefresh();
|
||||
void quickPanelTile(int t, bool hold);
|
||||
void homeFieldSet(int slot, int field);
|
||||
void showChats();
|
||||
void showContacts();
|
||||
@@ -240,6 +247,7 @@ public:
|
||||
void conversationAction(uint8_t act);
|
||||
void conversationNotif(int v);
|
||||
void messageMenu(int idx);
|
||||
void messagePopupTick();
|
||||
void messageAction(uint8_t act);
|
||||
void chatFold(int which);
|
||||
void toggleChatFilter(uint8_t which);
|
||||
@@ -396,6 +404,7 @@ private:
|
||||
void refreshNode();
|
||||
void buildThread();
|
||||
void refreshThread();
|
||||
void refreshThreadAges();
|
||||
uint32_t threadSignature() const;
|
||||
void buildClock();
|
||||
void buildRadio();
|
||||
@@ -484,6 +493,7 @@ private:
|
||||
bool _asleep = false;
|
||||
uint32_t _next_status_ms = 0;
|
||||
uint32_t _next_thread_check_ms = 0;
|
||||
uint32_t _next_thread_ages_ms = 0;
|
||||
uint32_t _next_trackback_ms = 0;
|
||||
uint32_t _next_clock_ms = 0;
|
||||
uint8_t _settings_page = 0; // settings::Page shown in SCR_SETTINGS_NAV
|
||||
|
||||
Reference in New Issue
Block a user