diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-10-31 14:16:37 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-10-31 14:16:37 +0000 |
| commit | 80143459c60ac6983fee57002223cdf63eddae2f (patch) | |
| tree | 6c81e7b2dfe149048f5414d5f1b57ed2cd4f15b6 /src/ui | |
| parent | 5e584c5c3f4059c0ee9c68c595efced28f4c0748 (diff) | |
store the source and target languages for the Android UI in a preference file
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/android/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/Translator.java | 35 |
2 files changed, 34 insertions, 2 deletions
diff --git a/src/ui/android/res/values/strings.xml b/src/ui/android/res/values/strings.xml index af659fcec..57e20027d 100644 --- a/src/ui/android/res/values/strings.xml +++ b/src/ui/android/res/values/strings.xml @@ -8,4 +8,5 @@ <string name="open_image">Opening</string> <string name="mic_input">Speech Input</string> <string name="keyboard_input">Keyboard Input</string> + <string name="global_preferences_key">org.grammaticalframework.ui.android.GLOBAL_PREFERENCES</string> </resources> 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 356bb89ce..c7c438e02 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java @@ -1,6 +1,7 @@ package org.grammaticalframework.ui.android; import android.content.Context; +import android.content.SharedPreferences; import android.util.Log; import org.grammaticalframework.pgf.Concr; @@ -38,10 +39,38 @@ public class Translator { private PGF mPGF; private Thread mGrammarLoader; + private static final String SOURCE_LANG_KEY = "source_lang"; + private static final String TARGET_LANG_KEY = "target_lang"; + + private SharedPreferences mSharedPref; + + private Language getPrefLang(String key, int def) { + int index = mSharedPref.getInt(key, def); + if (index < 0 || index >= mLanguages.length) + index = def; + return mLanguages[index]; + } + + private void setPrefLang(String key, Language def) { + for (int index = 0; index < mLanguages.length; index++) { + if (def == mLanguages[index]) { + SharedPreferences.Editor editor = mSharedPref.edit(); + editor.putInt(key, index); + editor.commit(); + break; + } + } + } public Translator(Context context) { mGrammarLoader = new GrammarLoader(context); mGrammarLoader.start(); + + mSharedPref = context.getSharedPreferences( + context.getString(R.string.global_preferences_key), Context.MODE_PRIVATE); + + mSourceLanguage = getPrefLang(SOURCE_LANG_KEY, 0); + mTargetLanguage = getPrefLang(TARGET_LANG_KEY, 1); } public List<Language> getAvailableSourceLanguages() { @@ -54,18 +83,20 @@ public class Translator { public void setSourceLanguage(Language language) { mSourceLanguage = language; + setPrefLang(SOURCE_LANG_KEY, language); } public void setTargetLanguage(Language language) { mTargetLanguage = language; + setPrefLang(TARGET_LANG_KEY, language); } public Language getSourceLanguage() { - return mSourceLanguage != null ? mSourceLanguage : mLanguages[0]; + return mSourceLanguage; } public Language getTargetLanguage() { - return mTargetLanguage != null ? mTargetLanguage : mLanguages[1]; + return mTargetLanguage; } private static String explode(String in) { |
