package com.hughes.android.dictionary.engine;
+import com.hughes.android.dictionary.CollatorWrapper;
import com.hughes.android.dictionary.DictionaryApplication;
-import java.text.Collator;
import java.util.Comparator;
-import java.util.LinkedHashMap;
+import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
}
}
- private static final Map<String, Language> registry = new LinkedHashMap<String, Language>();
+ private static final Map<String, Language> registry = new HashMap<String, Language>();
final String isoCode;
final Locale locale;
- private Collator collator;
+ private Comparator collator;
private Language(final Locale locale, final String isoCode) {
this.locale = locale;
return String.CASE_INSENSITIVE_ORDER;
// Don't think this is thread-safe...
// if (collator == null) {
- this.collator = Collator.getInstance(locale);
- this.collator.setStrength(Collator.IDENTICAL);
+ this.collator = CollatorWrapper.getInstanceStrengthIdentical(locale);
// }
return collator;
}
* simplified for performance and small code size.
*/
private static final String rtlChars =
- "\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC";
+ "\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC";
private static final String puncChars =
- "\\[\\]\\(\\)\\{\\}\\=";
+ "\\[\\]\\(\\)\\{\\}\\=";
private static final Pattern RTL_LEFT_BOUNDARY = Pattern.compile("([" + puncChars + "])(["
+ rtlChars + "])");