Refactor contact search functionality to use DiscoveryContact model and simplify query matching

This commit is contained in:
Winston Lowe
2026-02-28 19:14:22 -08:00
parent 75610695c2
commit 92d8e7cd0b
2 changed files with 18 additions and 27 deletions
+16
View File
@@ -1,3 +1,5 @@
import 'package:meshcore_open/models/discovery_contact.dart';
import '../models/contact.dart';
bool matchesContactQuery(Contact contact, String query) {
@@ -14,6 +16,20 @@ bool matchesContactQuery(Contact contact, String query) {
return contact.publicKeyHex.toLowerCase().startsWith(hexPrefix);
}
bool matchesDiscoveryContactQuery(DiscoveryContact contact, String query) {
final normalizedQuery = query.trim().toLowerCase();
if (normalizedQuery.isEmpty) return true;
if (contact.name.toLowerCase().contains(normalizedQuery)) {
return true;
}
final hexPrefix = _extractHexPrefix(normalizedQuery);
if (hexPrefix == null) return false;
return contact.publicKeyHex.toLowerCase().startsWith(hexPrefix);
}
String? _extractHexPrefix(String query) {
var cleaned = query;
if (cleaned.startsWith('0x')) {