mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-02 10:51:57 +00:00
perf(l2): long lists build only the rows on screen
New message, Nodes (and its Scan popup), Admin and Messages show their items through one virtual list: a screenful of rows, handed to the next item as one scrolls out, the scroll extent from the items' heights. 256 contacts: 522 objects and ~950 ms of filling in (frames up to 96 ms) before, 19 objects at once now; a scrolled frame 28.5 -> 11.7 ms. Nodes 257 -> 49 objects. A new message rewrites Messages' rows in place (46 -> 20 ms) instead of building the screen again; it's rebuilt only when "Read all" comes or goes. A held row keeps what it shows until let go. Perf tools: -D PERF_LISTS, -D PERF_LIST_MUL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -240,7 +240,7 @@ void UITask::unlockScreen() {
|
||||
s_lock = s_lock_clock = s_lock_date = s_lock_unread = s_lock_slider = s_pin_dots = s_pin_msg = nullptr;
|
||||
_pin_entry[0] = '\0';
|
||||
if (_screen == SCR_HOME) refreshHome();
|
||||
else if (_screen == SCR_CHATS) buildChats(); // counts moved on while locked
|
||||
else if (_screen == SCR_CHATS) refreshChats(); // counts moved on while locked
|
||||
}
|
||||
|
||||
bool UITask::locked() const { return devview::s_lock != nullptr; }
|
||||
|
||||
Reference in New Issue
Block a user