abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/Keyboard2.java
diff options
context:
space:
mode:
authorJules Aguillon2021-04-28 00:23:52 +0200
committerJules Aguillon2021-04-29 01:06:51 +0200
commitd00576ac2d7605c48034dc52e6622f48f680d4ae (patch)
tree4e52e2c1ff1785a2f762fd5de134dfe08a064802 /srcs/juloo.keyboard2/Keyboard2.java
parentc86a11944873534c140cd07b7c91d63c939b45b6 (diff)
downloadunexpected-keyboard-d00576ac2d7605c48034dc52e6622f48f680d4ae.tar.gz
unexpected-keyboard-d00576ac2d7605c48034dc52e6622f48f680d4ae.zip
Add the "layout" option again
Some versions of android don't allow to configure several languages.
Diffstat (limited to 'srcs/juloo.keyboard2/Keyboard2.java')
-rw-r--r--srcs/juloo.keyboard2/Keyboard2.java44
1 files changed, 20 insertions, 24 deletions
diff --git a/srcs/juloo.keyboard2/Keyboard2.java b/srcs/juloo.keyboard2/Keyboard2.java
index d0e58eb..7310053 100644
--- a/srcs/juloo.keyboard2/Keyboard2.java
+++ b/srcs/juloo.keyboard2/Keyboard2.java
@@ -33,19 +33,6 @@ public class Keyboard2 extends InputMethodService
private Map<Integer, KeyboardData> _layoutCache = new HashMap<Integer, KeyboardData>();
- private static final int DEFAULT_LAYOUT = R.xml.qwerty;
- private static final Map<String, Integer> LAYOUTS = new HashMap<String, Integer>();
-
- private static void add_layout(String lang, int resId)
- {
- LAYOUTS.put(new Locale(lang).getLanguage(), resId);
- }
-
- static
- {
- add_layout("fr", R.xml.azerty);
- }
-
private KeyboardData getLayout(int resId)
{
KeyboardData l = _layoutCache.get(resId);
@@ -81,10 +68,23 @@ public class Keyboard2 extends InputMethodService
private void refreshSubtype(InputMethodSubtype subtype)
{
- Integer l = LAYOUTS.get(subtype.getLanguageTag());
- if (l == null)
- l = DEFAULT_LAYOUT;
- _currentTextLayout = l;
+ int l;
+ if (_config.layout == -1)
+ l = Config.layoutId_of_string(subtype.getExtraValueOf("default_layout"));
+ else
+ l = _config.layout;
+ if (_currentTextLayout != l)
+ {
+ _currentTextLayout = l;
+ _keyboardView.setKeyboard(getLayout(l));
+ }
+ }
+
+ private void refreshSubtypeImm()
+ {
+ InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+ _config.shouldOfferSwitchingToNextInputMethod = imm.shouldOfferSwitchingToNextInputMethod(getConnectionToken());
+ refreshSubtype(imm.getCurrentInputMethodSubtype());
}
@Override
@@ -100,27 +100,23 @@ public class Keyboard2 extends InputMethodService
@Override
public void onStartInputView(EditorInfo info, boolean restarting)
{
- InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
- _config.shouldOfferSwitchingToNextInputMethod = imm.shouldOfferSwitchingToNextInputMethod(getConnectionToken());
- refreshSubtype(imm.getCurrentInputMethodSubtype());
+ refreshSubtypeImm();
if ((info.inputType & InputType.TYPE_CLASS_NUMBER) != 0)
_keyboardView.setKeyboard(getLayout(R.xml.numeric));
- else
- _keyboardView.setKeyboard(getLayout(_currentTextLayout));
}
@Override
public void onCurrentInputMethodSubtypeChanged(InputMethodSubtype subtype)
{
refreshSubtype(subtype);
- _keyboardView.setKeyboard(getLayout(_currentTextLayout));
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
_config.refresh();
- _keyboardView.refreshConfig(_config);
+ refreshSubtypeImm();
+ _keyboardView.refreshConfig(_config, getLayout(_currentTextLayout));
}
@Override