Closed Bug 1131261 Opened 9 years ago Closed 9 years ago

Pressing *number* then # on the keypad makes a modal window appear and disappear if you have no contacts saved at this slot on the SIM card

Categories

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

All
Gonk (Firefox OS)
defect
Not set
normal

Tracking

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

VERIFIED FIXED
2.2 S7 (6mar)
blocking-b2g 2.2+
Tracking Status
b2g-v2.2 --- verified
b2g-master --- verified

People

(Reporter: jlorenzo, Assigned: gsvelto)

References

Details

(Keywords: late-l10n)

Attachments

(3 files, 1 obsolete file)

Build info
Gaia-Rev        0d7b35f23402c4cb29bca6b98280fec48a196dec
Gecko-Rev       https://hg.mozilla.org/mozilla-central/rev/3436787a82d0
Build-ID        20150209010211
Version         38.0a1
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150209.045655
FW-Date         Mon Feb  9 04:57:06 EST 2015
Bootloader      L1TC000118D0


STR
1. Open the dialer
2. Press "1" and "#".

Expected result
"1#" is displayed at the top of the keypad.

Actual results
A modal window "Loading contact" appears.

Additional notes
Doesn't reproduce on today's 2.2 and 2.1

Gaia-Rev        e827781324cbde91d2434b388f5dead3303a85ee
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/0552759956d3
Build-ID        20150209002504
Version         37.0a2
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150209.040038
FW-Date         Mon Feb  9 04:00:51 EST 2015
Bootloader      L1TC000118D0


[Blocking Requested - why for this release]: Regression on a basic use case.
[Blocking Requested - why for this release]: Regression on a basic use case.
blocking-b2g: 2.2? → 3.0?
(In reply to Johan Lorenzo [:jlorenzo] (QA) from comment #0)
> STR
> 1. Open the dialer
> 2. Press "1" and "#".

That's a feature, see bug 1061130.

> Actual results
> A modal window "Loading contact" appears.

Does the window go away after a while or not? If you have a SIM card then the window should go away and the number should be replaced with the first contact number in the SIM. If there are no contacts then '1#' should remain in the dialer instead.
Thanks for pointing this bug out. I forgot about it.

NI myself to check comment 2 and the behavior with the Orange MMI code #123# once I'm back in France.
blocking-b2g: 3.0? → ---
Flags: needinfo?(jlorenzo)
Keywords: regression
Blocks: 1061130
Status: NEW → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(jlorenzo)
Flags: needinfo?(jlorenzo)
Typing #123# in the dialer doesn't make the window appear.

If I have a contact in the SIM card, the window disappear afters a few seconds and the phone number gets replaced by the one in the SIM.

However, if you have no contact at a given slot in the SIM, the window disappears and nothing else happens. This can confuse an end user. See this video: http://mzl.la/1DN59jx

Another issue I found: It seems like we load the entire contact list in a given SIM each time we use this functionality. I filed bug 1132914 to track it.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jlorenzo)
Summary: Pressing the "#" button makes a modal window appear if you have already input a digit → Pressing *number* then # on the keypad makes a modal window appear and disappear if you have no contacts saved at this slot on the SIM card
Tested against 2.2 again. The reason I didn't see it on this version was because I didn't have a SIM card at the time.

[Blocking Requested - why for this release]: Every user who has no contact at all on a given SIM card will see this window without any further explanation. Can we do something to prevent that, Carrie?
blocking-b2g: --- → 2.2?
Flags: needinfo?(cawang)
We can probably delay showing the window by a short amount of time so that we don't show it at all if the user has no contacts and nothing happens. I have to check how long it takes though; it might be tricky to get a reliable timing for this.
@Gabrielle, you have a |getCount| in contacts to check the number of contacts instead of doing a delay.
(In reply to Francisco Jordano [:arcturus] [:francisco] from comment #7)
> @Gabrielle, you have a |getCount| in contacts to check the number of
> contacts instead of doing a delay.

Just realised that is for the sim contacts, not the contacts api :(, so my comment doesn't apply here.
We can show a dialog like this one:


No contacts where found


------------------------
          OK
------------------------

WDYT?
(In reply to Manuel Casas Barrado [:mancas] from comment #9)
> We can show a dialog like this one:
> 
> 
> No contacts where found
> 
> 
> ------------------------
>           OK
> ------------------------
> 
> WDYT?

Read were instead of where. My mind plays tricks on me =)
(In reply to Manuel Casas Barrado [:mancas] from comment #9)
> We can show a dialog like this one:
> 
> 
> No contacts where found
> 
> 
> ------------------------
>           OK
> ------------------------
> 
> WDYT?

I think it's better to just not show anything at all; as discussed before most users won't even know this feature is there.
Triage: This feature might confuse an end-user who can trigger it inadvertently. We need either to fix it before shipping this release, or, as this is not a high priority feature, to backout bug 1061130 in the meantime. Gabriele, do you think this bug can be fixed before Feature Complete (April 6th)? If not, the partner team will discuss the possibility of not shipping bug 1061130 in 2.2.
Flags: needinfo?(gsvelto)
I've already a patch ready which I'm testing right now. I'll attach it later today.
Flags: needinfo?(gsvelto)
Per comment 12 and comment 13.
blocking-b2g: 2.2? → 2.2+
OK, here's a patch that delays opening the dialog by 0.5s; Johan can you give it a spin and see if it solves the problem? This also cancels the operation if the user keeps typing before the overlay is shown.
Assignee: nobody → gsvelto
Status: NEW → ASSIGNED
Attachment #8565454 - Flags: feedback?(jlorenzo)
Attached video 0.5s delay demo
It's a great start for the case where you want to add more digits after the # symbol (see video at 0:23).

I don't think it's enough if you type a number the first time without knowing it, though. The SIM card I tested against contains only 2 contacts (see at 0:15) and the look up takes about 3 seconds. Then, I think having a dialog like in comment 9 (with the 0.5 delay) would make clear the interaction with the user.
Attachment #8565454 - Flags: feedback?(jlorenzo) → feedback+
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

This adds another overlay as per comment 9 when no contacts were found for the given speed dial index as well as all the previous changes (delaying the overlay by 0.5s, canceling the operation if the user keeps typing).
Attachment #8566511 - Flags: review?(thills)
Attachment #8566511 - Flags: feedback?(jlorenzo)
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

It looks great, thanks!
Attachment #8566511 - Flags: feedback?(jlorenzo) → feedback+
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

Clearing the review for the time being because I'm not sure anymore this is the right approach in light of bug 1134871.
Attachment #8566511 - Flags: review?(thills)
No longer blocks: 1135217
After landing the fix for bug 1134871 the behavior here has changed: it's now impossible for the user to keep typing after the # button has been pressed. This behavior is more correct WRT the relevant 3GPP specification but makes my trick of delaying the overlay inoperable.

I was thus thinking of removing that part from the fix here but leaving the error overlay in (no contacts found) to make it clear to the user what happened. Johan, what do you think?
Flags: needinfo?(jlorenzo)
So let me confirm the use cases here:

If there has contacts saved on the SIM, tapping "num#" will display the corresponding contact here.
If there has no contacts saved on the SIM, tapping "num#" will display the error message "no contacts found". If I'm right here, I think the behavior makes sense.

However, from comment22, does that mean if user wants to type 2#666, this will be impossible?

Thanks!
Flags: needinfo?(cawang)
(In reply to Carrie Wang [:carrie] from comment #23)
> However, from comment22, does that mean if user wants to type 2#666, this
> will be impossible?

Yes, the 3GPP spec mandates that upon tapping the # key we should start the procedure which is what I've implemented in bug 1134871 so after tapping the # it's impossible to tap other keys.
Keywords: late-l10n
Attachment #8565454 - Attachment is obsolete: true
Flags: needinfo?(jlorenzo)
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

This is a greatly simplified patch, the only thing it does is show a meaningful message when no contact corresponds to the selected code.
Attachment #8566511 - Flags: review?(thills)
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

Hi Gabriele,

It looks good.  I left one small comment on the PR, 

======
Not related to the change in this PR is a minor UX question that came up.  Consider the following steps:

1.  User enters 20# and they only have 10 speed dials.
2.  They cancel out.
3.  The '20#' is still in the dialer and they hit the call button
4.  They will get the 'Session Expired' error in this case.

Would it be better to clear out the number if they hit cancel?  Will this prevent the session expired (and add'l confusion) ?

Thanks,
-tamara
Attachment #8566511 - Flags: review?(thills) → review+
(In reply to Tamara Hills [:thills] from comment #26)
> Not related to the change in this PR is a minor UX question that came up. 
> Consider the following steps:
> 
> 1.  User enters 20# and they only have 10 speed dials.
> 2.  They cancel out.
> 3.  The '20#' is still in the dialer and they hit the call button
> 4.  They will get the 'Session Expired' error in this case.
> 
> Would it be better to clear out the number if they hit cancel?  Will this
> prevent the session expired (and add'l confusion) ?

Good point, I just did a quick test and it seems that both Android and iOS always clear the dialer after typing a speed dial number irrespective of the success of the operation. I'll do the same in addition to addressing your comment.
Ready to go, let autolander do its job.
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

[Approval Request Comment]
[Bug caused by] (feature/regressing bug #): 1061130
[User impact] if declined: No error message is shown when the selected speed dial number is unavailable, the user might be confused as to what really happened if he used the speed dial functionality accidentally
[Testing completed]: Tested on a device, unit-test added
[Risk to taking this patch] (and alternatives if risky): Little risks involved, we can also not take this patch at all but it tends to make the behavior a lot closer to the equivalent functionality on Android & iOS
[String changes made]: `noContactsWereFound` and `noContactsFoundDialogOk` strings were added and `loadingSimContacts` was modified
Attachment #8566511 - Flags: approval-gaia-v2.2?(bbajaj)
Keywords: verifyme
Comment on attachment 8566511 [details] [review]
[gaia] gabrielesvelto:bug-1131261-delay-speed-dial-overlay > mozilla-b2g:master

Requesting QA verification to help mitigate the risk by additional testing and verification here. If we end up having blocking regressions/fallouts, lets back this out.
Attachment #8566511 - Flags: approval-gaia-v2.2?(bbajaj) → approval-gaia-v2.2+
Attached video video
This problem is verified pass on latest build of Flame 3.0.
STR:
1. There’s no contact in SIM card.
2. Launch Dialer app and tap “1#”.
** The “Loading SIM card contacts…” message pop up, a few second later, the “No contacts were found” prompt message pop up.
3. Tap “OK”.
** Device go back to Dialer view and the “1#” be cleared.
4. Have an contact in SIM card. 
5. Launch Dialer app and tap “1#”.
** The “Loading SIM card contacts…” message pop up, a few second later, the phone number of the contact display on the dialer input field.
See attachment: Verify_video.mp4
Rate: 0/3

Flame 3.0 build:
Build ID               20150303010233
Gaia Revision          c8ed1085a67490a1ecd7f275e5de9487e1b93b1d
Gaia Date              2015-03-02 20:14:21
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/0b3c520002ad
Gecko Version          39.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150303.044015
Firmware Date          Tue Mar  3 04:40:27 EST 2015
Bootloader             L1TC000118D0

Keep verifyme tag for 2.2 build has not reached yet.
QA Whiteboard: [MGSEI-Triage+]
Verified fixed on b2g v2.2 with the same Steps to Reproduce as comment 33.

Gaia-Rev        4e0633463571377ad4badc680b666771684e862d
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/535ec28fb36f
Build-ID        20150319162506
Version         37.0
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150319.200823
FW-Date         Thu Mar 19 20:08:34 EDT 2015
Bootloader      L1TC000118D0
Status: RESOLVED → VERIFIED
Keywords: verifyme
OS: Linux → Gonk (Firefox OS)
Hardware: x86_64 → All
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: