Feature flags
‘Alarms/SiteMonitor/Messages’ - controls visibility of Chat interface. When off, it should not be visible in Site Monitor and mobile app.
‘Alarms/SiteMonitor/ChatMessagesNewestOnTop’ - controls order of messages in Site Monitor. When on, newest messages should be displayed on top of the list, when off – on bottom.
Preferences
‘Unpark event on new Guard Message’ - when on, message from guard for parked event should push it back into event queue.
Overall chat interface availability/visibility
Site Monitor: If ‘Alarms/SiteMonitor/Messages’ feature is on, ‘Messages’ queue should be present in site monitor interface.
Mobile app: If ‘Alarms/SiteMonitor/Messages’ feature is on and guard dispatched and en route to event location chat interface should be available. Upon arrival to location it should be hidden and replaced with interface for adding notes.
Interface elements
- Initials: round colored ‘avatar’ circle displaying message author initials.
- Author: author username or callsign.
- Message type icon: laptop for messages sent by operators from Site Monitor, mobile phone for messages sent by guards from mobile app.
- Creation time: displays, how much time ago message was created.
- Message: message text.
- Attachment icon: if message has attachment, attachment icon should be displayed in it. Clicking/tapping it should download message attachment.
- New messages counter: display number of unread messages.
- Message entry: area/input for entering new message text.
Mobile only
- Mobile send message/upload attachment button: if message entry is empty, it should have camera icon. When tapped, should display interface for selecting existing photo/taking new one. After selection confirmation message with predefined text ‘{Guard Callsign} has uploaded a file’ and selected file as attachment should be sent. If message entry has some text, button should have right arrow icon and tapping it should send text in message entry as new message.
- Collapsed chat icon: should be visible when ‘ Alarms/SiteMonitor/Messages’ feature enabled and dispatched guard is enroute to event. Tapping on it should restore chat interface, displaying messages for event.
- Chat collapse icon: tapping it should collapse chat interface.
Site Monitor only
- Site Monitor attachment button: when clicked will open file select dialog. After selecting file, will turn background color into blue indicating that attachment is selected.
- Send message button: send text in message entry as new message alongside with selected attachment if present.
Messages order in list
In mobile app it follows generic messaging aps UX and newest messages always displayed at bottom. In Site Monitor it is controlled by ‘Alarms/SiteMonitor/ChatMessagesNewestOnTop’ feature toggle.
Messages grouping
In order to preserve limited screen estate (important for mobile app) some messages are grouped into blocks of messages.
If consequent set of messages are from the same author and creation time difference between consequent pair(s) of messages is less than one minute, they should be grouped into block, sharing common header with author/message type/creation time info.
Own/non-own messages display
In chat interface your own messages will have blue background and right alignment. Messages from other authors would be aligned to the left, have gray background and initials.
Message list scrolling behavior
Basically it has two modes: ‘stick to particular message’ and ‘stick to latest message’.
Stick to latest message
When scrolled to very bottom of messages list in mobile app or bottom/top (depending on ‘Alarms/SiteMonitor/ChatMessagesNewestOnTop’ toggle) in Site Monitor, messages list set into ‘stick to latest’ mode.
In this mode upon receiving new message(s) list will be automatically scrolled to bottom in mobile app or bottom/top depending on feature toggle in Site Monitor thus making latest messages(s) always visible.
Side effects:
Upon starting/joining chat with no messages or just a few, all fitting into list, user will be automatically set into this mode. As result upon receiving message which enables scrolling, message list will be scrolled to latest.
New messages counter in this mode always reset to zero (hidden)
Stick to particular message
When scrolled to some message, user want to focus on (scroll position not at the very bottom in mobile app or not very top/bottom depending on feat. toggle in Site Monitor), list set into ‘stick to particular’ mode.
In this mode upon receiving new message(s) they are added to the end of the list, but list position remains unchanged. In other words – when reading particular message(s) and new one(s) are received, the one you are reading should not change position on screen, distracting you from reading it. Upon receiving new messages new message counter incremented by number of messages received.
Collapsing/restoring hiding/unhiding chat interface
When chat interface is hidden/collapsed by user, it should store it's scroll position, doesn’t matter is it very end of message list or not.
When chat is hidden and new message(s) received, new messages counter should be incremented by number of received message(s).
When chat interface restored/displayed, list should be restored at exact position where it was left off.
If chat was collapsed/hidden at the very end of list (stick to last) and no new messages was received when it is restored, it will be restored in ‘stick to last’ mode.
Push notifications
When new message sent into chat, all dispatched en route guards (having chat interface available) should receive push notification with it.
If message is sent by guard, list of recipients would be all dispatched en route guards except the message author.
Comments
0 comments
Please sign in to leave a comment.