1 package com.hughes.android.dictionary.engine;
3 import java.util.ArrayList;
6 import android.util.Log;
8 import com.ibm.icu.text.Transliterator;
10 public class TransliteratorManager {
12 private static boolean starting = false;
13 private static boolean ready = false;
15 private static List<Callback> callbacks = new ArrayList<TransliteratorManager.Callback>();
17 public static synchronized boolean init(final Callback callback) {
21 if (callback != null) {
22 callbacks.add(callback);
26 new Thread(init).start();
31 private static final Runnable init = new Runnable() {
34 System.out.println("Starting Transliterator load.");
35 final String transliterated =
36 Transliterator.createFromRules("", ":: Any-Latin; :: Lower; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC ;",
37 Transliterator.FORWARD).transliterate("Îñţérñåţîöñåļîžåţîờñ");
38 if (!"internationalization".equals(transliterated)) {
39 System.out.println("Wrong transliteratation: " + transliterated);
42 final List<Callback> callbacks = new ArrayList<TransliteratorManager.Callback>();
43 synchronized (TransliteratorManager.class) {
44 callbacks.addAll(TransliteratorManager.callbacks);
47 for (final Callback callback : callbacks) {
48 callback.onTransliteratorReady();
54 public interface Callback {
55 void onTransliteratorReady();