Closed Bug 1186902 Opened 9 years ago Closed 9 years ago

Lag when hanging up

Categories

(Firefox OS Graveyard :: Gaia::Dialer, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: isandu, Assigned: gsvelto)

Details

(Keywords: dogfood, perf, Whiteboard: [bzlite])

Attachments

(1 file)

User-Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0

There is a 1 sec lag between when I tap the Hang Up button and when the phone actually hangs up. Also, if I am in the screen with the dialpad during a call and I hang up there is a 2 sec lag for the dialpad to close first, and then the open call screen.
Ravi, it sounds like this doesn't adhere to our guidelines.
QA Whiteboard: [foxfood-triage]
Component: Gaia::Feedback → Gaia::Dialer
Flags: needinfo?(rdandu)
As far as I remember, that's an issue we always lived with. Gabriele, I'm not sure, do we explicitly wait a certain amount of time before hanging up?
Flags: needinfo?(gsvelto)
Keywords: perf
The relevant code immediately hangs up the call (by calling TelephonyCall.hangUp()) but we reflect the change in the UI only after the RIL reports that the call has been effectively hung up. This might introduce some delay, I must admit I've never measured it. Besides we do explicitly wait for two seconds before closing the call screen after the last call has been hung up, I think that was mandated by UX.
Flags: needinfo?(gsvelto)
Harly (UX), Do you know why UX mandated explicitly waiting for two seconds?

From the HCI research, the following timelines apply
-Perception of cause and effect (140 ms), the button should show that it was pressed.
-Perception of progress (1 sec), if operation takes more than 1 second, then a progress indicator is needed to show that it is in progress. 

We should show a progress indicator, if the user has to wait for > 1 second.
Flags: needinfo?(rdandu) → needinfo?(hhsu)
After consulting with UX internally, the design of 2 seconds delay was to let the user see the "Call ended" text. Also, the 2 seconds is just an approximation; therefore, we can definitely remove or change it to less than a second to fit the performance guideline. 

Another thing that I've notice on my Z3C is that when user hang up the phone, all the buttons are not disabled and users can still tap on the button which doesn't make sense.
Flags: needinfo?(hhsu)
I've done some extra digging and I've noticed that the update of the call state (turning the background from white to red and the text from black to white) goes through an extra, spurious transition which makes it feel hanging up slower than it actually is. That's easily fixable though.

I need just another bit of information to update the situation here:

(In reply to Harly Hsu[:harly] from comment #5)
> Another thing that I've notice on my Z3C is that when user hang up the
> phone, all the buttons are not disabled and users can still tap on the
> button which doesn't make sense.

Do you mean the mute/speaker/keypad/place new call/hold buttons? Should those all be turned off when the last call has been hung up? Currently we only disable the speaker/mute buttons and the on hold button. Both the keypad and place new call remain active in those 2s timeframe, should they also be disabled?
Flags: needinfo?(hhsu)
Assignee: nobody → gsvelto
Status: NEW → ASSIGNED
I've prepared a patch that reduces the perceived hangup delay by removing the useless transition and which also disables the "place new call" button when the last call is hung up. The actual 2s delay though is untouched, the interaction just feel smoother as the hung up call visible status changes faster.
Hi Gabriele,
Yes, I think all buttons should be disabled when user hang up the phone. So, both keypad and place new all buttons should be disabled in the 2s timeframe. Thanks
Flags: needinfo?(hhsu)
Comment on attachment 8679133 [details] [review]
[gaia] gabrielesvelto:bug-1186902-reduce-hangup-lag > mozilla-b2g:master

Excellent, so I've updated my PR to reflect this. This is the summary of the changes:

- Disable *all* the advance call options buttons when the last call is hung up (place new call, keypad, etc...)

- Re-enable the appropriate ones in case a new call comes during the 2s interval we wait before closing the callscreen

- Remove the redundant CSS state which we transitioned to when the last call was hung up

- Cleaned up the theme-related CSS bits that were causing warnings to be output to the log when hanging up

- Adjusted the unit-tests accordingly
Attachment #8679133 - Flags: review?(thills)
Comment on attachment 8679133 [details] [review]
[gaia] gabrielesvelto:bug-1186902-reduce-hangup-lag > mozilla-b2g:master

Hi Gabriele,

It looks good.  I did test out and run the tests and i can see how situation is improved.  I left one tiny nit on one of the test files.

Thank you,

-tamara
Attachment #8679133 - Flags: review?(thills) → review+
Thanks for the quick review Tamara! Addressed the nit and merged to gaia/master 3922785cb223b2c659fcea8c388a038d95720306

https://github.com/mozilla-b2g/gaia/commit/3922785cb223b2c659fcea8c388a038d95720306
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: