diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 91c634b8..0a763641 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -360,9 +360,11 @@ void MyMesh::onContactsFull() { } } -void MyMesh::onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path_len, const uint8_t* path, bool was_flood) { +void MyMesh::onDiscoveredAdvert(bool was_flood) { if (_ui) _ui->notify(was_flood ? UIEventType::advertReceivedFlood : UIEventType::advertReceivedZeroHop); +} +void MyMesh::onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path_len, const uint8_t* path) { if (_serial->isConnected()) { if (is_new) { writeContactRespFrame(PUSH_CODE_NEW_ADVERT, contact); diff --git a/examples/companion_radio/MyMesh.h b/examples/companion_radio/MyMesh.h index 912a402d..81806601 100644 --- a/examples/companion_radio/MyMesh.h +++ b/examples/companion_radio/MyMesh.h @@ -165,7 +165,8 @@ protected: void onContactsFull() override; void onContactOverwrite(const uint8_t* pub_key) override; bool onContactPathRecv(ContactInfo& from, uint8_t* in_path, uint8_t in_path_len, uint8_t* out_path, uint8_t out_path_len, uint8_t extra_type, uint8_t* extra, uint8_t extra_len) override; - void onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path_len, const uint8_t* path, bool was_flood) override; + void onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path_len, const uint8_t* path) override; + void onDiscoveredAdvert(bool was_flood) override; void onContactPathUpdated(const ContactInfo &contact) override; ContactInfo* processAck(const uint8_t *data) override; void queueMessage(const ContactInfo &from, uint8_t txt_type, mesh::Packet *pkt, uint32_t sender_timestamp, diff --git a/examples/simple_secure_chat/main.cpp b/examples/simple_secure_chat/main.cpp index 954ddc6e..07f9cd27 100644 --- a/examples/simple_secure_chat/main.cpp +++ b/examples/simple_secure_chat/main.cpp @@ -202,11 +202,10 @@ protected: return true; } - void onDiscoveredContact(ContactInfo& contact, bool is_new, uint8_t path_len, const uint8_t* path, bool was_flood) override { + void onDiscoveredContact(ContactInfo& contact, bool is_new, uint8_t path_len, const uint8_t* path) override { (void)is_new; (void)path_len; (void)path; - (void)was_flood; // TODO: if not in favs, prompt to add as fav(?) Serial.printf("ADVERT from -> %s\n", contact.name); diff --git a/src/helpers/BaseChatMesh.cpp b/src/helpers/BaseChatMesh.cpp index 12d30b4b..acb7d704 100644 --- a/src/helpers/BaseChatMesh.cpp +++ b/src/helpers/BaseChatMesh.cpp @@ -144,7 +144,8 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id, if (!shouldAutoAddContactType(parser.getType())) { ContactInfo ci; populateContactFromAdvert(ci, id, parser, timestamp); - onDiscoveredContact(ci, true, packet->path_len, packet->path, packet->isRouteFlood()); // let UI know + onDiscoveredContact(ci, true, packet->path_len, packet->path); // let UI know + onDiscoveredAdvert(packet->isRouteFlood()); return; } @@ -153,7 +154,8 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id, if (max_hops > 0 && packet->getPathHashCount() >= max_hops) { ContactInfo ci; populateContactFromAdvert(ci, id, parser, timestamp); - onDiscoveredContact(ci, true, packet->path_len, packet->path, packet->isRouteFlood()); // let UI know + onDiscoveredContact(ci, true, packet->path_len, packet->path); // let UI know + onDiscoveredAdvert(packet->isRouteFlood()); return; } @@ -161,7 +163,8 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id, if (from == NULL) { ContactInfo ci; populateContactFromAdvert(ci, id, parser, timestamp); - onDiscoveredContact(ci, true, packet->path_len, packet->path, packet->isRouteFlood()); + onDiscoveredContact(ci, true, packet->path_len, packet->path); + onDiscoveredAdvert(packet->isRouteFlood()); onContactsFull(); MESH_DEBUG_PRINTLN("onAdvertRecv: unable to allocate contact slot for new contact"); return; @@ -183,7 +186,8 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id, from->last_advert_timestamp = timestamp; from->lastmod = getRTCClock()->getCurrentTime(); - onDiscoveredContact(*from, is_new, packet->path_len, packet->path, packet->isRouteFlood()); // let UI know + onDiscoveredContact(*from, is_new, packet->path_len, packet->path); // let UI know + onDiscoveredAdvert(packet->isRouteFlood()); } int BaseChatMesh::searchPeersByHash(const uint8_t* hash) { diff --git a/src/helpers/BaseChatMesh.h b/src/helpers/BaseChatMesh.h index 4087b1ca..99b38372 100644 --- a/src/helpers/BaseChatMesh.h +++ b/src/helpers/BaseChatMesh.h @@ -102,7 +102,8 @@ protected: virtual bool shouldOverwriteWhenFull() const { return false; } virtual uint8_t getAutoAddMaxHops() const { return 0; } // 0 = no limit, 1 = direct (0 hops), N = up to N-1 hops virtual void onContactOverwrite(const uint8_t* pub_key) {}; - virtual void onDiscoveredContact(ContactInfo& contact, bool is_new, uint8_t path_len, const uint8_t* path, bool was_flood) = 0; + virtual void onDiscoveredContact(ContactInfo& contact, bool is_new, uint8_t path_len, const uint8_t* path) = 0; + virtual void onDiscoveredAdvert(bool was_flood) {} virtual ContactInfo* processAck(const uint8_t *data) = 0; virtual void onContactPathUpdated(const ContactInfo& contact) = 0; virtual bool onContactPathRecv(ContactInfo& from, uint8_t* in_path, uint8_t in_path_len, uint8_t* out_path, uint8_t out_path_len, uint8_t extra_type, uint8_t* extra, uint8_t extra_len);