mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
store the source and target languages for the Android UI in a preference file
This commit is contained in:
@@ -8,4 +8,5 @@
|
|||||||
<string name="open_image">Opening</string>
|
<string name="open_image">Opening</string>
|
||||||
<string name="mic_input">Speech Input</string>
|
<string name="mic_input">Speech Input</string>
|
||||||
<string name="keyboard_input">Keyboard Input</string>
|
<string name="keyboard_input">Keyboard Input</string>
|
||||||
|
<string name="global_preferences_key">org.grammaticalframework.ui.android.GLOBAL_PREFERENCES</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.grammaticalframework.ui.android;
|
package org.grammaticalframework.ui.android;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.grammaticalframework.pgf.Concr;
|
import org.grammaticalframework.pgf.Concr;
|
||||||
@@ -38,10 +39,38 @@ public class Translator {
|
|||||||
private PGF mPGF;
|
private PGF mPGF;
|
||||||
private Thread mGrammarLoader;
|
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) {
|
public Translator(Context context) {
|
||||||
mGrammarLoader = new GrammarLoader(context);
|
mGrammarLoader = new GrammarLoader(context);
|
||||||
mGrammarLoader.start();
|
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() {
|
public List<Language> getAvailableSourceLanguages() {
|
||||||
@@ -54,18 +83,20 @@ public class Translator {
|
|||||||
|
|
||||||
public void setSourceLanguage(Language language) {
|
public void setSourceLanguage(Language language) {
|
||||||
mSourceLanguage = language;
|
mSourceLanguage = language;
|
||||||
|
setPrefLang(SOURCE_LANG_KEY, language);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTargetLanguage(Language language) {
|
public void setTargetLanguage(Language language) {
|
||||||
mTargetLanguage = language;
|
mTargetLanguage = language;
|
||||||
|
setPrefLang(TARGET_LANG_KEY, language);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Language getSourceLanguage() {
|
public Language getSourceLanguage() {
|
||||||
return mSourceLanguage != null ? mSourceLanguage : mLanguages[0];
|
return mSourceLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Language getTargetLanguage() {
|
public Language getTargetLanguage() {
|
||||||
return mTargetLanguage != null ? mTargetLanguage : mLanguages[1];
|
return mTargetLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String explode(String in) {
|
private static String explode(String in) {
|
||||||
|
|||||||
Reference in New Issue
Block a user