lilia
b385b6e48e
Update libsignal-protocol
...
SessionBuilder / SessionRecord refactor.
// FREEBIE
2016-05-04 00:05:37 -07:00
lilia
e659104cbf
Add isTrustedIdentity to SignalProtocolStore
...
Adds a new required storage method for the protocol library.
// FREEBIE
2016-05-03 23:58:57 -07:00
lilia
7dcaf721ca
Add keepalive logging
...
// FREEBIE
2016-04-28 11:27:15 -07:00
lilia
70fe14e91b
Fix reference errors in isStringable
...
// FREEBIE
2016-04-26 15:15:28 -07:00
lilia
9a1a3bdf64
Rename axolotl to libsignal
...
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
1d60dc38fb
Rename axolotl storage
...
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
ee3bc11e3c
Rename axolotlInstance
...
// FREEBIE
2016-04-22 13:32:19 -07:00
lilia
0fe3497d0e
Update libsignal-protocol
...
Remove remaining refs to axolotl from lsp.
// FREEBIE
2016-04-22 13:29:31 -07:00
lilia
4169336776
Update libsignal protobuf package name
...
// FREEBIE
2016-04-21 19:30:34 -07:00
lilia
c1e1dd97ba
Change libsignal-protocol filenames
...
// FREEBIE
2016-04-21 18:42:43 -07:00
lilia
b1d370755a
Rename AxolotlStore
...
// FREEBIE
2016-04-21 18:36:17 -07:00
lilia
1fe5d63015
Update protocol libs
...
Rename storage functions
// FREEBIE
2016-04-21 18:36:16 -07:00
lilia
d5dfffd9da
Darken the scrollbar on hover
...
// FREEBIE
2016-04-21 12:06:40 -07:00
lilia
7b29a567b5
More consistent timestamps
...
* Apply the same rounding to in message bubbles and conversation list.
Also make them consistent with Android's relative times. Fixes #682
* Show full timestamps when hovering on relative time
* Compute timestamp update delays more precisely:
Set timestamps to self-update as soon as they are able to change
rather than a fixed time since the last update.
* Refactor for customizable/localizable relative times
* Update timestamp tests
* Log timestamp update intervals to help debug #460
2016-04-21 12:06:39 -07:00
lilia
dd7d72a77d
i18n 'Media message'
...
Fixes #736
// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
21bfb61b7a
Maintain scroll position when textarea resizes
...
Fixes #770
// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
3ac7552d2f
Fix errant change event handler from firing
...
A change in the text field was firing the previewImages handler.
// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
172d843368
Always update lastMessage on incoming messages
...
Fixes #742
// FREEBIE
2016-04-18 19:15:35 -07:00
lilia
6a928e3377
Fix reference error in MessageReceiver from fe82e4
...
Fix a reference error when resolving a key conflict on an incoming end
session message. See Signal-Android/5438.
// FREEBIE
2016-04-18 16:01:46 -07:00
lilia
47320fbbc5
Fix file input bug introduced in 28c602a
...
Fix bug where clicking the attachment button to select a file would
immediately send any text already entered into the message input.
// FREEBIE
2016-04-15 14:40:40 -07:00
lilia
72dd93aa02
Clear window attention if all messages are marked read
...
Fixes #758
// FREEBIE
2016-04-14 11:57:56 -07:00
lilia
0cd7f84a05
Refactor read state tracking
...
Adds support for handling early arriving read receipts.
// FREEBIE
2016-04-14 11:57:52 -07:00
lilia
d1e9534542
Refactor delivery receipt tracking
...
Move code for matching receipts to messages (and vice versa) to its own
file.
// FREEBIE
2016-04-13 13:57:56 -07:00
lilia
18012688ea
Log unread message timestamps
...
// FREEBIE
2016-04-13 13:57:55 -07:00
lilia
bb2868f1ec
Debounce updates to notifications and other events
...
Wait for one second of silence before displaying new notifications,
updating the unread count and conversation list previews.
Fixes #470
2016-04-11 14:55:38 -07:00
lilia
1f4587795e
Add link to github on debug log
...
// FREEBIE
2016-04-09 20:55:21 -07:00
lilia
f3de290f7c
Make debug log link focusable/selectable
...
Add button to open in a new tab. Stye as input group.
// FREEBIE
2016-04-09 20:53:39 -07:00
2-4601
e874b61839
Fix typo of quality argument in image compression
...
The quality value should be a float in the range 0.0 to 1.0.
Other values (e.g. 50) are discarded silently and a default is used.
Fixes #713
// FREEBIE
2016-04-09 14:17:47 -07:00
lilia
a5ec2321fd
Use helper function
...
// FREEBIE
2016-04-09 00:16:44 -07:00
lilia
2f90645142
Break up long line
...
// FREEBIE
2016-04-09 00:16:21 -07:00
lilia
2506b2115d
Log when fetching messages
...
// FREEBIE
2016-04-08 15:41:46 -07:00
lilia
2d6d2a92b9
Update libaxolotl
...
// FREEBIE
2016-04-06 17:33:06 -07:00
lilia
0f4f00ff4e
Fix read sync on duplicate messages
...
In the case of a double send (same message encrypted and sent twice due
to key conflict bug), we would mark the first instance read twice rather
than marking both instances read. Fix by searching for matching messages
that have not yet been marked read.
// FREEBIE
2016-04-04 16:14:15 -07:00
lilia
9aa429e18a
Add frontend support for expiring releases
...
When a release expires, it gets a persistent banner notification to
upgrade, and an ephemeral toast warning when trying to send a message.
// FREEBIE
2016-04-03 21:11:50 -07:00
lilia
c442a02cb6
Add build support for expiring old releases
...
Builds expire after 90 days.
2016-04-03 20:55:53 -07:00
lilia
af392c077d
Update libaxolotl
...
// FREEBIE
2016-04-03 14:25:30 -07:00
lilia
7e2c6fd6bc
Remove unused argument
...
// FREEBIE
2016-04-01 18:12:38 -07:00
lilia
d8d34e7afc
Icon upgrade
...
Also remove unused images.
// FREEBIE
2016-04-01 13:59:57 -07:00
lilia
1aa975e199
Differentiate active vs selected conversation states
...
// FREEBIE
2016-04-01 11:37:25 -07:00
lilia
ddcdc9e2ff
Log on prekey messages
...
// FREEBIE
2016-03-30 17:18:15 -07:00
lilia
960519d296
Add debug logging
...
// FREEBIE
2016-03-29 12:35:37 -07:00
lilia
8c03d3e088
Fix sorting of the last element
...
// FREEBIE
2016-03-27 15:29:53 -07:00
lilia
8fe00f79b2
Fix sorting on incoming key conflicts
...
// FREEBIE
2016-03-25 14:32:58 -07:00
lilia
07a0463b65
Fix conversation list self-resorting
...
When deleting all messages in a conversation, the entry in the left pane
should be inserted into the alphabetical portion of the list. To keep it
in this collection, do not nullify active_at.
To ensure the list view is keeping itself correctly sorted, make sure
that resorting behavior is triggered any time a relevant attribute is
changed.
This fixes deleted conversations jumping to the top of the list, and
conversation order scrambling when getting a group or contact sync
message from our master device.
Fixes #734
// FREEBIE
2016-03-25 14:32:57 -07:00
lilia
76652c2622
Update style and copy on key changes
...
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia
512c5bf739
Incoming bubbles have sender's color background
...
// FREEBIE
2016-03-23 17:41:24 -07:00
lilia
5a9358efc9
Reorder object members
...
Group click events together, put custom events at the bottom.
// FREEBIE
2016-03-23 15:09:05 -07:00
lilia
198cc70cef
Remove unusued event handlers
...
The conversation view now handles displaying and listening to the back
button.
// FREEBIE
2016-03-23 15:06:23 -07:00
lilia
6fe9c3f964
Nest key verification inside conflict dialogs
...
// FREEBIE
2016-03-23 15:04:42 -07:00
lilia
c4fcbd8cbe
Fix i18n in tests
...
// FREEBIE
2016-03-23 14:04:42 -07:00
lilia
3901bcb8df
Style resend button as an inline link
...
For messages that failed to send due to network errors, this change
allows retrying them directly from the main conversation view rather
than only from the message detail view.
// FREEBIE
2016-03-22 15:38:22 -07:00
lilia
08da29969c
Fix menu behavior
...
Opening the global menu should close the conversation menu and vice
versa.
// FREEBIE
2016-03-22 11:01:37 -07:00
lilia
d24eaa655a
Tweak styles on key verification view
...
// FREEBIE
2016-03-21 18:42:05 -07:00
lilia
b57f26bac4
Ignore clicks on the placeholder and its contents
...
// FREEBIE
2016-03-21 17:46:09 -07:00
lilia
d3b035121d
Clean up bottom bar styles
...
// FREEBIE
2016-03-21 17:17:39 -07:00
lilia
234f937bc7
Conversation subscreens share a header
...
// FREEBIE
2016-03-21 15:37:53 -07:00
lilia
c8aa2246dc
Let groups have blue headers
...
// FREEBIE
2016-03-21 13:02:34 -07:00
lilia
d391f07c1e
Change right header color
...
// FREEBIE
2016-03-21 11:03:50 -07:00
lilia
a925657c45
Fix global menu close handler
...
Previously, clicking on a conversation menu would not close the global
menu.
// FREEBIE
2016-03-20 23:34:56 -07:00
lilia
b094607e0d
Highlight bottom bar when focused
...
// FREEBIE
2016-03-20 23:15:21 -07:00
lilia
8bb8ed8151
Change left pane header color
...
// FREEBIE
2016-03-20 21:01:45 -07:00
lilia
7310afd1b4
Replace message list loading spinner with bar
...
// FREEBIE
2016-03-18 17:59:54 -07:00
lilia
d39a19d889
Fix crash on read receipt event if no listeners
...
// FREEBIE
2016-03-18 17:06:38 -07:00
lilia
647c2761e0
Move restart button into global menu
...
// FREEBIE
2016-03-18 16:21:55 -07:00
lilia
18a5ce8e54
Restyle conversation panel
...
// FREEBIE
2016-03-18 13:09:45 -07:00
lilia
760bfffb50
Show all contacts all the time
...
Contacts without conversation identity appear in alphabetical order at
the end of the inbox.
// FREEBIE
2016-03-18 11:21:11 -07:00
lilia
b4960b29d8
Remove newContact attribute
...
This was used as a flag by a UI that no longer exists. Now it
erroneously gets saved when creating a conversation from a bare phone
number.
// FREEBIE
2016-03-18 11:21:11 -07:00
lilia
8b3596b956
Delete last timestamp on a convo when deleting messages
...
// FREEBIE
2016-03-18 11:21:11 -07:00
lilia
6f3f33657a
Don't mark read on sync messages
...
There's no longer a need for this since we have read-state syncing.
// FREEBIE
2016-03-18 11:20:52 -07:00
lilia
d84400777f
Tweak storage logging statement
...
// FREEBIE
2016-03-17 21:04:12 -07:00
lilia
7fb4d3d8aa
Load all inbox convos before rendering
...
This is a better alternative to the fix in 0434c4b
, which causes
problems when creating a new conversation from entering a phone number.
// FREEBIE
2016-03-17 20:58:56 -07:00
lilia
762cb68721
Serialize sending and adding messages to a convo
...
Previously, if a message was sent in between the receive time of an
incoming message and the time it is actually added to the conversation's
message collection (which only occurs later after several async
callbacks), the incoming message would be inserted not-at-the-end of the
collection since it is ordered by receive time. This tricked the front
end into assuming the message was an older message instead of a new one.
Fixes #490
// FREEBIE
2016-03-17 15:41:01 -07:00
lilia
f9a3c7817e
DRY up early receipt processing
...
// FREEBIE
2016-03-17 15:39:28 -07:00
lilia
67900753d1
Log sending read receipts
...
// FREEBIE
2016-03-14 16:26:22 -07:00
lilia
50731439a9
Turn off session logging
...
// FREEBIE
2016-03-14 11:33:20 -07:00
lilia
2128ee63aa
Update libaxolotl
...
// FREEBIE
2016-03-14 11:28:53 -07:00
lilia
84235ef58e
Use forEach instead of loop
...
// FREEBIE
2016-03-13 14:15:16 -07:00
lilia
c02054d5da
Pass ciphertext as ArrayBuffer instead of string
...
// FREEBIE
2016-03-13 04:56:30 -07:00
lilia
6053fe67ba
Use built-in string conversion on protobuf
...
In lieu of a global helper.
// FREEBIE
2016-03-13 04:56:29 -07:00
lilia
3e0bce2b21
Move, rename, and simplify toArrayBuffer helper
...
This function is only ever used to convert groupIds from strings to
array buffers in sendmessage.
// FREEBIE
2016-03-13 04:56:28 -07:00
lilia
7dff9ac51b
Update libaxolotl
...
// FREEBIE
2016-03-13 04:56:27 -07:00
lilia
151b9797f6
Perform components concatenation missed in ec6948
...
// FREEBIE
2016-03-12 16:28:14 -08:00
lilia
0434c4bc53
Fixes #663 Conversation list loads in reverse order
...
The onChangeActiveAt listener promotes newly activated conversations to
the top of the inbox. By firing on an 'add' event, if the conversation
list happened to load after the inbox frontend was initialized, each new
entry would be incorrectly moved to the top, effectively reversing the
list.
// FREEBIE
2016-03-12 15:34:33 -08:00
lilia
1b72ef6170
Restore notifications heading
...
// FREEBIE
2016-03-11 11:49:21 -08:00
Blake Griffith
0ceb8e7038
i18n notification's settings dialog
...
FREEBIE
2016-03-11 11:46:10 -08:00
Blake Griffith
24e4d9c615
'off' -> 'disable notifications' in settings
...
FREEBIE
2016-03-11 11:46:10 -08:00
lilia
7578991f4e
Remove emoji logging
...
// FREEBIE
2016-03-11 11:01:13 -08:00
lilia
57d64fe669
Fix session corruption due to database races
...
Prevent races between encrypt and decrypt calls, and other read/write
operations on the session store by serializing session io ops per
device.
Possible fix for #535
// FREEBIE
2016-03-10 18:37:18 -08:00
lilia
f0539fda52
Fix exception when drawAttention is called too early
...
// FREEBIE
2016-03-10 17:44:30 -08:00
lilia
28c82531d3
Allow promises to handle identity removal failure
...
Previously this exception was thrown in a callback which did not
propogate it up to the enclosing promise.
// FREEBIE
2016-03-10 17:44:30 -08:00
lilia
a98de39173
Warn if writing to storage too early
...
// FREEBIE
2016-03-10 17:44:29 -08:00
Sam Lanning
662020ce68
Add title text for emoji in messages.
...
Fixes #250
// FREEBIE
2016-03-09 12:46:33 -08:00
Sam Lanning
7b1c06538d
Updated twemoji to v1.4.2
...
This allows us to define the "attributes" option, allowing for emoji titles.
// FREEBIE
2016-03-09 12:43:29 -08:00
lilia
0763cf14a3
Remove messages from notifications when read
...
Remove individual messages from Notifications when marked read.
Previously this was only done from the conversation model when marking
the entire conversation as read.
Fixes #717
// FREEBIE
2016-03-08 12:03:16 -08:00
lilia
fd8bac2003
Fix conversation list ordering
...
Order conversation list by timestamp instead of active_at. The former is
the send time of the most recent message. The latter is typically the
receive time of that message. This can cause mis-ordering if you send a
message while processing a backlog of incoming messages.
Fixes #617
// FREEBIE
2016-03-04 06:34:31 -08:00
lilia
5f07c74f1a
Add log statement when opening provisioning socket
...
Make it more obvious via logs which server someone is attempting to
register with (i.e., to disambiguate staging from prod).
// FREEBIE
2016-02-29 05:08:07 -08:00
lilia
9ea9a8160b
Add logging when opening inbox
...
// FREEBIE
2016-02-27 15:30:02 -08:00
lilia
2b7cbef8b1
Rename a function
...
Avoid confusing this operation with actual receipts, which are something
else.
// FREEBIE
2016-02-26 12:41:29 -08:00
lilia
b77d5df4f2
Fix markRead when messages have not been loaded yet
...
Query the database and not just the in-memory messages.
// FREEBIE
2016-02-26 12:36:14 -08:00
lilia
01053335ac
Don't send empty read status reports
...
// FREEBIE
2016-02-26 12:28:14 -08:00
lilia
f88b33a135
Fix unread message lookup in markRead
...
// FREEBIE
2016-02-26 12:27:44 -08:00
lilia
c4a88dd651
Fix getUnread query
...
Booleans are not valid keys in indexeddb.
https://www.w3.org/TR/IndexedDB/#dfn-valid-key
// FREEBIE
2016-02-26 12:25:56 -08:00
lilia
8fdf58971c
Add missing semicolons
...
// FREEBIE
2016-02-24 23:10:17 -08:00
lilia
c3bbdb393f
Refactor media uploading step
...
Move this to its own function which encapsulates the error handling for
it.
// FREEBIE
2016-02-24 23:10:17 -08:00
lilia
44b1a6451d
Add validation to Message class
...
// FREEBIE
2016-02-24 23:10:16 -08:00
lilia
2e30c4388f
Set destination on end session messages for syncing
...
// FREEBIE
2016-02-24 23:10:16 -08:00
lilia
e91f646920
Fix initial post-sync timestamps
...
Fixes #669
// FREEBIE
2016-02-24 17:11:59 -08:00
lilia
d121effe3b
Add logging for clearing taskbar attention
...
// FREEBIE
2016-02-24 14:36:49 -08:00
lilia
71467822f6
Clear key conflict before replaying it
...
Don't save the change until we successfully process the message, but
make it first so that the user sees the error disappear when the new key
is accepted.
// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
f7191ad9de
Clear notification when the last one is removed
...
Previously, we switched to not updating the notification popup on a
removal, since this usually respawns a new notification popup
unexpectedly. However, when the last relevant notification is cleared
(ie, by opening/reading the thread before the notification times out and
disappears on its own) we should clear the existing popup if there is
one.
// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
1f897f32b7
Track and sync unread messages
...
// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
1be45f3775
Derive global unread count from individual counts
...
// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
781ada64ca
Add libtextsecure support for syncing read messages
...
Plumbing for sending and receiving a new sync protobuf for marking
messages read on/from my other devices.
// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
ecf2885a6c
Do post-send tasks when resolving conflicts
...
Fixes #684
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
731052ad0a
Clear old key conflict errors after failed replay
...
If the replay failed due to a bad mac or other decryption error for some
other reason we still want to clear the conflict. If it failed because
it's still in conflict then the newly returned error will reflect that
and be saved.
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
cc0b8e835a
Don't show left groups in list of all contacts
...
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
ef9559d844
Add tests for filtering left groups from search
...
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
7e8ce5eb54
Omit left groups from search
...
Unless they contain messages.
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
010297f4c5
Track groups I've left
...
// FREEBIE
2016-02-22 17:11:16 -08:00
lilia
f940676357
Ignore attempts to post empty debug logs
...
Fixes #697
// FREEBIE
2016-02-22 13:59:34 -08:00
lilia
a962d97bfb
Fix debug log submission loading UX
...
This flow broke a bit with transition to modal debug log.
Restructure such that the loading class can be applied to an appropriate
element inside the modal. Ensure that the input elements are hidden when
submit is clicked, the result elements are shown when the log upload is
completed.
// FREEBIE
2016-02-22 12:48:06 -08:00
lilia
7f8c76faca
Make debug log as big as possible
...
Tweak style to make the modal reasonably wide/tall, and use flexbox
to automatically expand the textarea.
// FREEBIE
2016-02-22 12:41:49 -08:00
lilia
636c0f2a60
Put debug log in a modal
...
Also dedupe close-button style
// FREEBIE
2016-02-19 17:34:59 -08:00
lilia
33fde3d4e7
Dedupe modal styles
...
// FREEBIE
2016-02-19 17:34:59 -08:00
lilia
74aeddcbda
Add missing view file
...
// FREEBIE
2016-02-18 16:13:53 -08:00
lilia
173e037fa6
Fix minor style errors
...
And keep it that way, by making jscs config more opinionated.
// FREEBIE
2016-02-18 13:45:22 -08:00
lilia
18e9ded296
Fix storage.put
...
Adding an existing id to a collection is a no-op. To update an existing
item, we must pass {merge: true} as an option.
// FREEBIE
2016-02-18 12:22:43 -08:00
lilia
a3c6061480
Add Notification Settings
...
Fixes #471
// FREEBIE
2016-02-18 12:22:43 -08:00
lilia
4ab2e25df6
Refactor Contact and Conflict views
...
Untangle these two views into their component parts, consolidating all
the key conflict logic in the key conflict view. Contact view now simply
renders basic contact info and miscellaneous errors but not conflicts or
message errors.
// FREEBIE
2016-02-18 12:22:43 -08:00
lilia
1e1b87bbbd
Add session store logging
...
// FREEBIE
2016-02-18 12:22:43 -08:00
lilia
1bd0855d93
Remove duplicate display of network errors
...
Network errors render as a resend dialogue at the top of the message
detail and need not be re-reported in the contact list or errors
section.
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia
f221921127
Tweak conflict style
...
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia
28c763992a
Move error indicators on message bubbles
...
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia
5340791868
Display key conflict dialog inline
...
One less modal.
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia
ad66da9fb5
Move identity conflicts to top of message detail
...
Also restyle them as with network errors
// FREEBIE
2016-02-18 12:22:42 -08:00
lilia
f5436a5123
Clicking on message status icon opens detail view
...
Additionally, hovering over it will apply cursor: pointer. Previously
only the timestamp exhibited this behavior.
// FREEBIE
2016-02-18 12:22:41 -08:00
lilia
496ac30d6f
Process delivery receipts from yourself
...
Fixes #668
// FREEBIE
2016-02-16 17:51:42 -08:00
lilia
cd7bc78b1d
Refactor delivery receipt processing
...
Replace the where, forEach, and found pattern with a find.
// FREEBIE
2016-02-16 17:51:42 -08:00
lilia
b602533084
Serialize calls to sendSyncMessage
...
Fixes #679
// FREEBIE
2016-02-16 17:46:20 -08:00
lilia
6154dbb8db
Fix debug log growing uncontrollably
...
Races between adding new log entries and fetching old ones can cause an
overage of more than one entry.
// FREEBIE
2016-02-12 18:34:58 -08:00
lilia
b8602a3b42
Make migrations more robust
...
Occasionally these will fail if they happen to be executed before the
necessary dependencies (storage, ConversationCollection) are declared.
// FREEBIE
2016-02-12 17:18:37 -08:00
lilia
48626ceafb
Remove spurious storage.fetch from migration
...
This should really only be called once, from background.js.
Calling it twice can cause doubled listeners for the registration_done
event, which in turn leads to duplicate post-registration callbacks,
dual sync requests, and an eventual datastore inconsistency.
Fixes #670
// FREEBIE
2016-02-12 17:02:11 -08:00
lilia
1f2dfc5ea9
Only update notification on add
...
Previously, notifications were persistent until explicitly dismissed
from the notification center (a bell icon in the system tray), but that
ui has been removed from chrome*, so now updating on remove is
unexpectedly creating a new notification pop up.
*http://blog.chromium.org/2015/10/streamlining-notifications-on-desktop.html
Fixes #667
// FREEBIE
2016-02-10 11:37:40 -08:00
lilia
4198987723
Display a message when provisioning socket fails
...
Fixes #464
// FREEBIE
2016-02-09 16:23:17 -08:00
lilia
7e82d1295c
Handle attachment upload errors
...
Adds a new kind of replayable error that handles retry of pre-encryption
failures, e.g., attachment upload.
Fixes #485
// FREEBIE
2016-02-09 13:21:32 -08:00
lilia
910e37649a
Let group messages use new Message class
...
// FREEBIE
2016-02-08 17:07:49 -08:00
lilia
3bffdd96f5
Add sendMessage to handle sending from Message class
...
// FREEBIE
2016-02-08 17:07:49 -08:00
lilia
ecdfa09e97
Create a helper class for constructing messages
...
// FREEBIE
2016-02-08 17:07:48 -08:00
lilia
b73a3aea80
Fix syntax error
...
// FREEBIE
2016-02-08 15:58:06 -08:00
lilia
cee2b3163a
Add missing bind in messageReceiver
...
// FREEBIE
2016-02-08 15:49:34 -08:00