summaryrefslogtreecommitdiff
path: root/src/ui/android
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-10-31 14:16:37 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-10-31 14:16:37 +0000
commit80143459c60ac6983fee57002223cdf63eddae2f (patch)
tree6c81e7b2dfe149048f5414d5f1b57ed2cd4f15b6 /src/ui/android
parent5e584c5c3f4059c0ee9c68c595efced28f4c0748 (diff)
store the source and target languages for the Android UI in a preference file
Diffstat (limited to 'src/ui/android')
-rw-r--r--src/ui/android/res/values/strings.xml1
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/Translator.java35
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) {