Browse Source

Merge pull request #1408 from oltaco/improved-contact-mgmt

Contact management tweaks
pull/1362/head
ripplebiz 5 months ago
committed by GitHub
parent
commit
bf0777845a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      examples/companion_radio/MyMesh.cpp
  2. 3
      src/helpers/BaseChatMesh.cpp

4
examples/companion_radio/MyMesh.cpp

@ -323,7 +323,7 @@ void MyMesh::onContactsFull() {
void MyMesh::onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path_len, const uint8_t* path) {
if (_serial->isConnected()) {
if (!shouldAutoAddContactType(contact.type) && is_new) {
if (is_new) {
writeContactRespFrame(PUSH_CODE_NEW_ADVERT, contact);
} else {
out_frame[0] = PUSH_CODE_ADVERT;
@ -358,7 +358,7 @@ void MyMesh::onDiscoveredContact(ContactInfo &contact, bool is_new, uint8_t path
memcpy(p->path, path, p->path_len);
}
dirty_contacts_expiry = futureMillis(LAZY_CONTACTS_WRITE_DELAY);
if (!is_new) dirty_contacts_expiry = futureMillis(LAZY_CONTACTS_WRITE_DELAY); // only schedule lazy write for contacts that are in contacts[]
}
static int sort_by_recent(const void *a, const void *b) {

3
src/helpers/BaseChatMesh.cpp

@ -133,7 +133,7 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id,
}
putBlobByKey(id.pub_key, PUB_KEY_SIZE, temp_buf, plen);
bool is_new = false;
bool is_new = false; // true = not in contacts[], false = exists in contacts[]
if (from == NULL) {
if (!shouldAutoAddContactType(parser.getType())) {
ContactInfo ci;
@ -142,7 +142,6 @@ void BaseChatMesh::onAdvertRecv(mesh::Packet* packet, const mesh::Identity& id,
return;
}
is_new = true;
from = allocateContactSlot();
if (from == NULL) {
ContactInfo ci;

Loading…
Cancel
Save