diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-10-07 11:50:58 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-10-07 11:50:58 +0000 |
| commit | 7261134ad8a2af8a1caa1fc4f303e63a5658aa23 (patch) | |
| tree | e04d2259fca798126bb8ebfec430b3aea57ffaee | |
| parent | 5041984e2df1b480bbf81eb135874be95d51838b (diff) | |
ensure that the grammar is loaded only once even if the main activity is recreated
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/MainActivity.java | 15 | ||||
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/Translator.java | 8 |
2 files changed, 10 insertions, 13 deletions
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/MainActivity.java b/src/ui/android/src/org/grammaticalframework/ui/android/MainActivity.java index fba9987d6..1e5f8c06e 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/MainActivity.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/MainActivity.java @@ -34,7 +34,9 @@ public class MainActivity extends Activity { private TTS mTts; - private Translator mTranslator; + // mTranslator is static to ensure that the grammar + // is loaded only once even if the activity has been recreated. + private static Translator mTranslator; @Override protected void onCreate(Bundle savedInstanceState) { @@ -65,14 +67,9 @@ public class MainActivity extends Activity { mTts = new TTS(this); - mTranslator = new Translator(this); - new AsyncTask<Void,Void,Void>() { - @Override - protected Void doInBackground(Void... params) { - mTranslator.init(); - return null; - } - }.execute(); + if (mTranslator == null) { + mTranslator = new Translator(this); + } mSourceLanguageView.setLanguages(mTranslator.getAvailableSourceLanguages()); mSourceLanguageView.setSelectedLanguage(mTranslator.getSourceLanguage()); diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java index 1d6e081e8..1bf5eb1a3 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java @@ -71,10 +71,10 @@ public class Translator { */ public String translate(String input) { try { - Concr sourceGrammar = getConcr(getSourceLanguage().getConcrete()); - Expr expr = sourceGrammar.parseBest("S", input); - Concr targetGrammar = getConcr(getTargetLanguage().getConcrete()); - String output = targetGrammar.linearize(expr); + Concr sourceLang = getConcr(getSourceLanguage().getConcrete()); + Expr expr = sourceLang.parseBest(getGrammar().getStartCat(), input); + Concr targetLang = getConcr(getTargetLanguage().getConcrete()); + String output = targetLang.linearize(expr); return output; } catch (ParseError e) { Log.e(TAG, "Parse error: " + e); |
