Commit Graph

63 Commits (5fd9874ab6433f91b2863af116c722f5003899e6)

Author SHA1 Message Date
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
Moxie Marlinspike aa25f94291 Enhanced import/export support.
1) Allow imports from the stock SMS database at any time.

2) Provide plaintext export support, in a format compatible with
   the "SMS Backup And Restore" app.

3) Fix the DB weirdness on encrypted restore that previously
   required killing the app.
12 years ago
Moxie Marlinspike 3df67a1643 Properly return unknown recipient from SMS db on empty. 12 years ago
Moxie Marlinspike ad6760b62c Correctly handle deferred processing of key exchange message when locked. 12 years ago
Moxie Marlinspike 1aa84b145f Add 'mark all as read' option 12 years ago
Moxie Marlinspike 0b172cebce Use DB sending type rather than in-memory hashtable. 12 years ago
Moxie Marlinspike 79c554fcc7 Fixed group in-thread notifications 12 years ago
Moxie Marlinspike 723fb4ffdd MMS and Group Messaging Improvements
1) Display the individual sender name in a group conversation.

2) Add an "address" column to MmsDatabase and keep FROM there.

3) Remove all blocking operations from MmsDatabase.Reader path.

4) Strip SMIL and other undisplayable parts from part count.

5) Fix places where messages weren't being correctly decrypted.
12 years ago
Moxie Marlinspike e80882b83b Locally encrypted messages no longer show as ciphertext notifications. 12 years ago