Closed Bug 1190790 Opened 4 years ago Closed 4 years ago

Can't open a missed call from lockscreen notification.

Categories

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

ARM
Gonk (Firefox OS)

Tracking

(blocking-b2g:2.5+, b2g-v2.2 unaffected, b2g-master verified)

VERIFIED FIXED
blocking-b2g 2.5+
Tracking Status
b2g-v2.2 --- unaffected
b2g-master --- verified

People

(Reporter: xiongfuchao, Assigned: gsvelto)

References

Details

(Whiteboard: [2.5-aries-test-run-1])

Attachments

(5 files)

Attached file logcat_1707.txt
[1.Description]:
[Aries kk v2.5][Flame kk v2.5][Lock Screen]If user misses a call when test device is in suspend mode,then open notification from lockscreen, device will show a blank call log view and user can't switch between All/Missed tab.
Found time:17:07
See Attachment:logcat_1707.txt & Aries _v2.5.3gp

[2.Testing Steps]: 
1.Lockscreen.
2.Miss a call.
3.Tap notification to open call log.

[3.Expected Result]: 
3.Call log can be opened and displayed correctly.

[4.Actual Result]: 
3.Device will show a blank call log view and user can't switch between All/Missed tab.

[5.Reproduction build]: 
Device: Aries KK 2.5(Affected)
Build ID               20150803195455
Gaia Revision          dbacf8364f4505d021b7d8fb9cabea325004dbcc
Gaia Date              2015-08-03 16:38:49
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/abc56d57f6e1
Gecko Version          42.0a1
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20150803.191800
Firmware Date          Mon Aug  3 19:18:08 UTC 2015
Bootloader             s1

Flame KK 2.2: (unaffected)
Build ID               20150803032504
Gaia Revision          f8b119ac30e97df991c97682ac4d4f9ca22e1793
Gaia Date              2015-07-31 13:20:55
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/429b9d2d4566
Gecko Version          37.0
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150803.072845
Firmware Date          Mon Aug  3 07:28:58 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

Flame KK 2.5: (Affected)
Build ID               20150803150205
Gaia Revision          dbacf8364f4505d021b7d8fb9cabea325004dbcc
Gaia Date              2015-08-03 16:38:49
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/abc56d57f6e1
Gecko Version          42.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150803.183149
Firmware Date          Mon Aug  3 18:32:00 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0 

[6.Reproduction Frequency]: 
occasionally Recurrence,7/10

[7.TCID]: 
Free Test
Attached video Aries_v2.5.3gp
[Blocking Requested - why for this release]: Functional regression from 2.2.
blocking-b2g: --- → 2.5?
Comms triage: Regression.
blocking-b2g: 2.5? → 2.5+
Hi Gerry,

Could you have someone to check this bug? 
We find that if you create a miss call after Phone app is killed, you can repro this bug by tapping the miss call notification from notification bar. Detailed repro STR as follows:
1. Kill the Phone app;
2. Create a miss call;
3. Tap the miss call notification from the notification bar;
**Device will show a blank call log view and user can't switch between All/Missed tab, and, the tab is located in the dial pad.
Severity: normal → major
Flags: needinfo?(gchang)
Hi Fred,
Can you help to dispatch this bug?
Flags: needinfo?(gchang) → needinfo?(gasolin)
Attached video AriesKK_v2.5-1.3gp
According to the STR on comment 4, add my repro video and logcat.
Rate: 100%
Found at: 16:06

AriesKK v2.5 user build
Gaia-Rev        a8a462ab783a5bbab508d3c29483cff260672e3c
Gecko-Rev       https://hg.mozilla.org/mozilla-central/rev/c46370eea81a9860ae77d1f0c7776c24e816138e
Build-ID        20150825220826
Version         43.0a1
Device-Name     aries
FW-Release      4.4.2
FW-Incremental  eng.worker.20150825.213001
FW-Date         Tue Aug 25 21:30:08 UTC 2015
Bootloader      s1
Assignee: nobody → gsvelto
Duplicate of this bug: 1198361
Flags: needinfo?(gasolin)
Duplicate of this bug: 1197085
Cooking up a patch, this is a regression of bug 1183727. We should always be calling NavBarManager.update() every time we call Navigation.show() but after bug 1183727 we don't. This was a side-effect of the hashchange event handler.
Status: NEW → ASSIGNED
First attempt at a fix: I moved the code used to update panels after having displayed them from the NavBarManager to the Navigation object, now every time we call Navigation.show() we also ensure the relevant panel is populated correctly. This works but I still have to fix the unit-tests and adjust the code we lazy load. As we already knew we load code via LazyLoader which we immediately need at startup so there's no benefit in doing it this way. I'm cleaning it up in the process as the NavBarManager was one of the offenders, LazyLoader.load()ing stuff on the start-up path and then waiting on it.
Comment on attachment 8655703 [details] [review]
[gaia] gabrielesvelto:bug-1190790-fix-dialer-navigation > mozilla-b2g:master

OK, this turned out to be a larger patch than I had anticipated because the new navigation code was lacking unit-tests and there were still some leftovers from the old hash-based navigation code that I wanted to remove. Here's a rundown of the changes:

- Moved the remaining navigation logic from the NavBarManager to the Navigation object, this ensures that whenever we call Navigation.show() we also properly display/populate the relevant panel

- Removed the lazy-loading of the source files needed to display the various panel. Sources for all panel were loaded in the startup path so it was pointless (in fact detrimental) to not just put them in index.html. I did some quick performance testing and couldn't see any difference in responsiveness before/after but the overall startup time is down by a few 10s of ms.

- Removed unused/dead code

- Added unit-tests covering the Navigation object

- Removed the tests that did not apply anymore to the dialer.js source file

I've smoke-tested this on a device trying various corner-cases (e.g. contact activities, switching between panels) and it's looking good.
Attachment #8655703 - Flags: review?(drs)
Comment on attachment 8655703 [details] [review]
[gaia] gabrielesvelto:bug-1190790-fix-dialer-navigation > mozilla-b2g:master

Whoops, just spotted an issue when creating/deleting contacts. Removing the review flag for now.
Attachment #8655703 - Flags: review?(drs)
Marking as a P1
Priority: -- → P1
Comment on attachment 8655703 [details] [review]
[gaia] gabrielesvelto:bug-1190790-fix-dialer-navigation > mozilla-b2g:master

Things seem to be working fine now, after discussing with Francisco I realized I must had hit some actual contacts regression which weren't caused by my changes. I've left a hack we had in the old navigation code which forced the conctacts frame to go back to the #home panel and I'm not sure if it's needed anymore or not hence the f? for Francisco. The rest of the changes are as per comment 13.
Attachment #8655703 - Flags: review?(drs)
Attachment #8655703 - Flags: feedback?(francisco)
Comment on attachment 8655703 [details] [review]
[gaia] gabrielesvelto:bug-1190790-fix-dialer-navigation > mozilla-b2g:master

As we commented yesterday, the problem mentioned above are contacts regressions that we will take care of.

Just had a quick look and lgtm, but I'm sure drs will have a deep look to this. Regarding reseting contacts to the list each time the tab is visited, seems like a safe play to me.
Attachment #8655703 - Flags: feedback?(francisco) → feedback+
Excellent, glad to hear that. The two hacks I had in mind are this:

https://github.com/mozilla-b2g/gaia/pull/31641/files#diff-3eebe091b42b34f2666e654da408936bR20

... and this:

https://github.com/mozilla-b2g/gaia/pull/31641/files#diff-3eebe091b42b34f2666e654da408936bR73

Both of which were in the original navigation code and I've left them intact in my fix. They both look horribly clunky but I was too scared of regressing something if I removed them.
Summary: [Lock Screen]Can't open a missed call from lockscreen notification. → Can't open a missed call from lockscreen notification.
Comment on attachment 8655703 [details] [review]
[gaia] gabrielesvelto:bug-1190790-fix-dialer-navigation > mozilla-b2g:master

Looks good, just needs an additional test.
Attachment #8655703 - Flags: review?(drs) → review+
Thanks for the review, I've added the test and pushed again. Will merge once try is green.
Merged to gaia/master b314a80bd9832c24074a72942f09619f9bba6a42

https://github.com/mozilla-b2g/gaia/commit/b314a80bd9832c24074a72942f09619f9bba6a42

As usual the TV integration tests were orange but there's little to be done about them. Re-triggering doesn't seem to help and they take forever to run.
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
This issue is verified fixed in Aries 2.5.

Environmental Variables:
Device: Aries 2.5 [Full Flash]
BuildID: 20150917135859
Gaia: aede8622d780ec71f766a3ecccbff74c04aaba4e
Gecko: de0e763b521062d9a9da0ce029792be026886223
Gonk: 2916e2368074b5383c80bf5a0fba3fc83ba310bd
Version: 43.0a1 (2.5) 
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:43.0) Gecko/43.0 Firefox/43.0

The missed call lockscreen notification now brings users to the call list in dialer.
Status: RESOLVED → VERIFIED
Flags: needinfo?(jmercado)
Flags: needinfo?(jmercado)
QA Whiteboard: [QAnalyst-Triage+]
You need to log in before you can comment on or make changes to this bug.