contacts: granular autoadd and overwrite-oldest

This commit is contained in:
taco 2026-01-13 00:38:20 +11:00
parent 56eb5b0499
commit 403ce1db08
6 changed files with 134 additions and 17 deletions

View file

@ -89,9 +89,14 @@ protected:
}
void resetContacts() { num_contacts = 0; }
ContactInfo* allocateContactSlot(); // helper to find slot for new contact
// 'UI' concepts, for sub-classes to implement
virtual bool isAutoAddEnabled() const { return true; }
virtual bool shouldAutoAddContactType(uint8_t type) const { return true; }
virtual void onContactsFull() {};
virtual bool shouldOverwriteWhenFull() const { return false; }
virtual void onContactOverwrite(const uint8_t* pub_key) {};
virtual void onDiscoveredContact(ContactInfo& contact, bool is_new, uint8_t path_len, const uint8_t* path) = 0;
virtual ContactInfo* processAck(const uint8_t *data) = 0;
virtual void onContactPathUpdated(const ContactInfo& contact) = 0;