Closed Bug 864790 Opened 8 years ago Closed 5 years ago

[sms] when deleting threads, warn the user if the thread has unread messages in that thread.

Categories

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

x86_64
Linux
defect
Not set
normal

Tracking

(blocking-b2g:-)

RESOLVED WONTFIX
blocking-b2g -

People

(Reporter: julienw, Unassigned, Mentored)

References

Details

(Whiteboard: ux-tracking [sms-papercuts][lang=js])

Attachments

(1 file)

STR:
* have a thread with unread messages
* trigger edit mode
* select that thread and click delete

=> we get a confirm box "delete selected message threads?"

I believe that when we have unread messages, we should either add a text about that in this confirm box, or add an additional confirm box with a warning like "you're about to delete unread messages, are you sure?".

I believe this is necessary because the user might have got a new sms in that thread while he was selecting the thread. A sms might even come at the exact moment he clicks "delete". So there is a dataloss risk here.

Asking leo? here as this is both easy to fix and valuable for the user.
Ayman, borja, what do you think of this proposition ? Which one do you prefer ?
Flags: needinfo?(fbsc)
Flags: needinfo?(aymanmaat)
In the wireframes of SMS there is no requirement about this. Wait to Ayman input.
Flags: needinfo?(fbsc)
I know there is no requirement in the wireframes, I was just asking your advice here ;) (and maybe go and ask Ayman in person). Will wait for sure, this is not urgent !
Thinking about this, I think we need the second confirm box, because a new message might come while the first confirm box is displaying and we can't modify it live because it's managed by the system app. Or we can manage our own confirm box.
ok Juilen I agree that this would be a useful enhancement to what is already specified. But before we dive into solution could I ask one question:

Is it possible that, when the user enters edit mode in either 'messages inbox' view or in 'message thread' view, that we could 'hold' the delivery of new messages to either an individual thread or to all threads (depending on which view they are in) until they exit edit mode? If it is possible, how much effort would it be.
Flags: needinfo?(aymanmaat) → needinfo?(felash)
Ayman> I think we can't, because we receive the messages deep in gecko.

I think I've said it in another bug, but to do what you're suggesting in the app, we'd need to fetch all message ids for all threads when we enter edit mode, which I think is not efficient. That's why I was thinking about this solution instead.
Flags: needinfo?(felash) → needinfo?(aymanmaat)
We discussed we would not block on this but will help to have UX input on how to deal with this is future feature work as the early comments in the triage from the UX suggested having an additional confirm box "delete selected message threads?" as suggested in the description, may not be the best thing to do here
blocking-b2g: leo? → -
Whiteboard: [UX-P?]
(In reply to Julien Wajsberg [:julienw] from comment #6)
> Ayman> I think we can't, because we receive the messages deep in gecko.
> 
> I think I've said it in another bug, but to do what you're suggesting in the
> app, we'd need to fetch all message ids for all threads when we enter edit
> mode, which I think is not efficient. That's why I was thinking about this
> solution instead.

ok, i totally agree that we need to address this. But unfortunately i need to defer to product to understand when in the roadmap i can look at it as i have to concentrate on the defined 1.1 user stories at the moment.

so RIF to Daniel and Peter to give the go ahead or to say when we can move on this.
Flags: needinfo?(pdolanjski)
Flags: needinfo?(dcoloma)
Flags: needinfo?(aymanmaat)
It is certainly not a blocker but a good UX suggestion.  I'd suggest that unless you are clear from blocking 1.1 work, that this be put on hold.
Flags: needinfo?(pdolanjski)
Dont think we should add this given the amount of work we still have for MMS...
Flags: needinfo?(dcoloma)
Blocks: 1096862
ux-b2g: --- → 2.2
Whiteboard: [UX-P?] → ux-most-wanted-nov2014
Hi Julien
Seems long time, there is no discussion on this.
But now as we have Bug 829820, which hopefully land soon (where we can unread message too, i think we should have this feature). 
For the solution, as per your description i would say, it should add a text about that in this confirm box ( or a better to add a tick box: include unread message ...in case, if it has) because if this kind of UX for confrim box lands, it will be useful for bug 1001803 (where we can have a tick box in confrim box : include locked message). This will bring uniformity across SMS app confrim box.

Thanks
Flags: needinfo?(felash)
I think this is still useful but we'd need to ask Jenny again.
Flags: needinfo?(felash)
Hi Jenny
Your views & suggestion on this. Considering Bug 1037650, where we gonna replace the confirm dialog box with toast.
Thanks
Flags: needinfo?(jelee)
Hi Julien and Kumar, 

See below for preferred flow, let me know if you have any question. Thanks!

1) Go to Select threads from menu.
2) Select thread(s), at least one thread contains unread message. 
3) Select delete.
4) If and only if at step 2, threads containing unread message are selected, show confirm dialog:

Messages
--------
The thread(s) you selected contains unread message(s). Delete anyway? 
[Checkbox] Don't show this message again. 

Cancel / Delete 

*The use of plural noun depends on the number of thread user selected and the number of unread message*
*If user checks "Don't show this message again", next time when user tries to delete threads with unread messages, don't show the confirm dialog, delete the threads directly (i.e go straight from step 3 to 5). 

5) "Cancel" to go back to edit mode at step 2, Delete to exit edit mode and show toast:
%num_of_thread_selected deleted [undo button]


We would also need a corresponding item in Message setting for the checkbox in step 4. In Message settings, add a new section with sub-header "Advanced Settings" after WAP Push settings and above SIM Settings:

Ask before delete [Toggle] (default ON)
Enable to remind me when deleting threads that contains unread messages.
Flags: needinfo?(jelee)
This works for me, thanks Jenny !

This will need modifications in both the Settings app and the SMS app then. We'll use a setting from mozSettings for this.
Whiteboard: ux-most-wanted-nov2014 → ux-most-wanted-nov2014 [sms-papercuts]
Mentor: felash
Whiteboard: ux-most-wanted-nov2014 [sms-papercuts] → ux-most-wanted-nov2014 [sms-papercuts] (lang=js]
Whiteboard: ux-most-wanted-nov2014 [sms-papercuts] (lang=js] → ux-most-wanted-nov2014 [sms-papercuts][lang=js]
Flags: needinfo?(rishav006)
Flags: needinfo?(rishav006) → needinfo?
Flags: needinfo?
Assignee: nobody → yvtheja
Hi Julien,

A Small doubt :)

Thank you.
Attachment #8616535 - Flags: feedback?(felash)
Comment on attachment 8616535 [details] [review]
Pull request for bug 864790

Answered on github and IRC. Thanks !
Attachment #8616535 - Flags: feedback?(felash)
(In reply to Jenny Lee from comment #14)
> Hi Julien and Kumar, 
> 
> See below for preferred flow, let me know if you have any question. Thanks!
> 
> 1) Go to Select threads from menu.
> 2) Select thread(s), at least one thread contains unread message. 
> 3) Select delete.
> 4) If and only if at step 2, threads containing unread message are selected,
> show confirm dialog:
> 
> Messages
> --------
> The thread(s) you selected contains unread message(s). Delete anyway? 
> [Checkbox] Don't show this message again. 
> 
> Cancel / Delete 

Hi jenny,

We didn't use this type of dialog till now i messages app. We have one in system app(https://github.com/mozilla-b2g/gaia/blob/master/apps/system/index.html#L332) but I couldn't identify which exact style they are using for label. Could you please give the font size and other styles need for the checkbox label.

Thank you.
Hi Julien, redirecting to you :)

Thank you :)
Flags: needinfo?(felash)
Vishnu,

I had a look in the system app, and I could find some occurences of a checkbox.

To have one of them, you can use these steps:
1. git clone https://github.com/julienw/capture
2. install the app on your device using WebIDE or install-to-adb.
3. launch the app on the device.
=> you'll get a permission prompt with a checkbox.

This checkbox uses the web component gaia-checkbox. I think we should use it as well, and hopefully we'll inherit all the styles if we use it.

Sorry it's not easier than this :/
Flags: needinfo?(felash)
Hi Julien,

If we implement the Jenny's proposal, we can't accommodate the checkbox in the 'undo toast' in the future. I think we have to think of a new UX for this bug.

Thank you.
Flags: needinfo?(felash)
Flags: needinfo?(felash) → needinfo?(mochen)
Hi Morpheus,
To be more clear:
In comment 14, that is the Jenny Proposal.
But We are not gonna have undo feature in near future, So it would be great if you give new UX for this.

Thanks
Hi Kumar and Vishnu,

Since we can't provide "undo", I would suggest providing two confirm boxes to prevent any risk, which is Julien's initial proposal. Here is the flow:

1) Go to Select threads from menu.
2) Select thread(s), at least one thread contains unread message. 
3) Select delete.
4) If and only if at step 2, threads containing unread message are selected, show confirm dialog:

Messages
--------
Delete selected message thread?
Cancel / Delete

5) Delete to pop up another confirm box, show dialog:

Messages
--------
The thread(s) you selected contains unread message(s). Delete anyway? 
[Checkbox] Don't show this message again. 

Cancel / Delete 

*The use of plural noun depends on the number of thread user selected and the number of unread message*
*If user checks "Don't show this message again", next time when user tries to delete threads with unread messages, don't show the confirm dialog, delete the threads directly (i.e go straight from step 3 to 5). 

5) "Cancel" to go back to edit mode at step 2, Delete to exit edit mode and show toast:
%num_of_thread_selected deleted


Let me know if any questions,
thanks.
Flags: needinfo?(mochen)
Hi Morpheus,
I think, two dialog box is bit annoying from user's perspective. Comparing to android, our dialog box takes hole screen.
In Jenny Proposal, there was only one Dialog box. 

Just adding my bit from user point of view :)

Thanks
Flags: needinfo?(mochen)
Hi Kumar,

Thanks for your suggestion. I did think about the concern you raise.

The main reason I use two dialog boxes is because user might easily skip the message on the first one since it's a default message, so the second dialog makes sure user notices this warning message. Besides, deleting a thread with unread messages is not a common use case, so take annoyance and warning into consideration, I chose latter. Also, the "Don't show again" check box is another way to minimize the annoyance. If you think it's no need to show two dialogs, we can definitely show only deleting and warning massage within one dialog. What do you think?
Flags: needinfo?(mochen)
I think the flow you mentioned is good. Because we will be anyway removing the first confirmation box with the toast and by then we will be having only one confirmation box which is actually needed to alert the user that he is trying to unread messages. If we add only text in the confirmation box
1> Maximum user's will skill reading the confirmation box thinking it is a regular confirmation box for deletion.
2> When we implement the toast thing, there also we need to add text in the toast and I think we can't accommodate such a lengthy text and also which I believe isn't proper way to alert the user.

But at the end, it's Julien call ! :P

Thank you.
Flags: needinfo?(felash)
About UX stuff, it's actually Morpheus' call :)

So let's go with the 2-dialogs proposal.


Morpheus, last question for you though. If the user decided to not show the "there are unread messages" dialog, do you think we should display the information in the first "are you sure to delete" dialog in that case ?
Flags: needinfo?(felash) → needinfo?(mochen)
(In reply to Julien Wajsberg [:julienw] from comment #27)
> About UX stuff, it's actually Morpheus' call :)
> 
> So let's go with the 2-dialogs proposal.
> 
> 
> Morpheus, last question for you though. If the user decided to not show the
> "there are unread messages" dialog, do you think we should display the
> information in the first "are you sure to delete" dialog in that case ?

Since user has decided to not show the warning message and user can change it back in Message settings anytime, I suggest only displaying "Delete selected message thread?" in the first dialog.
Flags: needinfo?(mochen)
ux-b2g: 2.2 → ---
Whiteboard: ux-most-wanted-nov2014 [sms-papercuts][lang=js] → ux-tracking [sms-papercuts][lang=js]
Vishnu, do you remember about this bug ? ;)
Flags: needinfo?(yvtheja)
(In reply to Julien Wajsberg [:julienw] (PTO -> 2016) from comment #29)
> Vishnu, do you remember about this bug ? ;)

Sorry, I forgot working this while working on other bug. I would finish the call button bug and will start working on this. Until then, I will reset it to nobody so that anyone interested can take over.
Assignee: yvtheja → nobody
Flags: needinfo?(yvtheja)
Mass closing of Gaia::SMS bugs. End of an era :(
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
Mass closing of Gaia::SMS bugs. End of an era :(
You need to log in before you can comment on or make changes to this bug.