Closed
Bug 1047660
Opened 10 years ago
Closed 10 years ago
[ Soft home button / edge gestures ]In Landscape, right to left edge gesture transition should originate from the the left edge of the home button bar
Categories
(Firefox OS Graveyard :: Gaia::System::Window Mgmt, defect)
Tracking
(b2g-v2.1 verified, b2g-v2.2 verified)
VERIFIED
FIXED
2.1 S3 (29aug)
People
(Reporter: rmacdonald, Assigned: etienne)
References
Details
(Whiteboard: [systemsfe][tako])
Attachments
(3 files)
46 bytes,
text/x-github-pull-request
|
rmacdonald
:
ui-review-
|
Details | Review |
46 bytes,
text/x-github-pull-request
|
vingtetun
:
review+
rmacdonald
:
ui-review+
markus
:
feedback+
|
Details | Review |
2.22 MB,
video/mp4
|
Details |
The behaviour is described in the soft home button spec (https://mozilla.box.com/s/hhuk707fmq6edpxhs7hl) as well as in the App to App Edge Swipe spec (https://mozilla.box.com/s/wmsw5z3zlx4s4ari3rpi).
Reporter | ||
Updated•10 years ago
|
Blocks: soft-home-button
Reporter | ||
Updated•10 years ago
|
Blocks: edge-gestures
Comment 1•10 years ago
|
||
Hi Francis.
Could you take a look at this one as well?
Thanks!
Flags: needinfo?(fdjabri)
Comment 2•10 years ago
|
||
Re-assigning to Rob since he's back from his long weekend. Rob, let me know if you're still having trouble getting your phone to work.
Flags: needinfo?(fdjabri) → needinfo?(rmacdonald)
Updated•10 years ago
|
Flags: needinfo?(fdjabri)
Reporter | ||
Comment 3•10 years ago
|
||
Comment on attachment 8467601 [details] [review]
Github patch
Hi Markus...
From the UX perspective the issue with the patch is that, if you drag your finger over the soft home key, the task switcher seems to be triggered. The soft home key should not be activated by dragging. Etienne is aware of how to resolve this issue and I've flagged him on the bug.
Thanks!
Rob
Attachment #8467601 -
Flags: ui-review-
Flags: needinfo?(rmacdonald)
Flags: needinfo?(fdjabri)
Flags: needinfo?(etienne)
Comment 4•10 years ago
|
||
That is strange, I just retested the patch on the device I'm using and I cannot reproduce that behaviour.
Once I start the dragging it doesn't matter if the finger passes the soft home, no home action occurs.
Do you get the same behaviour without the patch? Part of the soft home is exposed then as well, so the same thing should occur.
Flags: needinfo?(rmacdonald)
Reporter | ||
Comment 5•10 years ago
|
||
Good question and, in fact, I am getting the same behaviour without the patch. So it's definitely a broader issue. Flagging Michael in Etienne's absence. Also, I'll be away until Aug 18 so please flag Francis in the meantime.
Flags: needinfo?(rmacdonald) → needinfo?(mhenretty)
Comment 6•10 years ago
|
||
I think the behavior Rob is seeing is when you start the drag inside the software home button, the task switcher will be displayed instead of the edge gesture. I think we need to prevent the long press when it becomes a drag.
Flags: needinfo?(mhenretty)
Assignee | ||
Comment 7•10 years ago
|
||
(In reply to Michael Henretty [:mhenretty] from comment #6)
> I think the behavior Rob is seeing is when you start the drag inside the
> software home button, the task switcher will be displayed instead of the
> edge gesture. I think we need to prevent the long press when it becomes a
> drag.
We can, but the edge gesture won't be triggered (if we're detecting a long press on the software home button it means the edge swipe detector isn't getting the events).
The core issue for this bug is not swiping from the edge of the screen and going over the home button (it's not perfect but works pretty well). It's swiping from the edge of the software home button zone, which doesn't work at all.
So I think we should:
* make the #right-panel wider in landscape when the software home button is enabled
* when we detect a tap/longtap (the code is already in place in edge_swipe_detector)
- compare it to the software home button clientRect if it's enabled (cached)
+ send a fake tap/longtap to the software home button if the finger was on it
+ compare it to the software home button _zone_ clientRect
> do nothing if we're inside the zone
> forward the tap/long tap to the current app otherwise
It should fix both issues :)
Flags: needinfo?(etienne)
Comment 8•10 years ago
|
||
Markus, based on comment 7, do you have enough information to continue your patch? Are you still able to work on this?
Assignee: nobody → markus.nilsson
Flags: needinfo?(markus.nilsson)
Comment 9•10 years ago
|
||
(In reply to Etienne Segonzac (:etienne) from comment #7)
> (In reply to Michael Henretty [:mhenretty] from comment #6)
> > I think the behavior Rob is seeing is when you start the drag inside the
> > software home button, the task switcher will be displayed instead of the
> > edge gesture. I think we need to prevent the long press when it becomes a
> > drag.
>
> We can, but the edge gesture won't be triggered (if we're detecting a long
> press on the software home button it means the edge swipe detector isn't
> getting the events).
>
> The core issue for this bug is not swiping from the edge of the screen and
> going over the home button (it's not perfect but works pretty well). It's
> swiping from the edge of the software home button zone, which doesn't work
> at all.
>
> So I think we should:
> * make the #right-panel wider in landscape when the software home button is
> enabled
> * when we detect a tap/longtap (the code is already in place in
> edge_swipe_detector)
> - compare it to the software home button clientRect if it's enabled
> (cached)
> + send a fake tap/longtap to the software home button if the finger was
> on it
> + compare it to the software home button _zone_ clientRect
> > do nothing if we're inside the zone
> > forward the tap/long tap to the current app otherwise
>
> It should fix both issues :)
I hope your comment was of a more general nature and not addressing my suggested patch as that should have fixed swiping from the edge of the software home button zone, which you say doesn't work at all.
So your point about making #right-panel wider should have been addressed.
I still disagree about the second point. I tested that while working on Bug 1032768 and I think my comment there is still valid:
"I tested a tap forwarding solution, but I don't think that it worked very well.
The problem was the 300ms delay that meant that you couldn't tap the home button in a normal way, you had to hold the button a short while and when I did it was a little hard to judge for how long it should be held and the "open apps selector" was sometimes triggered instead."
I think that the gain of being able to start the edge swipe from the home button is too small compared to a poorer home button user experience.
Flags: needinfo?(markus.nilsson) → needinfo?(etienne)
Assignee | ||
Comment 10•10 years ago
|
||
I'll make a proof of concept to figure out what I'm missing / get UX feedback.
Flags: needinfo?(etienne)
Assignee | ||
Comment 11•10 years ago
|
||
Here's a proposal, it was indeed harder than expected. But I think it's an interesting solution.
Rob, the ui-review should focus on the landscape edge swipe, software home button press and long press (in portrait and landscape). Let me know if you have any issue flashing this version.
Markus, when edge swiping in landscape I'm always swiping over the software home button since it's centered vertically. This is why I'm pushing for this solution.
But I agree that the software home button experience needs to be rock solid.
When pressing the software home button in landscape the biggest pain point in the switch to portrait / the resize, I don't think this patch is influencing the experience.
If the feedback is positive I'll add the missing tests to this patch and start the review.
Attachment #8472966 -
Flags: ui-review?(rmacdonald)
Attachment #8472966 -
Flags: feedback?(markus.nilsson)
Comment 12•10 years ago
|
||
Hi Etienne.
I think that your solution works reasonably well but the long-press needs some adjustment.
When long-pressing I think that it's too easy to unintentionally start a swipe, if you press hard the finger spreads out and starts a swipe. I find that especially true when I hold the phone with both hands and press with the thumb, as it then comes in at an angle.
I've also had it happen that no long-press was triggered, but when I let go a tap was triggered (and the home screen was shown).
It's also possible to get the soft home button stuck in the active state if you release it just after the task switcher is shown.
Assignee | ||
Comment 13•10 years ago
|
||
(In reply to Markus Nilsson from comment #12)
> Hi Etienne.
>
> I think that your solution works reasonably well but the long-press needs
> some adjustment.
> When long-pressing I think that it's too easy to unintentionally start a
> swipe, if you press hard the finger spreads out and starts a swipe. I find
> that especially true when I hold the phone with both hands and press with
> the thumb, as it then comes in at an angle.
>
> I've also had it happen that no long-press was triggered, but when I let go
> a tap was triggered (and the home screen was shown).
> It's also possible to get the soft home button stuck in the active state if
> you release it just after the task switcher is shown.
Thanks for the feedback Markus, patch updated!
Comment 14•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
I'm sorry, but with the updated patch I can still reproduce all the things I mentioned in my previous comment.
Attachment #8472966 -
Flags: feedback?(markus.nilsson) → feedback-
Assignee | ||
Comment 15•10 years ago
|
||
(In reply to Markus Nilsson from comment #14)
> Comment on attachment 8472966 [details] [review]
> GAIA PR - WIP
>
> I'm sorry, but with the updated patch I can still reproduce all the things I
> mentioned in my previous comment.
Can you provide more STR / a video ?
Flags: needinfo?(markus.nilsson)
Assignee | ||
Comment 17•10 years ago
|
||
(In reply to Markus Nilsson from comment #16)
> Created attachment 8475174 [details]
> Edge issues
>
> Attached a video that shows the problems.
Thanks, very helpful!
Just updated the PR.
Updated•10 years ago
|
Target Milestone: --- → 2.1 S3 (29aug)
Reporter | ||
Comment 18•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
Sorry for the delay as I'm just back from PTO. This patch is definitely on the right track as it seems to have resolved the earlier issues identified by Markus on my build at least.
That said, I'm still minus'ing it because the home button is still triggered in what I'll refer to as a "peek" scenario. To replicate
1) Launch two landscape apps.
2) Edge swipe to return to the first app.
3) In landscape, swipe from the right edge, over the home button, to peek at the second app. Do not release your finger.
4) Now drag your finger back over the home button and off the edge of the screen.
In this instance, the home button is triggered and the user is returned to the grid. The desired behaviour is that the home button not be triggered and that the user remain the current sheet.
Please NI me if this doesn't make sense.
Thanks!
Rob
Attachment #8472966 -
Flags: ui-review?(rmacdonald) → ui-review-
Comment 20•10 years ago
|
||
The updated PR solves the problem with the thumb starting an unintended swipe.
I was able to reproduce the problem that Rob describes and I think that I narrowed down the problem:
1) Start swipe from the home button
2) Return to the same position and release
--> Tap/click is triggered
The problem that the soft home sometimes get stuck in active state after long-press remains.
Assignee | ||
Comment 21•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
Thanks Rob, there was actually a bug happening in portrait too!
But I can't reproduce the issue where the software home button stays highlighted :/ Markus, can you have another look?
Attachment #8472966 -
Flags: ui-review?(rmacdonald)
Attachment #8472966 -
Flags: ui-review-
Attachment #8472966 -
Flags: feedback?(markus.nilsson)
Attachment #8472966 -
Flags: feedback-
Comment 22•10 years ago
|
||
In the handleRedispatchedTouch function, adding touchend seems to fix the active/highlighted problem:
...
if (!this._onButton(evt)) {
if (type === 'touchmove' || type === 'touchend') {
...
Assignee | ||
Comment 23•10 years ago
|
||
(In reply to Markus Nilsson from comment #22)
> In the handleRedispatchedTouch function, adding touchend seems to fix the
> active/highlighted problem:
>
> ...
> if (!this._onButton(evt)) {
> if (type === 'touchmove' || type === 'touchend') {
> ...
Makes perfect sense, I'll add this fix and start working on the tests today.
Assignee | ||
Comment 24•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
Added the last fix and a good amount of unit-tests :)
Starting the review process.
Attachment #8472966 -
Attachment description: GAIA PR - WIP → GAIA PR
Attachment #8472966 -
Flags: review?(21)
Reporter | ||
Comment 25•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
Appears to have resolved the earlier issue with comment 18. Thanks!
Attachment #8472966 -
Flags: ui-review?(rmacdonald) → ui-review+
Comment 26•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
r+ with nits.
As I said on github I don't really like the redispatch mechanism, but after having discussed with you IRL, I don't have anything better to suggest atm.
So let's go with it.
Attachment #8472966 -
Flags: review?(21) → review+
Comment 27•10 years ago
|
||
Comment on attachment 8472966 [details] [review]
GAIA PR
Looks and works pretty good. If anything, add code comments describing the redispatching.
Attachment #8472966 -
Flags: feedback?(markus.nilsson) → feedback+
Assignee | ||
Comment 28•10 years ago
|
||
Thanks everyone, pushed the followups and added comments. Waiting for try to run before merging.
Clearing the visual feedback ni? since we're not changing any visual.
Assignee: markus.nilsson → etienne
Flags: needinfo?(hnguyen)
Assignee | ||
Comment 29•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment 30•10 years ago
|
||
The issue is verified fixed in Flame 2.1 and Flame 2.2:
Flame 2.1 KitKat Base (319mb)(Full Flash)
Environmental Variables:
Device: Flame 2.1
BuildID: 20141007000203
Gaia: 7f738edf66b9298bceef8a4981d05d04fd04e540
Gecko: b9d04c58580a
Gonk: 2c909e821d107d414f851e267dedcd7aae2cebf
Version: 34.0a2 (2.1)
Firmware: V180
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0
Flame 2.2 KitKat Base (319mb)(Full Flash)
Environmental Variables:
Device: Flame 2.2 Master
BuildID: 20141007040205
Gaia: 83de447d9ae9a59459d7a445f9348a254c661850
Gecko: 9ee9e193fc48
Gonk: 2c909e821d107d414f851e267dedcd7aae2cebf
Version: 35.0a1 (2.2 Master)
Firmware: V180
User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0
The edge gesture is not being triggered on the SHB portion of the screen.
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage?]
status-b2g-v2.1:
--- → verified
status-b2g-v2.2:
--- → verified
Flags: needinfo?(ktucker)
Updated•10 years ago
|
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
You need to log in
before you can comment on or make changes to this bug.
Description
•