Commit Graph

301 Commits

Author SHA1 Message Date
Moxie Marlinspike
d567534609 replies 2018-04-16 17:33:26 -07:00
Moxie Marlinspike
3f3d7f549b Make an attempt to store/retrieve backups from removable storage
Fixes #7521
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
Greyson Parrelli
7e1e666172 Strip EXIF metadata from all JPEG images.
Strip all EXIF metadata from all JPEGs by re-encoding the JPEG. This
will keep all of the necessary visual effects of the tags (by encoding
them directly in the image data) while stripped the EXIF tags
themselves.
2018-03-31 02:14:02 -07:00
Sam Lanning
69f180a5ec Fix some potential integer overflows for expiration time
In a number of locations in the code, there were conversions of message
expiration times from seconds to milliseconds, and then assigned to `long`
contexts. However these conversions were being done as integer multiplication
rather than long multiplication, meaning that there was a potential for
overflows.

Specifically, the maximum value that could be represented before overflowing
was (2^31 / 1000 / 60 / 60 / 24) days = 24.8 days (< 1 month). Luckily the
current allowed timeouts are all less than that value, but this fix would
remove the artificial restriction, effectively allowing values of 1000x greater
(68 years), at least for android.

Related #5775
Closes #7338
2018-03-07 09:55:24 -08:00
Moxie Marlinspike
110d33ddf8 Support for Registration Lock PINs 2018-03-05 16:13:56 -08:00
Moxie Marlinspike
24e573e537 Support for full backup/restore to sdcard 2018-03-05 16:11:49 -08:00
Moxie Marlinspike
bebdbe2aaa Remove master secret requirement from SMS received job
Fixes #7444
2018-02-28 10:45:50 -08:00
Moxie Marlinspike
18aa202695 Really really delay SMS processing until sqlcipher migration completes
Blocking the SMS job on the screen lock isn't enough, since then
the job races against the migration.

Fixes #7390
2018-02-26 14:02:12 -08:00
Moxie Marlinspike
7318236286 Delay processing SMS messages until after sqlcipher migration
When screen lock passphrase is enabled

Fixes #7390
2018-02-21 18:49:52 -08:00
Moxie Marlinspike
9d5d43cf3a Wait to process messages until after migration when screenlocked
Fixes #7390
2018-02-04 11:26:02 -08:00
Moxie Marlinspike
3633d805c8 More MasterSecret cleanup 2018-02-01 19:22:48 -08:00
Moxie Marlinspike
59092e2ec0 No need for an encrypted serializer any longer 2018-02-01 18:33:12 -08:00
Moxie Marlinspike
e6a069af6d Remove unnecessary body model 2018-02-01 18:29:09 -08:00
Moxie Marlinspike
f36b296e2e Migrate from SQLite and ciphertext blobs to SQLCipher + KeyStore 2018-01-30 17:27:05 -08:00
Moxie Marlinspike
e60715587f Update service lib to 2.7.0 2018-01-18 10:01:41 -08:00
Moxie Marlinspike
512dc19471 Fix dynamic permissions problem for MMS messages 2017-12-20 11:21:00 -08:00
Moxie Marlinspike
4de14a5dc1 Only use startForegroundService for initial service construction 2017-12-15 09:45:00 -08:00
Moxie Marlinspike
261d187567 Don't perform multi-device contact update without contact perms 2017-12-08 14:36:36 -08:00
Moxie Marlinspike
27e11e9627 Make sure we have SEND_SMS permission before sending an SMS
Fixes #7246
2017-12-05 11:35:15 -08:00
Moxie Marlinspike
acfc9d75e0 Use startForegroundService instead of startService on Android 8 2017-11-30 10:26:41 -08:00
Moxie Marlinspike
7a5846a6d4 Move more system contact info into recipient database
1) Move contact URI, contact photo URI, and custom label
   into recipient database, so there are no longer any
   contact DB queries during Recipient object loading.

2) Use a SoftHashMap so that any referenced Recipient objects
   can't get kicked out of the cache.

3) Don't load Recipient objects through the provider during sync.
   This was a super expensive thing to do, and blew up the cache.

4) Only apply changes to Recipient objects during sync if they
   are in the cache. Otherwise, there should be no outstanding
   references, and the changes are fine going exclusively to
   the DB.
2017-11-30 10:26:41 -08:00
Moxie Marlinspike
64c8b4b2ef Support for selective permissions 2017-11-30 10:26:41 -08:00
Moxie Marlinspike
f855e161d9 Ensure notifications for new users won't be generated first fetch 2017-11-30 10:26:41 -08:00
haffenloher
3df9112cf8 Fix synced sent media messages expiring too fast
Fixes #6928
Closes #7135
2017-11-01 15:56:46 -07:00
Moxie Marlinspike
6d88710a88 Update to libsignal-service 2.6.11
// FREEBIE
2017-11-01 15:56:31 -07:00
Moxie Marlinspike
b80408bcb4 Use Glide for all contact photo caching
// FREEBIE
2017-10-11 17:47:12 -07:00
Moxie Marlinspike
2c1337b33e Make early receipts work in group messages
For both conversation item view and message details view

// FREEBIE
2017-10-02 14:54:55 -07:00
Moxie Marlinspike
856a4d2860 Process configuration request messages
// FREEBIE
2017-10-02 12:39:44 -07: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
d0e781ccb4 Sync read receipt configuration to sibling devices
// 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
b7109e9ebb Fix for NPE if MMS notification has no transaction ID
// FREEBIE
2017-09-13 16:38:02 -07:00
Moxie Marlinspike
93395c3ff4 Include own profile key in normal contact sync
// FREEBIE
2017-09-12 22:49:30 -07:00
Moxie Marlinspike
08948fe05a Don't create groups for 1:1 MMS conversations
Fixes #6947
// FREEBIE
2017-09-10 11:13:53 -07:00
Moxie Marlinspike
989ea4042c MMS group includes the sender
Fixes #6942
// FREEBIE
2017-09-08 11:19:57 -07:00
Moxie Marlinspike
962fb60ffb Don't synchronize MMS groups to sibling devices
Fixes #6934
// FREEBIE
2017-09-07 11:12:57 -07:00
Moxie Marlinspike
2add02c62f Add splash screen for setting profiles
// FREEBIE
2017-09-03 19:45:43 -07:00
Moxie Marlinspike
3e3ae5f865 Adjust profile key sharing based on sync messages
// FREEBIE
2017-08-28 17:57:07 -07:00
Moxie Marlinspike
d0cd2621ca Only process messages if a body is present
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
51c1e4485f Support for profile key syncing to sibling devices
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
64ad9ec9dd Add group profile sharing logic
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
f17af19d09 Access all RecipientDatabase settings directly from Recipient
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
d1790dfe17 Rename RecipientPreferences -> RecipientSettings
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
8e6ca53023 Rename RecipientPreferencesDatabase -> RecipientDatabase
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
6924f0519e No need for a RecipientFactory any longer
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
5942e93a33 Share profile key when initiating a conversation
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
df99deb480 Insert profile creation into registration flow, fix capture
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
77a216b705 Support for retrieving and storing profile information
Initial support for sharing profile keys

// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
1893047a78 Profile creation activity
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
da94fd5f9e Join group information into conversation list query
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
5a5e47f2df Move "directory" information into RecipientPreferencesDatabase
// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
375207f073 Switch MMS groups to use the group database infrastructure
Eliminate the concept of 'Recipients' (plural). There is now just
a 'Recipient', which contains an Address that is either an individual
or a group ID.

MMS groups now exist as part of the group database, just like push
groups.

// FREEBIE
2017-08-28 10:30:50 -07:00
Moxie Marlinspike
422b4c345b Catch IllegalArgumentException thrown internally on some devices
// FREEBIE
2017-08-10 12:17:05 -07:00
Moxie Marlinspike
25a30d63a5 A blocked contact doesn't necessarily have to be a number
// FREEBIE
2017-08-07 12:27:34 -07:00
Moxie Marlinspike
7f46e99f9c Use SIM country code when registered number is unavailable
Convert directory operations to Addresses

Fixes #6845
// FREEBIE
2017-08-02 12:51:46 -07:00
Moxie Marlinspike
4229c21bdc Fix NPE on contact update request
Fixes #6840

// FREEBIE
2017-08-01 08:57:26 -07:00
Moxie Marlinspike
737810475e Remove the Canonical Address Database
This was a holdover from Signal's origins as a pure SMS app.
It causes problems, depends on undefined device specific behavior,
and should no longer be necessary now that we have all the
information we need to E164 all numbers.

// FREEBIE
2017-07-31 12:02:29 -07:00
Moxie Marlinspike
5be246ec8f Fix NPE for SMS pdus that could potentially be null
// FREEBIE
2017-07-21 16:11:55 -07:00
Moxie Marlinspike
82b5b35d3b Eliminate MediaNetworkRequirement style attachment job handling
// FREEBIE
2017-07-21 15:59:27 -07:00
Moxie Marlinspike
2c4c0f1349 Archive sessions and generate new registration id on re-register
Fixes #6703
// FREEBIE
2017-07-05 13:13:53 -07:00
Moxie Marlinspike
074e46b2d9 Enable verification syncing
// FREEBIE
2017-06-23 13:59:06 -07:00
Moxie Marlinspike
a0e23612d4 We need to disable this until push notifications contain more info
This could be a sync message, delivery receipt, or some other
message that isn't user-visible. The push notification content
would need to indicate whether that's the case in order to be
able to accurately display a notification

// FREEBIE
2017-06-20 10:57:11 -07:00
Moxie Marlinspike
0f6823d37e Null check just in case the profile comes back empty
// FREEBIE
2017-06-14 09:35:32 -07:00
Moxie Marlinspike
1eccc07673 Temporarily disable synchronization messages
Until desktop catches up

// FREEBIE
2017-06-12 09:47:58 -07:00
Moxie Marlinspike
76c28cfa7a Add support for SN verification
// FREEBIE
2017-06-09 19:58:01 -07:00
Moxie Marlinspike
711740d156 Update to libsignal-service 2.5.10
// FREEBIE
2017-06-02 09:49:29 -07:00
Moxie Marlinspike
b50a3fa2b8 Actually handle busy signal correctly
// FREEBIE
2017-06-01 13:11:48 -07:00
Moxie Marlinspike
d413b80b15 Canonicalize number when retrieving profile
// FREEBIE
2017-05-31 14:51:48 -07:00
Moxie Marlinspike
73410f64b5 Display a notification when unable retrieve messages for push
Fixes #6684
// FREEBIE
2017-05-31 14:51:48 -07:00
Moxie Marlinspike
cd55feb2b9 Update signal-service to 2.5.9
// FREEBIE
2017-05-31 14:51:48 -07:00
Moxie Marlinspike
d507756821 Some identity key handling changes
1) Prefetch identity keys when possible

2) Always accept prefetched keys or keys from incoming messages

3) Block sending only if it's a recent change, or if always
   block is enabled

// FREEBIE
2017-05-31 14:51:48 -07:00
Moxie Marlinspike
4509077338 Lollipop MMS API doesn't seem to work reliably until L_MR1
Fixes #6663
Fixes #6668
// FREEBIE
2017-05-24 10:52:08 -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
1c8c6d5f85 Be sure to canonicalize numbers when updating groups
// FREEBIE
2017-05-09 17:46:07 -07:00
Moxie Marlinspike
51d6144591 Significant MMS changes
1) Remove all our PDU code and switch to the PDU code from the
   klinker library

2) Switch to using the system Lollipop MMS library by default,
   and falling back to our own custom library if that fails.

3) Format SMIL differently, using code from klinker instead of
   what we've pieced together.

4) Pull per-carrier MMS media constraints from the XML config
   files in the klinker library, instead of hardcoding it at 280kb.

Hopefully this is an improvement, but given that MMS is involved,
it will probably make things worse instead.
2017-05-08 18:14:55 -07:00
Moxie Marlinspike
cb670d6783 Improve UI send latency
// FREEBIE
2017-04-26 10:27:30 -07:00
Moxie Marlinspike
438a78ed30 Switch jobs with network requirement to timed wakelock
// FREEBIE
2017-04-21 23:05:59 -07:00
Moxie Marlinspike
92ea7549d4 Make UpdateApkJob use a timed wakelock
Fixes #6514
// FREEBIE
2017-04-10 09:25:52 -07:00
Moxie Marlinspike
f67eb5f9f3 Support for receiving arbitrary attachment types
// FREEBIE
2017-03-29 18:17:34 -07:00
Moxie Marlinspike
0d11b3dd26 Lets limit GCM refresh to every 6hrs, and only retry once
// FREEBIE
2017-03-17 10:40:34 -07:00
Benedikt Constantin Radtke
742b54f32d fix ContactUpdates for non-e164 contacts
convert every number to e164 before sending it to slaves/siblings.

Closes #6310
2017-03-16 14:25:47 -07:00
Paride Legovini
1c9715f700 More RedPhone cleanup
Closes #6393
// FREEBIE
2017-03-15 16:59:46 -07:00
Moxie Marlinspike
a8366387ab Fix the build
// FREEBIE
2017-03-14 15:47:08 -07:00
haffenloher
66c9fd44df Honor synced end session messages
Fixes #5174
Closes #5178
2017-03-14 14:07:18 -07:00
Moxie Marlinspike
94964474b2 So long redphone
// FREEBIE
2017-03-14 13:24:24 -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
bb5e7db57e We don't need to refresh attributes in redphone any longer
// FREEBIE
2017-03-13 11:50:10 -07:00
Moxie Marlinspike
cbba8c0d76 Update signal-service
// FREEBIE
2017-03-09 17:31:03 -08:00
Moxie Marlinspike
b110c8a2cb Reregister GCM on every app start
Fixes #5531
// FREEBIE
2017-03-06 11:50:51 -08:00
Moxie Marlinspike
9b8719e2d5 Support for website distribution build with auto-updating APK
// FREEBIE
2017-02-27 23:53:36 -08:00
Moxie Marlinspike
79e925051a Support for attachment digests
// FREEBIE
2017-02-26 11:16:01 -08:00
Moxie Marlinspike
8cd50d1e82 Update last seen state on desktop sync send
// FREEBIE
2017-02-22 15:05:35 -08:00
Moxie Marlinspike
1669731329 Support for using Signal without Play Services
This is now possible with beta calling, so non-GCM users are a
part of beta calling by default.

// FREEBIE
2017-02-20 12:00:03 -08:00
Moxie Marlinspike
1b1470aae2 Upgrade to EventBus 3.X
// FREEBIE
2017-02-19 12:29:33 -08:00
Moxie Marlinspike
d2eebbc55a Little bit of extra SmsListener logging
Related #5253
// FREEBIE
2017-02-19 12:29:33 -08:00
haffenloher
9395f7faa0 Correct PushGroupUpdateJob's TAG
Closes #6166

// FREEBIE
2017-02-19 12:29:33 -08:00
Benedikt Constantin Radtke
85aa5c5b97 use canonical number when sending blocked updates
MultiDeviceBlockedUpdates now send e164 numbers instead
 of localized ones.

Fixes #6093
Closes #6109
// FREEBIE
2017-02-01 13:55:52 -08:00
Moxie Marlinspike
ea0945d406 Beta support for webrtc video and voice calling
// FREEBIE
2017-02-01 13:55:52 -08:00
Moxie Marlinspike
7e51d61c79 Ignore duplicate signal messages
Fixes #5579

// FREEBIE
2017-01-22 14:47:02 -08:00