diff --git a/src/java/KP2ASoftKeyboard2/java/AndroidManifest.xml b/src/java/KP2ASoftKeyboard2/java/AndroidManifest.xml
index 242fcb53..82e77891 100644
--- a/src/java/KP2ASoftKeyboard2/java/AndroidManifest.xml
+++ b/src/java/KP2ASoftKeyboard2/java/AndroidManifest.xml
@@ -2,7 +2,7 @@
package="keepass2android.softkeyboard">
-
+
diff --git a/src/java/KP2ASoftKeyboard2/java/src/keepass2android/kbbridge/ImeSwitcher.java b/src/java/KP2ASoftKeyboard2/java/src/keepass2android/kbbridge/ImeSwitcher.java
index 8415759c..4232e424 100644
--- a/src/java/KP2ASoftKeyboard2/java/src/keepass2android/kbbridge/ImeSwitcher.java
+++ b/src/java/KP2ASoftKeyboard2/java/src/keepass2android/kbbridge/ImeSwitcher.java
@@ -11,6 +11,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.inputmethodservice.InputMethodService;
import android.os.Bundle;
+import android.os.IBinder;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.inputmethod.InputMethod;
@@ -23,10 +24,20 @@ public class ImeSwitcher {
private static final String KP2A_SWITCHER = "KP2A_Switcher";
private static final String Tag = "KP2A_SWITCHER";
- public static void switchToPreviousKeyboard(Context ctx, boolean silent)
+ public static void switchToPreviousKeyboard(InputMethodService ims, boolean silent)
{
- SharedPreferences prefs = ctx.getSharedPreferences(KP2A_SWITCHER, Context.MODE_PRIVATE);
- switchToKeyboard(ctx, prefs.getString(PREVIOUS_KEYBOARD, null), silent);
+ try {
+ InputMethodManager imm = (InputMethodManager) ims.getSystemService(Context.INPUT_METHOD_SERVICE);
+ final IBinder token = ims.getWindow().getWindow().getAttributes().token;
+ //imm.setInputMethod(token, LATIN);
+ imm.switchToLastInputMethod(token);
+ } catch (Throwable t) { // java.lang.NoSuchMethodError if API_level<11
+ Log.e("KP2A","cannot set the previous input method:");
+ t.printStackTrace();
+ SharedPreferences prefs = ims.getSharedPreferences(KP2A_SWITCHER, Context.MODE_PRIVATE);
+ switchToKeyboard(ims, prefs.getString(PREVIOUS_KEYBOARD, null), silent);
+ }
+
}
//silent: if true, do not show picker, only switch in background. Don't do anything if switching fails.
diff --git a/src/keepass2android/Resources/xml/preferences.xml b/src/keepass2android/Resources/xml/preferences.xml
index e24f839f..efe38dc4 100644
--- a/src/keepass2android/Resources/xml/preferences.xml
+++ b/src/keepass2android/Resources/xml/preferences.xml
@@ -256,7 +256,9 @@
android:title="@string/OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_title"
android:key="@string/OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_key" />
-
+
-