From df3c2ea1471c0f911ba1048b2470d753d49b51b2 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 29 Sep 2022 14:34:17 +0200 Subject: [PATCH] Remove diacrits from index/query --- .../email/BoundaryCallbackMessages.java | 28 ++++++++++++------- .../java/eu/faircode/email/Fts4DbHelper.java | 11 ++++++-- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java index f218258124..74b9519859 100644 --- a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java +++ b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java @@ -345,23 +345,21 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback 0) sb.append(' '); sb.append(word); @@ -179,12 +182,16 @@ public class Fts4DbHelper extends SQLiteOpenHelper { Long account, Long folder, long[] exclude, BoundaryCallbackMessages.SearchCriteria criteria) { + String query = criteria.query.trim(); + query = Normalizer.normalize(query, Normalizer.Form.NFKD) + .replaceAll("[\\p{InCombiningDiacriticalMarks}]", ""); + List word = new ArrayList<>(); List plus = new ArrayList<>(); List minus = new ArrayList<>(); List opt = new ArrayList<>(); StringBuilder all = new StringBuilder(); - for (String w : criteria.query.trim().split("\\s+")) { + for (String w : query.split("\\s+")) { if (all.length() > 0) all.append(' ');