Commit Graph

71 Commits (3b8ec792ee8674379df759e731306ea86c65a479)

Author SHA1 Message Date
Moxie Marlinspike 08e2221dc0 Support for synchronizing read state to/from desktop
// FREEBIE
9 years ago
Moxie Marlinspike 6da86e482d Support for dual-sim SMS/MMS functionality
Allow source selection for sending SMS/MMS, and display the
SIM that received SMS/MMS.

Fixes #555
Closes #5199
// FREEBIE
9 years ago
Moxie Marlinspike 49f60971bd Cache delivery receipts when they arrive before sync message
// FREEBIE
10 years ago
haffenloher e5cd3e4fd1 Update inbox status icon on SMS delivery receipt
Closes #4848
// FREEBIE
10 years ago
haffenloher 7c95adc7e6 Add delivery status icons to the conversation list
Closes #4710
10 years ago
Moxie Marlinspike 2ab0029d49 Support for archive actions
Fixes #1141
Closes #4698
// FREEBIE
10 years ago
Moxie Marlinspike 8d82033855 Notify when contacts join Signal
Closes #4314
// FREEBIE
10 years ago
Moxie Marlinspike 25e099a309 Fix two message ordering issues.
1) The group ID for jobs that process received messages was
   previously set to the sender's e164.  This guaranteed
   serialization of messages per-recipient, while allowing
   processing of multiple recipients in parallel.  Unfortunately
   in the case of groups, this results in out of order
   conversations, since the "sender" for each message is
   different.  And we can't determine that it was a group
   message until *after* we process it.  So this change just
   puts all message processing from all senders in one big queue.

2) Synchronization messages were always being displayed before
   received messages, due to the "received time" for those
   being set to the time they were sent.

Fixes #3618
Fixes #2385

// FREEBIE
10 years ago
Moxie Marlinspike 26979b1c62 Log calls to conversations
// FREEBIE
10 years ago
Jake McGinty edc47247f9 add thread/date multi-col SQLite indices
Closes #3880
// FREEBIE
10 years ago
Jake McGinty 00eb637e51 stop sync resolution of recipients on ui thread
Closes #3885
// FREEBIE
10 years ago
Moxie Marlinspike 8d9ae731ef Only use MasterSecret for local message encryption.
Not for the axolotl store.

// FREEBIE
10 years ago
Moxie Marlinspike 64df85f3ee Refactor contact photo logic to not reuse drawables.
// FREEBIE
10 years ago
Moxie Marlinspike 40af2a81db Support for per-recipient muting, blocking, and ringtones.
Fixes #757
Fixes #354
Fixes #222
Closes #1815
Closes #3378

// FREEBIE
10 years ago
Jake McGinty 6d0720c956 insecure fallback mark as "not push"
Closes #3332
// FREEBIE
10 years ago
Moxie Marlinspike 2cfc714b64 Support for receiving incoming sync messages.
Closes #3188
// FREEBIE
10 years ago
Rhodey Orbits 9ba19df2af Eliminate ghost thread when all messages deleted in a thread.
Fixes #2262
Closes #2842

// FREEBIE
10 years ago
Moxie Marlinspike a4e18c515c Remove encrypted SMS transport, simplify transport options.
Closes #2647

// FREEBIE
10 years ago
Moxie Marlinspike 5602a3dfc0 Update to latest version of libtextsecure for simplified interface.
1) Switch to new TextSecureAddress addressing, rather than mixing
   long-based recipient IDs into libtextsecure.

2) Get rid of RecipientFormattingException throws in calls to
   RecipientFactory.

Closes #2570
10 years ago
Moxie Marlinspike 00d7b5c284 Better UX handling on identity key mismatches.
1) Migrate from GSON to Jackson everywhere.

2) Add support for storing identity key conflicts on message rows.

3) Add limited support for surfacing identity key conflicts in UI.
10 years ago
Moxie Marlinspike d72a3ec669 Do thread trimming as JobManager job rather than AsyncTask.
// FREEBIE
11 years ago
Moxie Marlinspike 08ed90c5ec Split out Util functions. 11 years ago
Moxie Marlinspike cafe03a70a Transition the outbound pipeline to JobManager jobs. 11 years ago
Moxie Marlinspike a3f1d9cdfd Beginning of libtextsecure refactor.
1) Break out appropriate components.

2) Switch the incoming pipeline from SendReceiveService to
   the JobManager.
11 years ago
Moxie Marlinspike 9768de2d5e Short circuit self-send.
// FREEBIE
11 years ago
Moxie Marlinspike b568ce70b2 Make delivery receipts work correctly for groups. 11 years ago
Moxie Marlinspike 36ec1d84a1 Implement delivery receipts.
1) Support a "receipt" push message type.

2) Identify messages by timestamp.

3) Introduce a JobManager to handle the queue for network
   dependent jobs.
11 years ago
Moxie Marlinspike 819982af7b Rearrange decrypt API.
1) Change SessionBuilder to only establish sessions via
   KeyExchangeMessage and PreKeyBundles.

2) Change SessionCipher to decrypt either WhisperMessage
   or PreKeyWhisperMessage items, automatically building
   a session for the latter.

3) Change SessionCipher to tear down new sessions built
   with PreKeyWhisperMessages if the embedded WhsiperMessage
   fails to decrypt.
11 years ago
Moxie Marlinspike 68747142d6 Add correct contextual menu options on 'Send' button.
[Send TextSecure message | Send unencrypted SMS | Send encrypted SMS]

// FREEBIE
11 years ago
Moxie Marlinspike 0574ec170a Display legacy message error when V1 message is received. 11 years ago
Moxie Marlinspike 1d07ca3e6f Remove V1 code. 11 years ago
Jake McGinty 832763f695 UX for unencrypted fallback case 11 years ago
Moxie Marlinspike fd1a18d2d0 Don't display duplicate push messages. 11 years ago
Jake McGinty d827ab1b36 more precise sms controls
// FREEBIE
11 years ago
Moxie Marlinspike a6e1d56cde Refactor group messaging protocol.
// FREEBIE
11 years ago
Moxie Marlinspike ccd1691b22 Make 'push' status a type bit on both incoming and outgoing msgs. 11 years ago
Moxie Marlinspike ff238a1ce9 Indicate a message was delivered via push in its delivery status. 11 years ago
Moxie Marlinspike 9614dc9055 Refactor group database model and flow.
1) Use existing DB types instead of adding new columns.

2) Store group attributes in message body, like everything else.
11 years ago
Moxie Marlinspike 19dddd7adf Support for an 'end session' protocol message.
1) On the push side, this message is a flag in PushMessageContent.
   Any secure message with that flag will terminate the current
   sessin.

2) On the SMS side, there is an "end session" wire type and
   the convention that a message with this wire type must be
   secure and contain the string "TERMINATE."
11 years ago
Moxie Marlinspike e7e5bc0884 Verify identity keys on outgoing messages.
If PreKeyEntity identity key doesn't match local DB, fail
outgoing message and queue "incoming" identity key update
message for manual user approval.
11 years ago
Moxie Marlinspike 067799be06 Display group actions and correctly handle group delivery. 11 years ago
Moxie Marlinspike 0ace469d74 Support for multi-device.
1) In addition to the Recipient interface, there is now
   RecipientDevice.  A Recipient can have multiple corresponding
   RecipientDevices.  All addressing is done to a Recipient, but
   crypto sessions and transport delivery are done to
   RecipientDevice.

2) The Push transport handles the discovery and session setup
   of additional Recipient devices.

3) Some internal rejiggering of Groups.
11 years ago
Moxie Marlinspike 49daa45dca wip 11 years ago
Moxie Marlinspike dde2d2564a Fix rebase errors 11 years ago
Moxie Marlinspike 44092a3eff Support for Axolotl protocol.
1) Split code into v1 and v2 message paths.

2) Do the Axolotl protocol for v2.

3) Switch all v2 entities to protobuf.
11 years ago
Moxie Marlinspike dadabdfaa8 Make UI responsive to UniversalTransport upgrades. 11 years ago
Moxie Marlinspike 073b1f69e3 Rollbacks, v2 sms-transport key exchanges, push identity conflicts.
1) Stop protocol rollbacks.

2) Handle v2 version key exchange messages.

3) Handle identity key conflicts on prekeybundle messages.
11 years ago
Moxie Marlinspike 7f642666dd Basic support for prekeybundle message delivery and receipt. 11 years ago
Moxie Marlinspike a200d29514 Move most of Util into library 11 years ago
Moxie Marlinspike 7489f3463a Change the way notifications work for non-default KitKat.
Messages that are not "secure" (encrypted or key exchange) are
automatically marked as read if TextSecure isn't the default
KitKat SMS app.

This change in functionality allows people who aren't using
TextSecure as a default SMS app on KitKat to still receive
notifications when they get incoming encrypted messages.
12 years ago