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
+12
View File
@@ -55,11 +55,17 @@ void AnnounceManager::received_announce(
if (rawName.empty()) rawName = app_data.toString();
name = sanitizeName(rawName);
}
// Filter out own announces
if (_localDestHash.size() > 0 && destination_hash == _localDestHash) return;
Serial.printf("[ANNOUNCE] From: %s name=\"%s\"\n", destination_hash.toHex().c_str(), name.c_str());
std::string idHex = announced_identity.hexhash();
for (auto& node : _nodes) {
if (node.hash == destination_hash) {
if (!name.empty()) node.name = name;
if (!idHex.empty()) node.identityHex = idHex;
node.lastSeen = millis();
node.hops = RNS::Transport::hops_to(destination_hash);
if (node.saved) saveContact(node);
@@ -86,6 +92,7 @@ void AnnounceManager::received_announce(
DiscoveredNode node;
node.hash = destination_hash;
node.name = name.empty() ? destination_hash.toHex().substr(0, 12) : name;
node.identityHex = idHex;
node.lastSeen = millis();
node.hops = RNS::Transport::hops_to(destination_hash);
_nodes.push_back(node);
@@ -96,6 +103,11 @@ const DiscoveredNode* AnnounceManager::findNode(const RNS::Bytes& hash) const {
return nullptr;
}
const DiscoveredNode* AnnounceManager::findNodeByHex(const std::string& hexHash) const {
for (const auto& n : _nodes) { if (n.hash.toHex() == hexHash) return &n; }
return nullptr;
}
void AnnounceManager::addManualContact(const std::string& hexHash, const std::string& name) {
RNS::Bytes hash;
hash.assignHex(hexHash.c_str());