Signal-desktop: Inbox/Archive

Created on 28 Nov 2015  路  17Comments  路  Source: signalapp/Signal-Desktop

Feature Request

Most helpful comment

Design

I think it makes sense to divide it the same way as the mobile clients do:

  1. The default view is the inbox. It shows only conversations containing unarchived messages.
  2. The search is analogous to 'compose'. It should show all contacts and groups, whether you have a history or not.
  3. The archive shows only archived messages.

There's a bunch of good reasons to do it this way. I think the most compelling is the mockups, so I'll shut up and get to that. Here's a design for how the left column would look like in the three states from above:

archive_sketches2

And here's the full list of changes needed to get there, minus coloring, which I didn't put too much thought into.

  1. Split the contacts list out from the inbox

    • [ ] Stop showing contacts with no history in the inbox.

    • [ ] When the search field gains focus, show the contacts list, in alphabetical order.



      • [ ] When the search field loses focus, if it is empty, return to showing the inbox.



    • [ ] When the search field contains text, show the contacts list, filtered on that text (regardless of focus).

    • [ ] When the search field contains text OR has focus, always show the X.



      • [ ] When the user clicks on the X, clear the search field AND unfocus it.





        • This way if I click to search, then change my mind, I don't have to click over into the conversation view just to get back to the inbox.






  2. Add an archive view

    • Android theme:



      • [ ] Add a button to the right of the text field with the archive icon.





        • [ ] When the search field is focused, it disappears





      • [ ] Clicking the archive button shows the archive.


      • [ ] Clicking the back arrow returns to the inbox.


      • [ ] Add an underline to the search field. This mirrors how Android search fields look and provides needed distinction about where the search field ends and where the archive button begins.



    • iOS theme:



      • [ ] Add a section below the search field with two tabs: Inbox and Archive*


      • [ ] Clicking the Inbox and Archive tabs swap between those sections.


      • [ ] When the search field receives focus, the tab section should animate, sliding upwards, "underneath" the search field.





        • It stays gone for as long as the search is active. When the search is cleared (with the X or by deleting the search field contents and selecting something else), it slides back down into place.






  3. Allow archiving

    • [ ] Add an Archive messages action to the conversation menu, above the Delete messages action. This archives all messages in the conversation. I don't think we need support for individual message archiving; Android doesn't have it.

*I messed up on the mockup here and am too lazy to fix it. The padding on the labels should mimic MacOS Sierra's notification center:

macos-sierra-weather-remove-city

Comments:

  • There's a lot of potential for animations here. I think we should use them sparingly. They're high effort to craft and I'm not convinced they will actually make the experience any smoother (too-flashy animations get really old, really quickly). The reason the tab bar should animate when others shouldn't is because that's only time the layout changes.
  • I have an earlier version that's basically the same functionality with a different layout: both android and iOS use tabs, which are tacked on underneath the search bar. I like this version better because

    • Three rows of stuff at the top with the Android layout starts to cut into the vertical space for displaying contacts, if the Signal window is made smaller.

    • This makes the two themes have a more similar layout (two rows), so it will be easier to design future changes to other parts of the UI.

  • I know, there's no search in the archive view. I did this because

    • I posit that search is not very important on this screen. If I know what I'm looking for, I'm just going to search for it in the first place. The primary function of the archive is to allow us to keep the inbox clean, without deleting old messages. The only reason I'd go in there is if I know the date of a conversation but not the name -- in which case search isn't going to help me anyway.

    • It would mangle the flow of switching between the three views.

    • It's possible to avoid this, but it would require a bunch of animations. Why bother, if search turns out not to be important in this location anyway?


I think I was pretty dang thorough, but if I missed anything or you see anything to improve, constructive criticism is welcomed.

All 17 comments

Synced? :grin:

How about this? Someone mentioned the use of tabs in #449 and it got me thinking:

Here are some wireframes for UI to replace the existing sidebar + searchbox:

Inbox View

  • This is the default tab that is shown when Signal launches (unless it is the first launch, in which case the other tab is selected to look less "empty")
  • It behaves exactly as the current inbox does, except there is no search bar visible.
  • It will be possible to "archive" a conversation (in context menu / conversation menu), which will remove it from this tab.

All Contacts / Archive View

  • It will now be possible to view all contacts + groups other than just on first startup.
  • The search box should become focussed when switching to this tab.
  • After selecting your first conversation directly following intallation, we can switch to the inbox tab, which will provide a visual cue that indicates the change of context.

Personally, I don't like it. @samlanning
First of all I don't see why the users shouldn't be able to search for a contact while in the inbox view. I don't think the goal is to annoy them. Also, these views are very inconsistent with what is displayed on android.
I think we should keep it simple. An "inbox" and an "archive" views would be fine. Both with the search field. The search field should bring up results regardless of where the conversation is (inbox, archive, or neither if no conversation exists for that group/contact).

As far as I can tell archiving does not exist on the desktop: there's no way to archive there and archiving on the phone has no impact on what's shown on the desktop. Is this correct? Are there any concrete plans to support it?

Getting the ability to archive on Android was a lifesaver. Glad to hear that it is on the roadmap.

@samlanning I agree with @ghost: the problem with that wireframe is that it severely limits the power and usefulness of search, which is the most powerful function for finding conversations (in contrast to mobile, where it's often easier to scroll through a list than open the keyboard to search it).

IMO, if possible, search should always be visible (one click away) and always show a clickable text field in addition to the icon (an icon alone is harder to click, screen space isn't as precious on desktop, and waiting for an animation to play feels bad when you're not also waiting for an on-screen keyboard to open). Basically, the more mousing you have to do before you start typing, the less useful the search is.

I spent some time coming up with a design for this. Posted shortly.

Design

I think it makes sense to divide it the same way as the mobile clients do:

  1. The default view is the inbox. It shows only conversations containing unarchived messages.
  2. The search is analogous to 'compose'. It should show all contacts and groups, whether you have a history or not.
  3. The archive shows only archived messages.

There's a bunch of good reasons to do it this way. I think the most compelling is the mockups, so I'll shut up and get to that. Here's a design for how the left column would look like in the three states from above:

archive_sketches2

And here's the full list of changes needed to get there, minus coloring, which I didn't put too much thought into.

  1. Split the contacts list out from the inbox

    • [ ] Stop showing contacts with no history in the inbox.

    • [ ] When the search field gains focus, show the contacts list, in alphabetical order.



      • [ ] When the search field loses focus, if it is empty, return to showing the inbox.



    • [ ] When the search field contains text, show the contacts list, filtered on that text (regardless of focus).

    • [ ] When the search field contains text OR has focus, always show the X.



      • [ ] When the user clicks on the X, clear the search field AND unfocus it.





        • This way if I click to search, then change my mind, I don't have to click over into the conversation view just to get back to the inbox.






  2. Add an archive view

    • Android theme:



      • [ ] Add a button to the right of the text field with the archive icon.





        • [ ] When the search field is focused, it disappears





      • [ ] Clicking the archive button shows the archive.


      • [ ] Clicking the back arrow returns to the inbox.


      • [ ] Add an underline to the search field. This mirrors how Android search fields look and provides needed distinction about where the search field ends and where the archive button begins.



    • iOS theme:



      • [ ] Add a section below the search field with two tabs: Inbox and Archive*


      • [ ] Clicking the Inbox and Archive tabs swap between those sections.


      • [ ] When the search field receives focus, the tab section should animate, sliding upwards, "underneath" the search field.





        • It stays gone for as long as the search is active. When the search is cleared (with the X or by deleting the search field contents and selecting something else), it slides back down into place.






  3. Allow archiving

    • [ ] Add an Archive messages action to the conversation menu, above the Delete messages action. This archives all messages in the conversation. I don't think we need support for individual message archiving; Android doesn't have it.

*I messed up on the mockup here and am too lazy to fix it. The padding on the labels should mimic MacOS Sierra's notification center:

macos-sierra-weather-remove-city

Comments:

  • There's a lot of potential for animations here. I think we should use them sparingly. They're high effort to craft and I'm not convinced they will actually make the experience any smoother (too-flashy animations get really old, really quickly). The reason the tab bar should animate when others shouldn't is because that's only time the layout changes.
  • I have an earlier version that's basically the same functionality with a different layout: both android and iOS use tabs, which are tacked on underneath the search bar. I like this version better because

    • Three rows of stuff at the top with the Android layout starts to cut into the vertical space for displaying contacts, if the Signal window is made smaller.

    • This makes the two themes have a more similar layout (two rows), so it will be easier to design future changes to other parts of the UI.

  • I know, there's no search in the archive view. I did this because

    • I posit that search is not very important on this screen. If I know what I'm looking for, I'm just going to search for it in the first place. The primary function of the archive is to allow us to keep the inbox clean, without deleting old messages. The only reason I'd go in there is if I know the date of a conversation but not the name -- in which case search isn't going to help me anyway.

    • It would mangle the flow of switching between the three views.

    • It's possible to avoid this, but it would require a bunch of animations. Why bother, if search turns out not to be important in this location anyway?


I think I was pretty dang thorough, but if I missed anything or you see anything to improve, constructive criticism is welcomed.

@liliakai Can I request a status update on this please? Does @smichel17's design fulfill the needed design requirements for this feature?

Hi there, @EricaJoy. @liliakai is OOO for another week or so, so I'll respond. :0)

The design above looks pretty good. As far as timing for this feature, we have a number of other big features on the plan before this one. The earliest I can see us working on this is in October or so.

To help us with that prioritization of fall features, can you tell us a little bit more about why this feature is important to you?

I can tell you why this is important to me. Archiving conversations allows me to use the list of unarchived conversations as a kind of todo list, a list of conversations that I still need to read or reply to. Having this on the phone is nice but I prefer to use my computer, with a real keyboard, when I can. And with Signal this means losing my todo list.

This single missing feature means that I only using Signal with people who demand it. Whenever I have an alternative I will use that alternative.

Archiving conversations allows me to use the list of unarchived conversations as a kind of todo list, a list of conversations that I still need to read or reply to. Having this on the phone is nice but I prefer to use my computer, with a real keyboard, when I can. And with Signal this means losing my todo list.

To clarify, would you expect archiving a conversation on Desktop would also archive that conversation on your linked mobile device (and any other Desktop instances you have)? And vice versa - un/archiving on mobile would change the state on your desktop device.

Is that right?

Yes! Otherwise I don't see the point. Good catch.

FWIW, FB Messenger and Google Hangouts also sync archival state between devices.

When you do begin on this, I'm around to discuss my rationale for the decisions I made in the design above, although I think I was pretty thorough in explaining my reasoning there.

@smichel17 thank you very much for your efforts to outline this feature.

Although I am totally new to the signal desktop project I can imagine that implementing this will take a lot of time.

From the discussion I cannot see what the current state of this is. Maybe you can share some insights?

As for your proposal I would like to add that I would like to see a sidebar which reflects the current state of my mobile app to which I am linking the app to. (Not sure though if the initial state can be synced regarding encryption. In case the messages cannot be synced it would be great to see the contacts and groups.)

Anyway I would like to see at least an empty sidebar with some blank slate text indicating sth. like "Start your first conversation". By clicking this I get a list of contacts and by selecting one I can start writing to the selected contact.

As for starting a new conversation (when there are already 1 or more chats) a "+" (plus) sign next to the search field would be great. Clicking this opens the contact list as described before.

From my perspective this would be a better experience when using the application. To me it does not make that much sense to use the search functionality to get to my contacts list. Please correct me in case I misunderstood your proposal!

Using the search field should result in a list of conversations that match the keywords I was searching for. Either in the contact's name or any of messages written. Search should happen in archived and active conversations.

As I am not sure how far you are in the process I wanted to share some thoughts I have on this topic after using the desktop app on macOS.

Happy to hear your thoughts on this 馃槃

Seems safe to say that archiving for desktop is not coming anytime soon.

Versions 1.23.0 and above now include archiving:

Signal Desktop now supports archiving conversations too. Make today just a little bit better by putting threads off until tomorrow.

https://github.com/signalapp/Signal-Desktop/releases/tag/v1.23.0

This is a nice improvement, but are there plans to sync the archival state between devices? It's a bummer to have to archive the same conversations on my phone and again on the desktop.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gesus14 picture gesus14  路  3Comments

shaaati picture shaaati  路  3Comments

TarkanY picture TarkanY  路  3Comments

ProactiveServices picture ProactiveServices  路  3Comments

hanzei picture hanzei  路  3Comments