Closed
Bug 720475
Opened 13 years ago
Closed 6 years ago
use IME_FLAG_NAVIGATE_NEXT and IME_FLAG_NAVIGATE_PREVIOUS by default
Categories
(Firefox for Android Graveyard :: Keyboards and IME, defect, P3)
Tracking
(blocking-fennec1.0 -)
RESOLVED
DUPLICATE
of bug 1474902
Tracking | Status | |
---|---|---|
blocking-fennec1.0 | --- | - |
People
(Reporter: blassey, Assigned: shubham2892, Mentored)
References
Details
(Whiteboard: [good first bug][lang=java])
Attachments
(2 files)
1.61 KB,
patch
|
Details | Diff | Splinter Review | |
1.35 MB,
application/zip
|
Details |
http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_FLAG_NAVIGATE_NEXT
these flags will put next and previous buttons on the keyboard when normally only the enter key would be shown. If available (its only API level 11) we should use it to make form navigation easier
Reporter | ||
Updated•13 years ago
|
tracking-fennec: --- → ?
Updated•13 years ago
|
tracking-fennec: ? → 11+
Priority: -- → P2
Comment 1•13 years ago
|
||
It looks like none of the current IME's supports these flag yet, at least I haven't yet found any, which does. Tried the flags separately, and together with IME_ACTION_NEXT - no effect.
I may be doing something wrong though, but I guess it's just because the API is very new, not widely spread yet.
Updated•13 years ago
|
Assignee: alex.mozilla → cpeterson
Reporter | ||
Updated•13 years ago
|
Keywords: fennecnative-releaseblocker
Reporter | ||
Updated•13 years ago
|
blocking-fennec1.0: --- → +
Reporter | ||
Updated•13 years ago
|
Status: NEW → ASSIGNED
Updated•13 years ago
|
OS: Linux → Android
Hardware: All → ARM
Comment 2•13 years ago
|
||
This bug was marked blocking-fennec1.0+ but I do not think it should be a 1.0 blocker.
As alexp points out in comment 1, this is a recent Honeycomb API and current IMEs do not seem to have implemented it yet.
blocking-fennec1.0: + → ?
Comment 3•13 years ago
|
||
Moving to - and 14+ based on comment 2.
tracking-fennec: 11+ → 12+
blocking-fennec1.0: ? → -
Updated•13 years ago
|
tracking-fennec: 12+ → 14+
Updated•13 years ago
|
Component: Widget: Android → IME
Product: Core → Fennec Native
Version: unspecified → Trunk
Updated•12 years ago
|
Priority: P2 → P3
Comment 5•12 years ago
|
||
I don't think we care about this bug for Firefox 14, 15, or 16.
Status: ASSIGNED → NEW
tracking-fennec: 14+ → ?
Comment 6•12 years ago
|
||
This would be a good first bug for someone interested in Android and improving Firefox's form input.
The code changes are straightforward (see AlexP's patch). The tricky part is testing different IMEs, since this IME_FLAG_NAVIGATE_NEXT feature is pretty new. I don't know which IMEs implement it yet.
Assignee: cpeterson → nobody
tracking-fennec: ? → ---
Whiteboard: [good first bug][lang=java][mentor=cpeterson@mozilla.com]
Comment 7•12 years ago
|
||
Hi I'm new here, this seems to be a good one for me to start contribute. I have experience with developing Android apps and Firefox extensions and I'm really interested in working on this bug, can u give me some clue on how to start? A lot thanks
Comment 8•12 years ago
|
||
Welcome, Pushkar! Have you built the Firefox for Android source code? That's the first step. The build instructions are on the following wiki page. They are perpetually out-of-date, so please feel free to ask questions.
https://wiki.mozilla.org/Mobile/Fennec/Android
Mozilla's Mercurial wiki has instructions on how to download the source code and prepare a patch:
https://developer.mozilla.org/en-US/docs/Mercurial_FAQ
https://developer.mozilla.org/en-US/docs/Mercurial_Queues
IRC is the best place for Q&A. Mozilla's Android team hangs out in the #mobile channel on Mozilla's IRC server:
https://wiki.mozilla.org/IRC
Comment 9•12 years ago
|
||
I built the code and its working fine, I am now going to try my hands on the bug. How should I start?
Comment 10•12 years ago
|
||
hi Pushkar, most of Firefox's Android IME key code is in the file mozilla/mobile/android/base/GeckoInputConnection.java.
From what I understand, android.view.inputmethod.EditorInfo's IME_FLAG_NAVIGATE_NEXT and IME_FLAG_NAVIGATE_PREVIOUS flags are supposed to tell the IME virtual keyboard to provide NEXT and PREVIOUS buttons so the user can move the cursor to adjacent text fields. On the desktop browser, you would use TAB or SHIFT+TAB to move the cursor.
https://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_FLAG_NAVIGATE_NEXT
Different IMEs may implement the NEXT and PREVIOUS behavior differently... or not at all! Unfortunately, I do not know which third-party IMEs actually implement NEXT and PREVIOUS. I have seen other Android apps provide NEXT and PREVIOUS buttons on a Gingerbread device, but I have not actually seen this on any Ice Cream Sandwich or Jelly Bean device!
To find a test case, you may need to test different combinations of third-party IMEs and Android apps (such as Android's stock browser or Google Chrome) on an ICS or JB device. If you find a combination that displays NEXT and PREVIOUS buttons on the virtual keyboard, please share the information in this bug.
*** I recommend finding such a test case BEFORE writing any code. Otherwise we won't know whether your code has actually implemented the feature! :)
To implement the feature, I think you can just "or" the `imeOptions` flags with the new flags in GeckoInputConnection's onCreateInputConnection() method. Something like this:
https://hg.mozilla.org/mozilla-central/file/9a0b706c41d6/mobile/android/base/GeckoInputConnection.java#l841
I do not know if we should only "or" these flags only for certain content. We will need to test that once we have a test case that we can compare.
Unfortunately, EditorInfo.IME_FLAG_NAVIGATE_NEXT and IME_FLAG_NAVIGATE_PREVIOUS flags are only available in Honeycomb (API Level 11) and newer. You will need to check whether `(Build.VERSION.SDK_INT >= 11)` at runtime before using IME_FLAG_NAVIGATE_NEXT and IME_FLAG_NAVIGATE_PREVIOUS.
Comment 11•12 years ago
|
||
Assigning bug to Ian Patterson.
Assignee: nobody → ipatterson
Status: NEW → ASSIGNED
Comment 12•12 years ago
|
||
Test case I ran to investigate the visibility of the "Next" button. The following keyboards were tested on my Galaxy S2:
Ice Cream Sandwich Stock - https://play.google.com/store/apps/details?id=com.vllwp.inputmethod.latin
Gingerbread Stock - https://play.google.com/store/apps/details?id=com.moo.android.inputmethod.latin.free
SwiftKey3 - https://play.google.com/store/apps/details?id=com.touchtype.swiftkey.phone.trial
Samsung Stock - Pre-installed.
Swype - Pre-installed.
Attached zip file has screenshots of the keyboards' layouts when an input field in the browser is triggered. (Screenshots archived here: https://www.dropbox.com/sh/yx32dx36vx4yy0b/v8QoWhD8mL)
Browsers tested were Firefox, Chrome, and Android's stock ICS Browser.
Firefox
- In Swype, the Space translates to the Tab key when long-pressed or when pressing Shift and can tab over to the next field. The function is not appear available in the other keyboards; seems specific to Swype.
Chrome & Stock
- Gingerbread and ICS have a tab key created next to or near the spacebar
- Swype’s functionality is the same
- Feature isn’t present in SwiftKey 3 and Samsung’s stock
Comment 13•12 years ago
|
||
I am stepping down from this task due to a shift in priorities. Adding my notes for future reference.
Keyboard is triggered at:
https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoInputConnection.java#308
IME_ACTION is delegated here:
https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoInputConnection.java#351
IME_ACTION_NEXT is used at:
https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoInputConnection.java#333
Notes:
- mIMEActionHint appears to always equal "go", so the check is skipped by default
- mIMEActionHint is set in GeckoInputConnection's notifyIMEEnabled() method. notifyIMEEnabled() is called from Gecko's C++ code:
https://mxr.mozilla.org/mozilla-central/source/widget/android/AndroidBridge.cpp#323
- That action hint value comes from <input mozactionhint="next"> tag:
https://developer.mozilla.org/en-US/docs/HTML/Element/Input#Using_mozactionhint_on_Firefox_mobile
- Force-setting outAttr.imeOptions = EditorInfo.IME_FLAG_NAVIGATE_NEXT replaces the Go button with the Next button, but with no functionality.
General Sites:
http://developer.android.com/training/keyboard-input/style.html
http://stackoverflow.com/questions/2577956/how-to-add-go-button-in-android-softkeyboard-and-its-functionality
http://stackoverflow.com/questions/tagged/android-softkeyboard
http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html (reference for outAttrs)
Updated•12 years ago
|
Assignee: ipatterson → nobody
Status: ASSIGNED → NEW
Comment 14•12 years ago
|
||
Comment on attachment 703636 [details]
Keyboard Screens.zip
Attachment is a zip file.
Attachment #703636 -
Attachment description: Screenshots of various soft keyboards that show 'Next' Arrows. → Keyboard Screens.zip
Attachment #703636 -
Attachment mime type: text/plain → application/zip
Comment 15•12 years ago
|
||
Hello. I was wondering if my partner and I could work on this issue for a class project. Please let me know if this bug is still open. Thank you so much.
Comment 16•12 years ago
|
||
It's all yours. Feel free to ask Chris Peterson any questions here or in #mobile on IRC.
Assignee: nobody → sjtsai
Status: NEW → ASSIGNED
Comment 17•12 years ago
|
||
hi, Tsai! Thanks for your interest! Sorry for the delay.
Have you built Firefox for Android yet? Compiling and installing your own build is the first step. See comment 8 above for build instructions.
See comment 10, 12, and 13 above for details about this bug.
As a starting point, you should also look at the "Fix" patch file that Ian attached in comment 1 above.
Updated•10 years ago
|
Mentor: cpeterson
Whiteboard: [good first bug][lang=java][mentor=cpeterson@mozilla.com] → [good first bug][lang=java]
Jim, could you mentor this bug?
Assignee: sjtsai → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(nchen)
Comment 21•9 years ago
|
||
Hi there,
I'd like to start working on this bug and I'm quite new to this. Do you have any advice on how to proceed?
Thanks
Updated•9 years ago
|
Flags: needinfo?(nchen)
Comment 22•9 years ago
|
||
(In reply to ben94lim from comment #21)
> Hi there,
>
> I'd like to start working on this bug and I'm quite new to this. Do you have
> any advice on how to proceed?
>
> Thanks
Hi! Check out this link for a quick way to get started, https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build.
And feel free to ask questions on IRC, in the #mobile channel.
For this particular bug, there is more information in comment 10.
Flags: needinfo?(nchen)
Comment 23•8 years ago
|
||
Hi. I would like to work on this bug if no one else is working on it. It would be my first bug.
Assignee | ||
Comment 24•8 years ago
|
||
Tuhina are you working on this.
Jim: If Tuhina is not working on it, would it be okay If I take this up.
Flags: needinfo?(tuhinatwyla)
Flags: needinfo?(nchen)
Comment 25•8 years ago
|
||
(In reply to Shubham from comment #24)
> Tuhina are you working on this.
> Jim: If Tuhina is not working on it, would it be okay If I take this up.
Ok, I'm assigning it to you, since Tuhina's comment was from two months ago.
Assignee: nobody → shubham2892
Flags: needinfo?(nchen)
Updated•8 years ago
|
Flags: needinfo?(tuhinatwyla)
Comment 26•8 years ago
|
||
Hi, any progress here? If no one is currently working on this, I'd like to help.
Comment 27•8 years ago
|
||
The Android Keyboard has remove support of prev and next flag (if I understand the code correctly). I couldn't find a good test case where the flag is used by any other keyboard or browser.
I saw an issue with tab navigation e.g. on github.com/join with keyboard Hacker's Keyboard (full layout). But that is a different issue, I guess.
Updated•6 years ago
|
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(sjtsai)
Resolution: --- → DUPLICATE
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•