Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| index 3d81e1e3e632a5b4a844ba3ded21203046baccb1..19f717282dc7e6c66a1a10b34c949c18a3697a39 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| @@ -89,7 +89,8 @@ public class ImeAdapter { |
| @Override |
| public void run() { |
| if (mNativeImeAdapter != 0) { |
| - attach(mNativeImeAdapter, TextInputType.NONE, sTextInputFlagNone); |
| + attach(mNativeImeAdapter, TextInputType.NONE, sTextInputModeDefault, |
| + sTextInputFlagNone); |
| } |
| dismissInput(true); |
| } |
| @@ -116,6 +117,10 @@ public class ImeAdapter { |
| static int sTextInputFlagAutocorrectOff; |
| static int sTextInputFlagSpellcheckOn; |
| static int sTextInputFlagSpellcheckOff; |
| + static int sTextInputModeDefault = 0; |
| + static int sTextInputModeVerbatim; |
| + static int sTextInputModeLatinName; |
| + static int sTextInputModeLatinProse; |
|
no sievers
2015/02/27 20:06:10
We have a script now to autogenerate enum java cla
|
| static int sModifierShift; |
| static int sModifierAlt; |
| static int sModifierCtrl; |
| @@ -131,6 +136,7 @@ public class ImeAdapter { |
| private final Handler mHandler; |
| private DelayedDismissInput mDismissInput = null; |
| private int mTextInputType; |
| + private int mTextInputMode; |
| private int mTextInputFlags; |
| private String mLastComposeText; |
| @@ -199,6 +205,14 @@ public class ImeAdapter { |
| /** |
| * Should be used only by AdapterInputConnection. |
| + * @return The input mode of currently focused element. |
| + */ |
| + int getTextInputMode() { |
| + return mTextInputMode; |
| + } |
| + |
| + /** |
| + * Should be used only by AdapterInputConnection. |
| * @return The input flags of the currently focused element. |
| */ |
| int getTextInputFlags() { |
| @@ -229,10 +243,12 @@ public class ImeAdapter { |
| * Shows or hides the keyboard based on passed parameters. |
| * @param nativeImeAdapter Pointer to the ImeAdapterAndroid object that is sending the update. |
| * @param textInputType Text input type for the currently focused field in renderer. |
| + * @param textInputMode Text input mode for the currently focused field in renderer. |
| + * @param textInputFlags Text input flags for the currently focused field in renderer. |
| * @param showIfNeeded Whether the keyboard should be shown if it is currently hidden. |
| */ |
| public void updateKeyboardVisibility(long nativeImeAdapter, int textInputType, |
| - int textInputFlags, boolean showIfNeeded) { |
| + int textInputMode, int textInputFlags, boolean showIfNeeded) { |
| mHandler.removeCallbacks(mDismissInput); |
| // If current input type is none and showIfNeeded is false, IME should not be shown |
| @@ -241,7 +257,8 @@ public class ImeAdapter { |
| return; |
| } |
| - if (mNativeImeAdapterAndroid != nativeImeAdapter || mTextInputType != textInputType) { |
| + if (mNativeImeAdapterAndroid != nativeImeAdapter || mTextInputType != textInputType |
| + || mTextInputMode != textInputMode) { |
| // Set a delayed task to perform unfocus. This avoids hiding the keyboard when tabbing |
| // through text inputs or when JS rapidly changes focus to another text element. |
| if (textInputType == TextInputType.NONE) { |
| @@ -250,7 +267,7 @@ public class ImeAdapter { |
| return; |
| } |
| - attach(nativeImeAdapter, textInputType, textInputFlags); |
| + attach(nativeImeAdapter, textInputType, textInputMode, textInputFlags); |
| mInputMethodManagerWrapper.restartInput(mViewEmbedder.getAttachedView()); |
| if (showIfNeeded) { |
| @@ -261,12 +278,14 @@ public class ImeAdapter { |
| } |
| } |
| - public void attach(long nativeImeAdapter, int textInputType, int textInputFlags) { |
| + public void attach(long nativeImeAdapter, int textInputType, int textInputMode, |
| + int textInputFlags) { |
| if (mNativeImeAdapterAndroid != 0) { |
| nativeResetImeAdapter(mNativeImeAdapterAndroid); |
| } |
| mNativeImeAdapterAndroid = nativeImeAdapter; |
| mTextInputType = textInputType; |
| + mTextInputMode = textInputMode; |
| mTextInputFlags = textInputFlags; |
| mLastComposeText = null; |
| if (nativeImeAdapter != 0) { |
| @@ -283,7 +302,7 @@ public class ImeAdapter { |
| * @param nativeImeAdapter The pointer to the native ImeAdapter object. |
| */ |
| public void attach(long nativeImeAdapter) { |
| - attach(nativeImeAdapter, TextInputType.NONE, sTextInputFlagNone); |
| + attach(nativeImeAdapter, TextInputType.NONE, sTextInputModeDefault, sTextInputFlagNone); |
| } |
| private void showKeyboard() { |
| @@ -629,6 +648,14 @@ public class ImeAdapter { |
| } |
| @CalledByNative |
| + private static void initializeTextInputModes(int textInputModeVerbatim, |
| + int textInputModeLatinName, int textInputModeLatinProse) { |
| + sTextInputModeVerbatim = textInputModeVerbatim; |
| + sTextInputModeLatinName = textInputModeLatinName; |
| + sTextInputModeLatinProse = textInputModeLatinProse; |
| + } |
| + |
| + @CalledByNative |
| private static void initializeTextInputFlags( |
| int textInputFlagAutocompleteOn, int textInputFlagAutocompleteOff, |
| int textInputFlagAutocorrectOn, int textInputFlagAutocorrectOff, |