]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/engine/NormalizeComparator.java
Attempt to fix issue #49.
[Dictionary.git] / src / com / hughes / android / dictionary / engine / NormalizeComparator.java
index c0fef4f282431a52d7280040c5cb4f9edb27d6d8..75a477d9934f17aabb7e340f2f99baf39a4044a3 100644 (file)
@@ -22,18 +22,32 @@ public class NormalizeComparator implements Comparator<String> {
 
     final Transliterator normalizer;
     final Comparator<Object> comparator;
+    int version;
 
     public NormalizeComparator(final Transliterator normalizer,
-            final Comparator<Object> comparator) {
+            final Comparator<Object> comparator, int version) {
         this.normalizer = normalizer;
         this.comparator = comparator;
+       this.version = 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;
+        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);
-        final int cn = comparator.compare(n1, n2);
+        int cn = compareWithoutDash(n1, n2, comparator, version);
+        if (cn != 0) {
+            return cn;
+        }
+        cn = comparator.compare(n1, n2);
         if (cn != 0) {
             return cn;
         }