From 3eb790668c12d8c9d87cbf5f54420b5798d3dd8e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Wed, 26 Oct 2016 09:52:40 +0200 Subject: [PATCH] Attempt to fix issue #49. Sorting/comparison of words containing a dash is still causing issues. --- AndroidManifest.xml | 4 ++-- build.gradle | 2 +- .../android/dictionary/engine/Index.java | 2 +- .../dictionary/engine/NormalizeComparator.java | 18 ++++++------------ 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index a1bc6b2..47de4b1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="71" + android:versionName="5.2.11" > { } final IndexEntry midEntry = sortedIndexEntries.get(mid); - int comp = NormalizeComparator.compareWithoutLeadingDash(token, midEntry.normalizedToken(), sortCollator, dict.dictFileVersion); + int comp = NormalizeComparator.compareWithoutDash(token, midEntry.normalizedToken(), sortCollator, dict.dictFileVersion); if (comp == 0) comp = sortCollator.compare(token, midEntry.normalizedToken()); if (comp == 0) { diff --git a/src/com/hughes/android/dictionary/engine/NormalizeComparator.java b/src/com/hughes/android/dictionary/engine/NormalizeComparator.java index 82f0fea..75a477d 100644 --- a/src/com/hughes/android/dictionary/engine/NormalizeComparator.java +++ b/src/com/hughes/android/dictionary/engine/NormalizeComparator.java @@ -31,25 +31,19 @@ public class NormalizeComparator implements Comparator { this.version = version; } - // Handles comparison between items starting with "-", returns 0 for all others. - public static int compareWithoutLeadingDash(final String a, final String b, final Comparator c, int version) { + // Handles comparison between items containing "-". + public static int compareWithoutDash(final String a, final String b, final Comparator c, int version) { if (version < 7) return 0; - if (a.startsWith("-") || b.startsWith("-")) - { - String s1 = a; - String s2 = b; - if (s1.startsWith("-")) s1 = s1.substring(1); - if (s2.startsWith("-")) s2 = s2.substring(1); - return c.compare(s1, s2); - } - return 0; + String s1 = a.replace("-", ""); + String s2 = b.replace("-", ""); + return c.compare(s1, s2); } @Override public int compare(final String s1, final String s2) { final String n1 = normalizer.transform(s1); final String n2 = normalizer.transform(s2); - int cn = compareWithoutLeadingDash(n1, n2, comparator, version); + int cn = compareWithoutDash(n1, n2, comparator, version); if (cn != 0) { return cn; } -- 2.43.0