Edge gestures still get lost (mako)

Bug #1408263 reported by Michael Zanetti
58
This bug affects 7 people
Affects Status Importance Assigned to Milestone
android (Ubuntu)
Confirmed
High
Canonical Phone Foundations
unity8 (Ubuntu)
Invalid
High
Unassigned

Bug Description

There are still cases where edge gestures are lost. Over the christmas holidays It happened about 5 times to me (in 2 weeks). Only way to recover is to reboot the phone. It always happened while the phone was in my pocket. When pulling it out of the pocket the edge gestures (launcher and right edge) were gone. This is most likely related to random taps on the screen, maybe in combination with the display toggling on/off.

Haven't found a way yet to manually trigger it. Will keep on trying.

Changed in unity8 (Ubuntu):
importance: Undecided → Critical
assignee: nobody → Daniel d'Andrada (dandrader)
description: updated
description: updated
Changed in unity8 (Ubuntu):
status: New → In Progress
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

I just had this happen on mako with image 185. The greeter will not open from the right edge, all other gestures are normal.

Revision history for this message
Pat McGowan (pat-mcgowan) wrote :
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :

I built touch-debug packages of unity8 to get as much output as possible for this.

Interesting data point: playing music seems to trigger this more often - suspicion is not allowing the device to fully suspend increases the chance to get this bug.

To get the debug-enabled unity8:

$ wget http://people.canonical.com/~msawicz/unity8/touch-debug/repo-key.pub
$ gpg --homedir /dev/null --with-fingerprint repo-key.pub
# verify fingerprint: C09A 0EA9 555F 5A80 D53B EE1F 47EA 8F76 B005 9747
$ sudo apt-key add repo-key.pub
$ sudo add-apt-repository "deb http://people.canonical.com/~msawicz/unity8/touch-debug/ /"
$ sudo apt update
$ sudo apt install unity8 unity8-common unity8-private
$ sudo reboot

if you reproduce the issue, grab unity8.log and unity8-dash.log from ~/.cache/upstart/ and upload it somewhere.

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

This is what happens when the bug starts to show:

On the Nexus 4, the edge drag areas are 36 pixels wide. When you do a left edge drag, the touch-press event hits the screen at x=45, so already past the left edge drag area (launcherDragArea), as this log snippet shows:

"""
--------- EdgeDragAreas -------
EdgeDragArea_QMLTYPE_1_QML_248 "spreadDragArea" enabled=true visible=true sceneRect=QRectF(732,0 36x1280)
EdgeDragArea_QMLTYPE_1 "launcherDragArea" enabled=true visible=true sceneRect=QRectF(0,0 36x1280)
-------------------------------
---------- Touch Pressed id=64 pos=(45.4704,547.286) -----------
"""

Thus somehow the edges of the touch screen seem to get "numb" after some idle time...

A simple fix (or workaround) would be to simply increase the thickness of the edge drag areas. This would have no side-effects as edge drag areas consume only edge-drag gestures. Taps near the edges would still reach the foreground app

Revision history for this message
Ricardo Mendoza (ricmm) wrote :

No real reason for this mako-only bug to happen comes to mind. My advise is to trace back the event to the source, first by lighting up QtUbuntu's input.cc to spew out all events before pushing them to the client, and also mirclient's input delivery loop to see if it is actively dropping the events somehow.

If none of those places show anything, you need to look into the imported Android input stack inside of Mir to make sure it is working, then down to the input device it is. It might be an underlying bug with the Mako input stack itself.

Changed in unity8 (Ubuntu):
status: In Progress → Triaged
Revision history for this message
Michał Sawicz (saviq) wrote :

After further investigation, this indeed seems to be a problem at the driver/android/somewhere level...

The device capabilities:

                 (('ABS_MT_POSITION_X', 53),
                  AbsInfo(value=0, min=0, max=1536, fuzz=0, flat=0, resolution=0)),

So min=0, max=1536.

On a working device, if I touch the far left:
> absolute axis event at 6366.763794, ABS_MT_POSITION_X event at 6366.763794, code 53, type 03, val 00

And on the far right:
> absolute axis event at 6371.031397, ABS_MT_POSITION_X event at 6371.031397, code 53, type 03, val 1535

In a broken state:
> absolute axis event at 6705.620880, ABS_MT_POSITION_X event at 6705.620880, code 53, type 03, val 91
> absolute axis event at 6707.924863, ABS_MT_POSITION_X event at 6707.924863, code 53, type 03, val 1453

So... something goes into a state where the input "area" grows out of the device... The whole physical area is still active, but the delivered events are "closer" to the center of the device.

Michał Sawicz (saviq)
Changed in unity8 (Ubuntu):
status: Triaged → Invalid
assignee: Daniel d'Andrada (dandrader) → nobody
Michał Sawicz (saviq)
Changed in android (Ubuntu):
assignee: nobody → Ricardo Mendoza (ricmm)
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in android (Ubuntu):
status: New → Confirmed
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

I saw this recently where I lost left and right edge gestures, but top and bottom seemed to work. It was as the reporter described-- happened after being in my pocket. Only recourse was to reboot.

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

I should've mentioned:
$ system-image-cli -i
current build number: 194
device name: mako
channel: ubuntu-touch/ubuntu-rtm/14.09-proposed
last update: 2015-02-11 15:34:27
version version: 194
version ubuntu: 20150211.1
version device: 20150116
version custom: mako-1.1

I too don't have a consistent reproducer, but can keep trying to find one.

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

I might also note-- in both cases recently I needed to make a call; thankfully it was not an emergency.

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Wow, I had this happened to me 4 times *yesterday*. I'm not sure if I am just extremely unlucky of late or if something is aggravating the situation. Is there something we can do in software to detect the problem described in comment #10 and handle it? Presumably android is working despite this problem....

Changed in android (Ubuntu):
assignee: Ricardo Mendoza (ricmm) → Canonical Phone Foundations (canonical-phonedations-team)
kevin gunn (kgunn72)
Changed in android (Ubuntu):
importance: Undecided → High
Changed in unity8 (Ubuntu):
importance: Critical → High
summary: - Edge gestures still get lost
+ Edge gestures still get lost (mako)
Revision history for this message
Charles Kerr (charlesk) wrote :

This occurs for me about once a day, so I'm happy to act as a patch tester or any other way I can help...

Revision history for this message
Sam Bull (dreamsorcerer) wrote :

This has also been happening to me a little too frequently. It's particularly bad, given that you can't use the system without these edge gestures, being unable to return to the home screen, switch app, launch new apps etc.

Like others, this seems to happen when in a pocket, and most times when playing music. If music-app still has some kind of exception for suspending the phone, then that might explain why it happens more frequently there, if it is somehow linked to suspending.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.