From 7a5813ebb3e2d82c871e15066a97fffd79df0553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kosson?= Date: Thu, 12 Jun 2025 23:20:26 +0200 Subject: [PATCH] feat: filter node list by user id or node number (#2078) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../main/java/com/geeksville/mesh/database/dao/NodeInfoDao.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/database/dao/NodeInfoDao.kt b/app/src/main/java/com/geeksville/mesh/database/dao/NodeInfoDao.kt index 518428983..c4239af02 100644 --- a/app/src/main/java/com/geeksville/mesh/database/dao/NodeInfoDao.kt +++ b/app/src/main/java/com/geeksville/mesh/database/dao/NodeInfoDao.kt @@ -69,7 +69,9 @@ interface NodeInfoDao { WHERE (:includeUnknown = 1 OR short_name IS NOT NULL) AND (:filter = '' OR (long_name LIKE '%' || :filter || '%' - OR short_name LIKE '%' || :filter || '%')) + OR short_name LIKE '%' || :filter || '%' + OR printf('!%08x', CASE WHEN num < 0 THEN num + 4294967296 ELSE num END) LIKE '%' || :filter || '%' + OR CAST(CASE WHEN num < 0 THEN num + 4294967296 ELSE num END AS TEXT) LIKE '%' || :filter || '%')) AND (:lastHeardMin = -1 OR last_heard >= :lastHeardMin) AND (:hopsAwayMax = -1 OR (hops_away <= :hopsAwayMax AND hops_away >= 0) OR num = (SELECT myNodeNum FROM my_node LIMIT 1)) ORDER BY CASE