New issue
Advanced search Search tips

Issue 640469 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

[Remoting Android] Most input methods are not working

Project Member Reported by yuweih@chromium.org, Aug 24 2016

Issue description

Version: ToT Android Client
OS: 7.0 NRD90M

What steps will reproduce the problem?
(1) Connect to a remote host
(2) Press the keyboard button on the action bar
(3) Choose Chinese Pinyin, Cantonese, Korean, Indic as the input method

What is the expected output?

The keyboard for the correct language will show up.

What do you see instead?

The default English keyboard shows up. Only letters can be typed. These input methods work correctly in other apps.

However it looks like Japanese IM and Google voice work correctly, which don't use a qwerty-like keyboard layout.
 

Comment 1 by dah...@chromium.org, Aug 25 2016

Labels: M-55
Owner: yuweih@chromium.org
Status: Assigned (was: Untriaged)
Is this a regression? We should investigate what it would take to support this. 

Comment 2 by yuweih@chromium.org, Aug 29 2016

This may not be a regression. Tried M49 and it still doesn't work.

Didn't have a chance to try it on Android 6 or earlier OS though.

Comment 3 by yuweih@chromium.org, Aug 29 2016

Looks like we configured the keyboard to work in direct key input mode (outAttrs.inputType = InputType.TYPE_NULL) but input methods like Pinyin and Korean only work in rich input mode and will fallback to the English keyboard if direct key mode is requested.

Looks like switching to rich input mode will basically fix this problem but we will lose the number row on the top of the keyboard and currently I still have trouble making the backspace key work correctly...
Does everything actually work correctly when you enable rich input methods? I believe there is still work required to handle them correctly and that's why it's disabled right now. Changing input mode to TEXT would also enable word prediction and swipe for all languages and AFAIK these are not handled correctly (e.g. tapping a word suggestion and then backspace should erase the whole word, but that doesn't work correctly in CRD)
Still it would be great to fix this, maybe as a special keyboard mode, e.g. similar to touch/mouse modes?

Comment 5 by yuweih@chromium.org, Aug 31 2016

> Does everything actually work correctly when you enable rich input methods?

Looks like it basically works. Just that the backspace key needs to be handled explicitly.

Haven't tested typing non-English words yet since it seems the Linux host doesn't handle non-ASCII characters for some reason. I will test this on Windows when I get home.

You can take a look at this unsent CL if you like:
https://codereview.chromium.org/2293693002/

> I believe there is still work required to handle them correctly and that's why it's disabled right now. Changing input mode to TEXT would also enable word prediction and swipe for all languages and AFAIK these are not handled correctly (e.g. tapping a word suggestion and then backspace should erase the whole word, but that doesn't work correctly in CRD)

There is a special InputType bit named `TYPE_TEXT_FLAG_NO_SUGGESTIONS`, which can turn off word prediction on TEXT mode.
On Linux text events are injected by emulating key events, so it works only for characters present on the current keyboard layout.
Since it's a virtual keyboard, I think we can just add another key to it whenever we need to generate a character that doesn't already exist.
Yes, it's possible to make text events work correctly with X11 by modifying keyboard layout, it's just not implemented right now.
Tried rich input mode on Windows and Pinyin works correctly. Not sure whether this is a good time to turn on rich input...
Labels: -M-55 M-56
Labels: -M-56 M-57
Labels: -M-57
Labels: -Pri-2 Pri-3

Sign in to add a comment