v1.1.0: UI polish, LXMF messaging fixes, keyboard cleanup

- Remove boot display test (color bars + 1.5s delay)
- Show identity hashes on NodesScreen (colon-formatted, matching own identity display)
- Show node names in MessagesScreen and MessageView instead of raw hex
- Add message status indicators in chat (*/!/~ for sent/failed/queued)
- Fix LXMF send: retry Identity::recall() up to 5 times before failing
- Add LXMF logging throughout send/receive/queue drain
- Remove Alt+IJML arrow key mapping (obsolete with trackball)
- Filter own node from discovered nodes list
- Update troubleshooting docs with SetModulationParams STDBY fix
This commit is contained in:
DeFiDude
2026-03-06 13:34:15 -07:00
parent 1255f0db51
commit 80d4cd45f6
14 changed files with 117 additions and 41 deletions
+6 -3
View File
@@ -407,6 +407,7 @@ void setup() {
bootRender();
announceManager = new AnnounceManager();
announceManager->setStorage(&sdStore, &flash);
announceManager->setLocalDestHash(rns.destination().hash());
announceManager->loadContacts();
announceHandler = RNS::HAnnounceHandler(announceManager);
RNS::Transport::register_announce_handler(announceHandler);
@@ -545,12 +546,14 @@ void setup() {
});
messagesScreen.setLXMFManager(&lxmf);
messagesScreen.setAnnounceManager(announceManager);
messagesScreen.setOpenCallback([](const std::string& peerHex) {
messageView.setPeerHex(peerHex);
ui.setScreen(&messageView);
});
messageView.setLXMFManager(&lxmf);
messageView.setAnnounceManager(announceManager);
messageView.setBackCallback([]() {
ui.setScreen(&messagesScreen);
});
@@ -632,14 +635,14 @@ void loop() {
// Screen gets the key next
bool consumed = ui.handleKey(evt);
// Tab cycling: ,=left /=right or Alt+J/L arrows (only if screen didn't consume)
// Tab cycling: ,=left /=right (only if screen didn't consume)
if (!consumed && !evt.ctrl) {
if (evt.left || evt.character == ',') {
if (evt.character == ',') {
ui.tabBar().cycleTab(-1);
int tab = ui.tabBar().getActiveTab();
if (tabScreens[tab]) ui.setScreen(tabScreens[tab]);
}
if (evt.right || evt.character == '/') {
if (evt.character == '/') {
ui.tabBar().cycleTab(1);
int tab = ui.tabBar().getActiveTab();
if (tabScreens[tab]) ui.setScreen(tabScreens[tab]);