Commit Graph

56 Commits (bfdad2f47c916ddf46679bb0711810709fbe1fe6)

Author SHA1 Message Date
Greyson Parrelli bfdad2f47c Updated logging. 7 years ago
Greyson Parrelli 47a10a0288 Added support for multi-image receive. 7 years ago
Greyson Parrelli 2acab563d9 Support for sealed sender - Part 2 7 years ago
Moxie Marlinspike 5f31762220 Support for sealed sender - Part 1 7 years ago
Greyson Parrelli 13c72779af Visually note quotes for messages you don't have.
We will now show a small footer under quotes for messages that you
don't have locally.

Also fixes #7850
7 years ago
Greyson Parrelli 43068e0613 Reduce usage of Log.w() 7 years ago
Greyson Parrelli a498176043 Switch logs to use new Log class. 7 years ago
Greyson Parrelli 0449647cf9 Implemented full-text search.
You can now use the search bar on the conversation list to find
conversations, messages, and contacts.
8 years ago
Greyson Parrelli 54dbffaf30 Added ability to share contacts.
The "contact" option in the attachments tray now brings you through an
optimized contact sharing flow, allowing you to select specific fields
to share. The contact is then presented as a special message type,
allowing you to interact with the card to add the contact to your system
contacts, invite them to signal, initiate a signal message, etc.
8 years ago
Greyson Parrelli 17dbdbd0a9 Handle quote position task finishing after fragment detaches.
There's a chance that the AsyncTask that retrieves a quoted message's
position could finish after the fragment is detached, which would cause
a crash. I've changed it so if this case occurs, the result is ignored.

Also, I noticed that when searching the message table, if a quote can't
be found, we'd end up traversing the entire table. To prevent this from
taking forever on large message tables, I've limited it to searchin only
what is currently present in the adapter.

Fixes #7756
8 years ago
Greyson Parrelli 43622e603d Save replies in drafts.
Previously, quotes were not saved to drafts, meaning they would be lost
when leaving the conversation or app. Now, a QuoteId (which represents
the necessary data to restore the QuoteModel) is serialized and stored
in the DraftDatabase.

Fixes #7716
Closes #7729
8 years ago
Greyson Parrelli fa99e8f0d0 Updated reply-to UI.
All UI components are now properly styled and functioning according to
spec.
8 years ago
Moxie Marlinspike d567534609 replies 8 years ago
Moxie Marlinspike 9f8b4cf892 Populate incoming attachments with width and height from message 8 years ago
Moxie Marlinspike f36b296e2e Migrate from SQLite and ciphertext blobs to SQLCipher + KeyStore 8 years ago
Moxie Marlinspike 285947eb66 Show per-member delivery/read status on message info in groups
// FREEBIE
8 years ago
Moxie Marlinspike cb9bc9659b Support for read receipts
// FREEBIE
8 years ago
Moxie Marlinspike b78c05e70b Keep track of when audio attachments are voice notes
// FREEBIE
9 years ago
Moxie Marlinspike cb670d6783 Improve UI send latency
// FREEBIE
9 years ago
Moxie Marlinspike f67eb5f9f3 Support for receiving arbitrary attachment types
// FREEBIE
9 years ago
Moxie Marlinspike 2f46c6ca1f Don't redisplay notifications after they have been dismissed
Fixes #5751
Fixes #6218
// FREEBIE
9 years ago
Moxie Marlinspike 79e925051a Support for attachment digests
// FREEBIE
9 years ago
Moxie Marlinspike aa30f3e410 Revert "Don't use SHA1 for stable IDs"
This reverts commit 7286fd9b06.

Fixes #6223
// FREEBIE
9 years ago
Moxie Marlinspike 7286fd9b06 Don't use SHA1 for stable IDs
// FREEBIE
9 years ago
Moxie Marlinspike a4c17e5325 Support for generating video thumbnails
// FREEBIE
9 years ago
Moxie Marlinspike d7e4928f22 Support for disappearing messages
// FREEBIE
9 years ago
Moxie Marlinspike 7b589c4300 TextSecure is now SignalService
// FREEBIE
10 years ago
Moxie Marlinspike 08e2221dc0 Support for synchronizing read state to/from desktop
// FREEBIE
10 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
10 years ago
Jake McGinty 4314a4b42b add stable IDs to conversations
fixes #2856
Closes #4607
// FREEBIE
10 years ago
Moxie Marlinspike 434ce4f9c9 Canonicalize entries in canonical address database.
Make all our queries E164, so eventually everything in there
will be E164.  Stops thrashing between formats.

Closes #4306

// FREEBIE
10 years ago
Moxie Marlinspike f714f5b572 Really limit the number of rows that can be joined from parts.
Fixes #4299
Fixes #4298
// FREEBIE
10 years ago
Moxie Marlinspike cb3f9a6805 Distinct rows from join
// FREEBIE
10 years ago
Moxie Marlinspike 15c6f18750 Support for an audio view to allow in-app playback of audio.
Closes #4270
// FREEBIE
10 years ago
Moxie Marlinspike d2f44f6584 Join attachments instead of running an asynchronous query.
No more SlideDeck futures, just SlideDecks.

// FREEBIE
10 years ago
Jake McGinty ae97495c47 only load partial conversation by default
Closes #4252
Fixes #3911
// FREEBIE
10 years ago
Jake McGinty 99d3374d35 migrate conversation list to RecyclerView
fixes #2488
fixes #2333
// FREEBIE
10 years ago
Jake McGinty edc47247f9 add thread/date multi-col SQLite indices
Closes #3880
// FREEBIE
10 years ago
Jake McGinty f812efff3c only create DB readers as needed
Closes #3730
// FREEBIE
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.
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 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 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.
12 years ago
Moxie Marlinspike 067799be06 Display group actions and correctly handle group delivery. 12 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.
12 years ago
Moxie Marlinspike b8f663b69c Move common crypto classes into TextSecureLibrary.
1) Move all the crypto classes from securesms.crypto.

2) Move all the crypto storage from securesms.database.keys

3) Replace the old imported BC code with spongycastle.
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.
13 years ago
Moxie Marlinspike 7c47ea5cec Make MMS more asynchronous and consistent with new SMS types.
1) We now delay MMS notifications until a payload is received,
   or there's an error downloading the payload.  This makes
   group messages more consistent.

2) All "text" parts of an MMS are combined into a second text
   record, which is stored in the MMS row directly rather than
   as a distinct part.  This allows for immediate text loading,
   which means there's no chance a ConversationItem will resize.

   To do this, we need to include MMS in the big DB migration
   that's already staged for this application update.  It's also
   an "application-level" migration, because we need the MasterSecret
   to do it.

3) On conversation display, all image-based parts now have their
   thumbnails loaded asynchronously.  This allows for smooth-scrolling.
   The thumbnails are also scaled more accurately.
13 years ago
Moxie Marlinspike dd0aecc811 First cut at group messaging refactor. 13 years ago
Moxie Marlinspike 83e260436b Major storage layer refactoring to set the stage for clean GCM.
1) We now try to hand out cursors at a minimum.  There has always been
   a fairly clean insertion layer that handles encrypting message bodies,
   but the process of decrypting message bodies has always been less than
   ideal.  Here we introduce a "Reader" interface that will decrypt message
   bodies when appropriate and return objects that encapsulate record state.

   No more MessageDisplayHelper.  The MmsSmsDatabase interface is also more
   sane.

2) We finally rid ourselves of the technical debt associated with TextSecure's
   initial usage of the default SMS DB.  In that world, we weren't able to use
   anything other than the default "Inbox, Outbox, Sent" types to describe a
   message, and had to overload the message content itself with a set of
   local "prefixes" to describe what it was (encrypted, asymetric encrypted,
   remote encrypted, a key exchange, procssed key exchange), and so on.

   This includes a major schema update that transforms the "type" field into
   a bitmask that describes everything that used to be encoded in a prefix,
   and prefixes have been completely eliminated from the system.

   No more Prefix.java

3) Refactoring of the MultipartMessageHandler code.  It's less of a mess, and
   hopefully more clear as to what's going on.

The next step is to remove what we can from SmsTransportDetails and genericize
that interface for a GCM equivalent.
13 years ago