Commit Graph

203 Commits (4ea457a01cd18ef4f6ebab81e81eb65730e4c5c8)

Author SHA1 Message Date
Scott Nonnenberg 305bd6b3b8 App loading screen: show messages processed so far
Also, show the same loading screen on index.js before we've bootstrapped
the app.

FREEBIE
8 years ago
Scott Nonnenberg 53f2bfbb57 Animated loading screens on startup and first conversation load
FREEBIE
8 years ago
Scott Nonnenberg b985228160 Last seen indicator/scroll down button - defensive removal
FREEBIE
8 years ago
Scott Nonnenberg e6859a3684 Ensure that promises always resolve, or that rejections are okay 8 years ago
Scott Nonnenberg 5da324103a Throttle calls to getProfile when opening conversation
We don't want to throttle other calls to getProfile, so we localize this
to the fetch we do when we first open a conversation.

FREEBIE
8 years ago
Scott Nonnenberg 80a2a01e37 Remove jitter on verifying/unverifying safety number
On every click, even when sub-panes were open, we were calling
markRead(), which would save the conversation model with the new
unreadCount. The KeyVerificationPanelView was wired up to the change
event on conversation, so it would render with the results of that
update, then finally the user's intended update.

FREEBIE
8 years ago
Scott Nonnenberg 25243ad9de Send warning: Show single problematic group member, not group name
FREEBIE
8 years ago
Scott Nonnenberg 7ab20f09cc Fix focus issues with identity key send view
Tabbing right after entering the view would cause everythign to go crazy
as focus went back to the pane you were just on. This change both sets
the proper focus on load of that view (on the cancel button) and hides
other panes when they aren't active, only making them visible again when
they are once again the 'top' pane.

FREEBIE
8 years ago
Scott Nonnenberg 12914307f1 Improve experience when discovering identity key error on send
New experience in the Message Detail view when outgoing identity key
errors happen, matching the Android View.

'View' button is only shown on outgoing key errors right now.

When a contact with an outgoing identity key error is clicked, they are
taken to a view like the popup that comes up on Android: an explanation
of what happened and three options: 'Show Safety Number', 'Send Anyway',
and 'Cancel'

Contacts are now sorted alphabetically, with the set of contacts with
errors coming before the rest.

FREEBIE
8 years ago
Scott Nonnenberg 5b46ef3562 Show last seen indicator for keychange/verification notifications
FREEBIE
8 years ago
Scott Nonnenberg 1fedc75e5d Handle unverified length of zero
This can happen with unknown groups, where we don't know the list of
members but we're receiving messages. It's generally not a good
experience, but we shouldn't crash.

FREEBIE
8 years ago
Scott Nonnenberg 16433d661a Show call to action on group member list when verifying
FREEBIE
8 years ago
Scott Nonnenberg 1d7cbc14fd Fix a couple bind()) issues when getting verified state
FREEBIE
8 years ago
Scott Nonnenberg b0dbecb4e2 Check trust store for identity key information on every new message
It's debounced so it doesn't go too crazy.

FREEBIE
8 years ago
Scott Nonnenberg 782c484680 Check trust store for latest identity key info before sending
We definitely want the latest information from our local database before
attempting to send.

FREEBIE
8 years ago
Scott Nonnenberg fc39241003 Ensure that we pull verified state only after getting profiles
FREEBIE
8 years ago
Scott Nonnenberg 1cf9289b1a Add items to conversation history when user verifies/unverifies
FREEBIE
8 years ago
Scott Nonnenberg 8264f3ba33 Make the term 'Verified' fully localizable
FREEBIE
8 years ago
Scott Nonnenberg 8d29cb9830 Prevent access to Safety Number when talking to yourself
FREEBIE
8 years ago
Scott Nonnenberg 9204188aa3 A bit of cleanup after some early code review
FREEBIE
8 years ago
Scott Nonnenberg 2955c36b3e Confirmation dialog: Make keyboard-accessible: escape to cancel
And proper tab order. Then some more work to re-focus on the message
composition field after the dialog shows up and steals focus.

FREEBIE
8 years ago
Scott Nonnenberg 243cbd8123 Confirmaton on send, banner when 'unverified'
Not yet using the new APIs, but ready to. Still to do:
- Send sync messages on trust decisions
- Respond to received trust decision sync messages
- Show trust decisions in the conversation history
- In that rare situation where a sent message ends up with a key error
  make it easy to retry the send.

FREEBIE
8 years ago
Scott Nonnenberg bedf10056b Support for group-member verifications via second-level panel
Also:
- All the necessary wire-up to update things in real time. If you have
a safety number page up via a group member view as well as via a 1:1
conversation with that contact, they'll both be updated as the
underlying model changes. Similarly, the overall group will update
in real-time as members change.
- A bit of special-casing for yourself in a group conversation - you're
shown as 'me' and are not clickable, where normally that would take you
to the Safety Number screen for that contact. You are also not included
in the trust calculations for a given group.

FREEBIE
8 years ago
Scott Nonnenberg ae3587f05e Move all instances of 'verify identity' to 'show identity'
As discussed in standup this morning - only the act of verifying or a
statement about current status should use that word 'verify.'

FREEBIE
8 years ago
lilia f095a1583e Fetch profiles whenever conversations are opened
For a group, fetch everyone's profile.

// FREEBIE
8 years ago
Scott Nonnenberg f602ac462f A little cleanup in ConversationView.resetLastSeenIndicator
FREEBIE
8 years ago
Ikarulus 1021f835fe changes due to feedback 8 years ago
Ikarulus 068cf5092c fix typo 8 years ago
Ikarulus ec3278ca3a add message length warning for android clients 8 years ago
Scott Nonnenberg da8d49b5ed ConversationView.markRead: Mark all messages read when at bottom
To handle the same 'not quite at the bottom' case that our 30px buffer
gives us for marking messages read, we use the same atBottom() method to
determine whether we should mark everything unread. Saves the effort and
potential missed messages (due to partial pixels, etc.).

FREEBIE
8 years ago
Scott Nonnenberg 0c2c36c11a loadMoreMessages: Fix broken reference to this.view.outerHeight
:0/

FREEBIE
8 years ago
Scott Nonnenberg ec22445f75 Bulletproofing of markRead and findNewestVisibleUnread
FREEBIE
8 years ago
Scott Nonnenberg 1775e97bcd Add comment and fine-tune last-seen indicator when not focused
FREEBIE
8 years ago
Scott Nonnenberg 672a517b73 Preserve lastSeenIndicator location when not focused
Also, a couple name changes of ConversationView methods to better
reflect what they do. update -> reset, since the method is destructive.

FREEBIE
8 years ago
Scott Nonnenberg 944ae296eb Prevent 'mark read on scroll' during fetches
FREEBIE
8 years ago
Scott Nonnenberg b60b20bde4 Mark messages read only when visible, on receipt, focus, scroll
- Only mark messages read when scrolling if in focus and visible
- Remove last seen indicator when scrolling to the bottom with scroll
  down button
- Update last seen indicator when we don't already have one and we're
  scrolled up.

FREEBIE
8 years ago
Scott Nonnenberg 9a0a87ab40 Last seen indicator: dismissed only on open and send
It can be moved if you're not scrolled to the bottom of of the window
or the window doesn't have focus when a new message comes in. Other than
that, it marches up the window until you close and reopen the
conversation, or send a message.

Note that we do NOT mark messages as read if they come in when you are
scrolled up. But we do mark the entire conversation as read if you
switch away from the app and back.

FREEBIE
8 years ago
Scott Nonnenberg 0b6d5de753 Update the scroll position when 'fetch more messages' is complete
FREEBIE
8 years ago
Scott Nonnenberg 84397a2ef4 20px at bottom of conversation considered 'at the bottom'
So users who are 'close enough' at the bottom of the conversation won't
get marooned in history.

FREEBIE
8 years ago
Scott Nonnenberg 09791ab7d9 Make last seen indicator more stable, with less forced removal
FREEBIE
8 years ago
Scott Nonnenberg c3dc9732ef Fix: Don't scroll to last seen indicator on focus
FREEBIE
8 years ago
Scott Nonnenberg 9de384f3b8 Reset last seen indicator timing on focus of window
FREEBIE
8 years ago
Scott Nonnenberg 01918049b4 Keep last seen indicator around for five seconds
Helps calm the user experience a little more, makes it easier to
understand what's happening when messages are coming in quickly.

FREEBIE
8 years ago
Scott Nonnenberg 4e9e811d12 Last seen indicator: Keep scroll position when window loses focus
FREEBIE
8 years ago
Scott Nonnenberg fdf04f6229 Ensure that we never show last seen indicator if count is zero
FREEBIE
8 years ago
Scott Nonnenberg e023c58883 Update last seen indicator even if window doesn't have focus
FREEBIE
8 years ago
lilia 176339ffe6 Add log to see if we ever fetch while fetching
// FREEBIE
8 years ago
lilia 017bb56cca Fix some corner casese with last seen indicator
* Remove increment behavior
* Dismiss when new messages arrive but the window is focused
* Update the indicator when window becomes focused.

// FREEBIE
8 years ago
Scott Nonnenberg bb468e7b01 Wait for scroll before deciding whether to add scroll down button
FREEBIE
8 years ago
Scott Nonnenberg 8b4402e8a5 Only show scroll down button if we're not at bottom of convo
FREEBIE
8 years ago