Commit graph

51 commits

Author SHA1 Message Date
Greyson Parrelli
43068e0613 Reduce usage of Log.w() 2018-08-06 10:50:06 -04:00
Greyson Parrelli
a498176043 Switch logs to use new Log class. 2018-08-06 10:50:06 -04:00
Greyson Parrelli
0449647cf9 Implemented full-text search.
You can now use the search bar on the conversation list to find
conversations, messages, and contacts.
2018-05-21 16:36:59 -04:00
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.
2018-05-21 15:45:22 -04:00
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
2018-05-21 15:45:22 -04:00
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
2018-04-26 09:19:22 -07:00
Greyson Parrelli
fa99e8f0d0 Updated reply-to UI.
All UI components are now properly styled and functioning according to
spec.
2018-04-16 17:33:26 -07:00
Moxie Marlinspike
d567534609 replies 2018-04-16 17:33:26 -07:00
Moxie Marlinspike
9f8b4cf892 Populate incoming attachments with width and height from message 2018-03-31 02:14:02 -07:00
Moxie Marlinspike
f36b296e2e Migrate from SQLite and ciphertext blobs to SQLCipher + KeyStore 2018-01-30 17:27:05 -08:00
Moxie Marlinspike
285947eb66 Show per-member delivery/read status on message info in groups
// FREEBIE
2017-10-01 22:36:52 -07:00
Moxie Marlinspike
cb9bc9659b Support for read receipts
// FREEBIE
2017-10-01 22:36:52 -07:00
Moxie Marlinspike
b78c05e70b Keep track of when audio attachments are voice notes
// FREEBIE
2017-05-11 22:46:35 -07:00
Moxie Marlinspike
cb670d6783 Improve UI send latency
// FREEBIE
2017-04-26 10:27:30 -07:00
Moxie Marlinspike
f67eb5f9f3 Support for receiving arbitrary attachment types
// FREEBIE
2017-03-29 18:17:34 -07:00
Moxie Marlinspike
2f46c6ca1f Don't redisplay notifications after they have been dismissed
Fixes #5751
Fixes #6218
// FREEBIE
2017-03-14 10:09:24 -07:00
Moxie Marlinspike
79e925051a Support for attachment digests
// FREEBIE
2017-02-26 11:16:01 -08:00
Moxie Marlinspike
aa30f3e410 Revert "Don't use SHA1 for stable IDs"
This reverts commit 7286fd9b06.

Fixes #6223
// FREEBIE
2017-02-19 12:29:33 -08:00
Moxie Marlinspike
7286fd9b06 Don't use SHA1 for stable IDs
// FREEBIE
2017-01-19 19:06:46 -08:00
Moxie Marlinspike
a4c17e5325 Support for generating video thumbnails
// FREEBIE
2016-12-12 17:38:05 -08:00
Moxie Marlinspike
d7e4928f22 Support for disappearing messages
// FREEBIE
2016-08-28 17:03:23 -07:00
Moxie Marlinspike
7b589c4300 TextSecure is now SignalService
// FREEBIE
2016-03-24 14:05:56 -07:00
Moxie Marlinspike
08e2221dc0 Support for synchronizing read state to/from desktop
// FREEBIE
2016-02-19 17:07:41 -08:00
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
2016-02-09 16:53:15 -08:00
Jake McGinty
4314a4b42b add stable IDs to conversations
fixes #2856
Closes #4607
// FREEBIE
2015-11-19 11:46:56 -08:00
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
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
f714f5b572 Really limit the number of rows that can be joined from parts.
Fixes #4299
Fixes #4298
// FREEBIE
2015-10-25 09:58:21 -07:00
Moxie Marlinspike
cb3f9a6805 Distinct rows from join
// FREEBIE
2015-10-24 14:38:03 -07:00
Moxie Marlinspike
15c6f18750 Support for an audio view to allow in-app playback of audio.
Closes #4270
// FREEBIE
2015-10-22 10:32:45 -07:00
Moxie Marlinspike
d2f44f6584 Join attachments instead of running an asynchronous query.
No more SlideDeck futures, just SlideDecks.

// FREEBIE
2015-10-22 10:31:22 -07:00
Jake McGinty
ae97495c47 only load partial conversation by default
Closes #4252
Fixes #3911
// FREEBIE
2015-10-15 11:16:49 -07:00
Jake McGinty
99d3374d35 migrate conversation list to RecyclerView
fixes #2488
fixes #2333
// FREEBIE
2015-09-24 14:12:09 -07:00
Jake McGinty
edc47247f9 add thread/date multi-col SQLite indices
Closes #3880
// FREEBIE
2015-08-06 11:29:59 -07:00
Jake McGinty
f812efff3c only create DB readers as needed
Closes #3730
// FREEBIE
2015-08-05 13:48:07 -07:00
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.
2015-02-27 12:26:09 -08:00
Moxie Marlinspike
a3f1d9cdfd Beginning of libtextsecure refactor.
1) Break out appropriate components.

2) Switch the incoming pipeline from SendReceiveService to
   the JobManager.
2014-11-12 15:21:32 -08:00
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.
2014-10-20 19:02:42 -07:00
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.
2014-02-19 21:07:47 -08:00
Moxie Marlinspike
067799be06 Display group actions and correctly handle group delivery. 2014-02-14 15:59:57 -08:00
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.
2014-02-02 19:38:06 -08:00
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.
2014-01-06 14:35:51 -08:00
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.
2013-05-06 08:40:55 -07:00
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.
2013-05-06 08:40:55 -07:00
Moxie Marlinspike
dd0aecc811 First cut at group messaging refactor. 2013-05-06 08:40:55 -07:00
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.
2013-05-06 08:40:55 -07:00
Moxie Marlinspike
dcf73cd009 Fix for 'group message' regression. 2013-02-04 11:03:19 -08:00
Moxie Marlinspike
5cb02445e8 Add support for "delivery notifications." Currently SMS-only. 2013-01-06 21:38:36 -08:00
Moxie Marlinspike
83f90ddd4e Display both sent and received time in message details.
1) We record time sent in SMS database (date_sent).

2) We record time received in MMS database (date_received).

3) We union this information correctly in MmsSmsDatabase.
2013-01-06 13:13:14 -08:00
Moxie Marlinspike
187ec95817 Add collating support for group SMS/MMS messages.
1) When sending an SMS or MMS to multiple recipients, only show one
ConversationItem, but provide statistics on the number of recipients
delivered to.

2) Still break up the messages for secure and insecure messages.
2012-10-29 16:51:42 -07:00
Moxie Marlinspike
82f8ba3584 Removed tabs 2012-09-30 19:56:29 -07:00