]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/Language.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / Language.java
index 440a7d011be20d2032930d4d02b2b5f7ac66d478..d8fa3606e71eec80c52418353e78de6338c23d58 100755 (executable)
@@ -12,31 +12,25 @@ public class Language {
   final String symbol;\r
   final Locale locale;\r
 \r
-  final Collator sortCollator;\r
+  private Collator sortCollator;\r
   final Comparator<String> sortComparator;\r
 \r
-  final Collator findCollator;\r
+  private Collator findCollator;\r
   final Comparator<String> findComparator;\r
 \r
   public Language(final String symbol, final Locale locale) {\r
     this.symbol = symbol;\r
     this.locale = locale;\r
 \r
-    this.sortCollator = Collator.getInstance(locale);\r
-    this.sortCollator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);\r
-    this.sortCollator.setStrength(Collator.IDENTICAL);\r
     this.sortComparator = new Comparator<String>() {\r
       public int compare(final String s1, final String s2) {\r
-        return sortCollator.compare(textNorm(s1), textNorm(s2));\r
+        return getSortCollator().compare(textNorm(s1), textNorm(s2));\r
       }\r
     };\r
 \r
-    this.findCollator = Collator.getInstance(locale);\r
-    this.findCollator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);\r
-    this.findCollator.setStrength(Collator.SECONDARY);\r
     this.findComparator = new Comparator<String>() {\r
       public int compare(final String s1, final String s2) {\r
-        return findCollator.compare(textNorm(s1), textNorm(s2));\r
+        return getFindCollator().compare(textNorm(s1), textNorm(s2));\r
       }\r
     };\r
 \r
@@ -50,6 +44,24 @@ public class Language {
   public String toString() {\r
     return symbol;\r
   }\r
+  \r
+  synchronized Collator getFindCollator() {\r
+    if (findCollator == null) {\r
+      findCollator = Collator.getInstance(locale);\r
+      findCollator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);\r
+      findCollator.setStrength(Collator.SECONDARY);\r
+    }\r
+    return findCollator;\r
+  }\r
+\r
+  synchronized Collator getSortCollator() {\r
+    if (sortCollator == null) {\r
+      sortCollator = Collator.getInstance(locale);\r
+      sortCollator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);\r
+      sortCollator.setStrength(Collator.IDENTICAL);\r
+    }\r
+    return sortCollator;\r
+  }\r
 \r
   // ----------------------------------------------------------------\r
 \r