Commit Graph

7232 Commits

Author SHA1 Message Date
lilia a95b6165f4 Ellipsize long conversation window titles
Fixes #304
2015-07-08 14:28:09 -07:00
adambar 476eb54db1 Maintain bottom-most scroll position when resizing conversation area.
Closes #278
2015-07-08 13:46:48 -07:00
lilia 1a82a12a30 Use input instead of keyup/change events
In lieu of a click event, the change event was being fired when clicking
out of the search input. The input event seems to be what we actually want.

Fixes #273
2015-07-08 13:06:45 -07:00
lilia cfc3b8e6a5 Fix phantom outgoing messages
This bug was caused by a race between indexeddb requests and sending
messages. Order of events to repro was roughly:

1. send async idb request for current message list
2. add new message(s)
3. idb request returns with now incomplete message list
4. message collection gets reset to list from 3, removing messages
added in 2, but not removing their phantom views/dom elements. (bug)
5. send another idb request for current message list
6. idb request returns bearing all messages including those from 2.
7. messages from 2 are added and rendered a second time.

The fix was simply to not remove messages in 4, which means we reuse the
original message model object rather than recreating it in 7.

Fixes #243

// FREEBIE
2015-07-08 11:57:16 -07:00
lilia fa4022a4e3 Invert pending/sent model 2015-07-07 23:03:56 -07:00
lilia a66195a98f Fix messages stuck in pending state
The unset function, and the series of events/callbacks triggered by its
use, are not as similar to the set/save functions as previously
anticipated, leading to flux in the state of the 'pending' attribute.

Fixes #283

// FREEBIE
2015-07-07 16:15:23 -07:00
lilia 3cbe4f1f46 remove unused argument 2015-07-07 16:03:12 -07:00
lilia 8745424d3a Fix outgoing identity key conflict handling
// FREEBIE
2015-07-06 15:11:35 -07:00
lilia 9f021a9d7f Update notification code to new avatar format 2015-07-06 12:58:24 -07:00
lilia 66ae3689c1 Fix decrypt error handling
This rejection-handler was resolving its promise rather than allowing
the rejection to bubble up.
2015-07-06 12:46:32 -07:00
lilia f8ae5556d9 Fix standalone registration 2015-07-06 12:45:09 -07:00
lilia 6a98fc8278 Reload contacts when resetting a recipients input
Fixes #272

// FREEBIE
2015-07-06 12:13:49 -07:00
lilia f5f4c128f9 Fix tests, let templating handle html escaping
Note: as a Chrome app, we're also protected from xss by the content
security policy.

// FREEBIE
2015-07-04 23:08:25 -07:00
adambar fcc873ffca Trim the message before sending - disable sending whitespace characters only 2015-07-03 21:53:45 +02:00
adambar c20c59add0 Include Ctrl+Enter as one the shortcuts that insert line break instead of submitting the message 2015-07-03 13:49:01 +02:00
adambar 86f7b7adf5 Allow line breaks in messages. Closes issue #291
Line breaks can now be insterted into message box using Shift+Enter or Alt+Enter. Messages with new lines are properly displayed in the conversation view (but only there, to keep inbox clean). The template was modified to allow HTML, but the message itself is sanitized before new line handling is run.
2015-07-02 23:02:27 +02:00
adambar 52857f09ea Fix for conversation & inbox windows closing callbacks never called.
As discussed in similar issue there: https://github.com/GoogleChrome/chromedeveditor/issues/1023 - it is not possible to add onClosed event listener on an 'abstract' current window property, it needs to be set on the particular window instance instead.

Before that change, the clean up function was never actually called, because the listener was never properly attached. That was probably the reason of existence for "panel isn't actually open ... and so we try again." code that was executed if the previous window wasn't cleaned up properly (so actually every time). This code is no longer needed, I guess, as the windows are now cleaned up properly.
2015-07-01 22:28:06 +02:00
McLoo 1b8071f0bb Tweak app icons a bit
//FREEBIE
2015-06-29 14:47:45 +02:00
lilia 90fe82a0c0 Fixes #286 Allow selection of message text
// FREEBIE
2015-06-26 16:16:13 -07:00
lilia 6aa36a98aa Place message body after attachments
Fixes #287
2015-06-26 16:09:24 -07:00
lilia 5242108e15 Fix group update avatar handling
The avatar handler was being added to the list of promises too late,
so we were storing the raw avatar protobuf (Long id, bytes key) rather
than the downloaded/decrypted attachment data.

Fixes #280
2015-06-26 12:23:57 -07:00
lilia 5e6145aa46 Mark conversation read on window focus event
Fixes #282

// FREEBIE
2015-06-26 11:53:00 -07:00
lilia 29360fea5c Fixes #275 default group image 2015-06-26 11:30:54 -07:00
lilia 9441fa98fd Add short_name manifest attribute 2015-06-26 11:26:23 -07:00
lilia feb5e5b068 Display gray # instead of colored + for no-name contacts
For consistency with android.
2015-06-25 13:47:46 -07:00
lilia 4c40861728 Fix reinstalls
Delay saving of new account info until we confirm with the server.
Explicitly delete old account info beforehand.

// FREEBIE
2015-06-25 13:24:32 -07:00
lilia db31835f68 Handle group sync for existing groups
// FREEBIE
2015-06-25 13:24:32 -07:00
lilia 5925c2fe84 Support for group sync
Protocol and handling is all analogous to contact sync: Multiple
GroupDetails structs are packed into a single attachment blob and parsed
on our end. We don't display the synced groups in the conversation list
until a new message is sent to one of them.

// FREEBIE
2015-06-25 13:24:32 -07:00
lilia 3dd8056487 Add error dialog for too many devices 2015-06-25 13:24:31 -07:00
lilia f126e3b21b Work on auth error handling / reinstall 2015-06-25 13:24:31 -07:00
lilia ef8a977f38 Sort contacts by name ignoring case 2015-06-25 13:24:31 -07:00
lilia 2f935dfd5e Add contact sync request protocol 2015-06-25 13:24:31 -07:00
lilia f32ff58953 Add support for device name 2015-06-25 13:24:30 -07:00
lilia 9f1af24b9c Remove old curve25519 build task 2015-06-24 13:40:45 -07:00
lilia 7d568b5092 Fixup auto-expand
* Fix a css bug preventing bottom bar from sticking to the bottom.
* Resize discussion container as a function of the overall window
  height. The previous difference-based method gives the wrong result
  when the window height changes but the bottom-bar height stays the
  same.

// FREEBIE
2015-06-24 12:10:53 -07:00
adambar b80706089c Fix for potential memory leaks 2015-06-23 22:46:27 +02:00
adambar 9c563cf080 Fix for message box auto-sizing behavior on resize; menu z-index fix 2015-06-23 22:46:27 +02:00
adambar da1abd75bf Remove message textarea resize handle; fix resizing after submit 2015-06-23 22:46:06 +02:00
adambar 07ac0ae9cc 239 Auto-expand message area when typing 2015-06-23 22:45:41 +02:00
lilia 1696898112 Fix avatars in conversation view
// FREEBIE
2015-06-19 16:22:57 -07:00
lilia 9a4a91b5b5 Fix avatar test 2015-06-19 12:03:37 -07:00
lilia e26b9bfbc7 Default avatar support
Fixes #264

Implement the equivalent of java's String.hashCode on the conversation model.
Change avatar template and attributes. Use css classes for colors.
2015-06-19 11:50:18 -07:00
adambar ada8f77930 Improve behaviors around long messages display
On the conversations list, if the last message is too long, cut it with ellipsis (...) instead of going out of the screen.
On the single conversation view, if the message in the bubble contains a word that is longer than a bubble, break it anyway instead of going out of the screen.
2015-06-18 14:14:28 -07:00
lilia 8dc4e34aaf Bug and test fixes for contact sync
Closes #135

// FREEBIE
2015-06-18 13:48:32 -07:00
lilia 6a5f923cac Don't set attributes redundantly
By the time we get here, these should have already been set in
background.js.

// FREEBIE
2015-06-17 12:29:40 -07:00
lilia b0603bc91a Wrap message receiver for minimum api exposure
Initializing a message receiver opens the socket and starts listening
right away rather than requiring a separate call to connect. The only
other publicly accessible method is to query the socket status.

// FREEBIE
2015-06-17 12:29:40 -07:00
lilia 18433419c9 PushMessageContent is now DataMessage 2015-06-17 12:29:40 -07:00
lilia 316838cfe9 Add tests and bug fixes for ContactBuffer 2015-06-17 12:29:40 -07:00
lilia 290283f810 Conversations do not require timestamps
Synced contacts will not include timestamps
2015-06-17 12:29:40 -07:00
lilia 6d9854f456 Remove plaintext message test case
Support for the PLAINTEXT message type is not present in the latest
protobuf definitions. Leaving it out for now since we don't have any use
case for it currently.
2015-06-17 12:29:39 -07:00