Greyson Parrelli
038238a333
Allow multiple attachments to download at once.
...
Not only will this be faster, but it serves as a mitigation
for the times when WorkManager gets 'stuck'.
Fixes #8427
2018-12-06 23:29:55 -08:00
Greyson Parrelli
bfdad2f47c
Updated logging.
2018-12-06 12:43:45 -08:00
Greyson Parrelli
f0bfd7224f
Handle having a null sender certificate at send time.
...
Fixes #8425
2018-12-03 13:16:29 -08:00
Greyson Parrelli
d6abf89a7a
Filter out typing indicators from ourself.
2018-12-01 09:51:28 -08:00
Greyson Parrelli
81055e61a6
Update WorkManager to 1.0.0-alpha11.
2018-11-27 12:35:41 -08:00
Greyson Parrelli
36b24d0a20
Rotate sender cert at send time if it's expired.
2018-11-26 07:52:59 -08:00
Greyson Parrelli
47a10a0288
Added support for multi-image receive.
2018-11-21 01:55:30 -08:00
Greyson Parrelli
a3411072ba
Remove MasterSecret job.
...
It's no longer necessary.
2018-11-21 01:55:30 -08:00
Greyson Parrelli
776b0e23ae
Add support for typing indicators.
2018-11-21 01:55:25 -08:00
Greyson Parrelli
d93bfbf693
Prevent SendJobs from sending already-sent messages.
...
This is to guard against behavior WorkManager has where it may
re-enqueue a job that has already been completed (if, for instance, it
was preempted).
Fixes #8268
2018-11-14 16:20:55 -08:00
Greyson Parrelli
e7c00a3066
Fix issue where we may oversend SMS messages.
...
Because SMS sending is split over two jobs, there's no max retry limit
respected if we find out about the failure in SmsSentJob -- it's
requeued as a new job with a fresh attempt counter.
This commit carries a retry count between the two jobs. It also verifies
that we have service before attempting to send a message at all.
Relates to #8268
2018-11-13 15:07:33 -08:00
Greyson Parrelli
78627ecb08
Updated libsignal-service-java to 2.12.1
2018-11-09 12:37:24 -08:00
Greyson Parrelli
bf9582c97e
Only set UNRESTRICTED mode if recipients have a non-null verifier.
...
Otherwise we could send UD messages to people with non-UD linked
devices.
2018-11-06 09:58:45 -08:00
Greyson Parrelli
1ab3d57378
Fix some places where we were using the Android Logger.
...
We pretty much always want to be using our own logger.
2018-11-06 09:22:25 -08:00
Greyson Parrelli
e31029da89
Update recipient's sealed sender status in more places.
2018-10-31 11:18:35 -07:00
Greyson Parrelli
8c3d50c6dc
Ignore messages without content.
2018-10-31 08:26:45 -07:00
Greyson Parrelli
532431b0ad
Guard against notifying for errors on non-existent SMS threads.
...
All of the other send jobs do this already, just didn't do it here.
2018-10-31 08:19:33 -07:00
Greyson Parrelli
2acab563d9
Support for sealed sender - Part 2
2018-10-30 08:48:08 -07:00
Moxie Marlinspike
5f31762220
Support for sealed sender - Part 1
2018-10-30 08:48:08 -07:00
Greyson Parrelli
86e4221182
Use a unique notification icon for backups.
2018-10-27 23:34:18 -07:00
Greyson Parrelli
45e0bb281f
Turn MessageRetrievalService into IncomingMessageObserver.
...
Due to an Android P bug, we basically need to stop calling
startService() in onResume()/onPause(). That means I had to turn
MessageRetrieval service into a singlton instead of a service. I also
moved the offending KeyCachingService calls into static methods that
didn't have to start the service.
2018-10-17 13:58:47 -07:00
Greyson Parrelli
5219d79e27
Remove unnecessary start of KeyCachingService.
2018-10-11 09:55:46 -07:00
Greyson Parrelli
1b736e9e04
Ensure notifications are processed after receiving GCM message.
...
It's unreliable to run these tasks on WorkManager, as there's no
scheduling guarantees.
2018-10-08 10:00:15 -07:00
Greyson Parrelli
1c197ad93d
Reset attachment transfer state if auto-download requirements are not met.
2018-10-07 14:21:33 -07:00
Greyson Parrelli
e4b56d4e40
Show foreground notification for jobs when network is restricted.
...
Occasionally a job may be run when the app is in a network-restricted
mode, like a form of doze. When this happens, jobs can timeout due to
lack of network access, causing a cascade of job delays. This is
particularly bad in the case of message retrieval.
To prevent this, if a job that normally requires network detects that no
network is available when running, then we start a foreground
notification.
2018-10-03 10:00:42 -07:00
Greyson Parrelli
444e01deae
Improve key presence checking in SafeData.
...
This isn't a perfect check either, but it should be safer and more
consistent than using static "invalid values".
2018-10-02 12:31:12 -07:00
Greyson Parrelli
cfa13867e5
Allow null for profileAvatar in RetrieveProfileAvatarJob.
2018-10-02 08:43:18 -07:00
Greyson Parrelli
87e6aa48bb
Schedule jobs with WorkManager.
...
Should help solve most of our pressing targetSdk=26 migration issues.
2018-10-01 12:12:50 -07:00
Greyson Parrelli
d10a44f8eb
Suppress some noisy logs.
2018-10-01 12:12:50 -07:00
Greyson Parrelli
e9a38bab1e
Turned SingleUseBlobProvider into MemoryBlobProvider.
...
Keep the single-use behavior, but allow the creation of multi-use memory
blobs that can be deleted when we're done with them. Will help out with
having URI's for temporary images during the camera capture flow.
2018-09-27 10:35:56 -07:00
Greyson Parrelli
6eb8693546
Don't block messages from unknown groups.
...
We were incorrectly considering unknown groups to have been "left".
2018-09-25 10:00:14 -07:00
Greyson Parrelli
45c4eafbd7
Add the ability to block groups.
...
This also fixes the situation where we block group-leave messages,
preventing blocked contacts from leaving groups.
Fixes #7970
Also, this forced us to upgrade libsignal-service, which fixes the
websocket timeout issues. Thanks to @dpapavas!
Fixes #6644
2018-09-18 15:26:50 -07:00
Greyson Parrelli
7c5e1db6a2
Fix NPE in MultiDeviceContactUpdateJob.
...
Fixes #8180
2018-09-07 17:52:50 -07:00
Greyson Parrelli
e9b85a10a6
Add per-contact notification channels.
...
Fixes #8119
Fixes #8121
Fixes #8122
2018-08-17 15:51:01 -07:00
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
2018-08-13 18:38:59 -04:00
Greyson Parrelli
dbd42c4af2
Add notification channel support.
...
Bucket our notifications into channels. Required to target API 26.
2018-08-13 18:38:53 -04:00
Greyson Parrelli
d0db6aa509
Added more logging around message sending and attachment downloads.
2018-08-06 10:50:06 -04:00
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
d42cecc32a
Fix timer issue with sync messages from desktop.
...
Related to #8068
2018-08-03 14:08:16 -04:00
Greyson Parrelli
bf692e8da3
Throttle background contact syncs to once every 6 hours.
...
Unfortunately, there's apps out there that trigger contact changes
very frequently. Because we listen to the system for contact
changes to tell us when to sync, that could result in us sending
an abundance of contact syncs to linked desktop instances.
This throttles contact sync requests using the following methodology:
- By default, throttle contact syncs to 6 hrs while the app is
backgrounded.
- If a sync is throttled in the background, we set a dirty flag and
will execute the sync the next time the app is foregrounded.
- Syncs explicitly requested by desktop are never throttled.
2018-07-17 12:06:50 -07:00
Greyson Parrelli
845fcf0864
Remove ability to set group conversation colors (for now).
2018-07-17 09:54:13 -07:00
Greyson Parrelli
24b062d8dd
Improve the look of message bubbles.
2018-07-17 09:53:52 -07:00
Greyson Parrelli
b02dda405c
Use NetworkBackoffRequirement for group messages.
2018-07-12 10:59:10 -07:00
Greyson Parrelli
18756aedf6
Remove the ability to save backups to the external SD card.
...
The directory we were previously saving backups to on the external SD
card is actually deleted upon app uninstall and/or clearing the app's
data. There's also no reliable way to write to the root of an external
SD card (that isn't comically inconvenient), so for now it's safer if we
just move back to getting the regular 'ol standard external storage
directory (which is likely internal storage, despite its name).
Fixes #7845
2018-06-29 14:10:45 -07:00
Greyson Parrelli
b39a7ac939
Add expiration time to group update requests.
2018-06-22 11:29:16 -07:00
Greyson Parrelli
b5d4cac90a
Send/receive expiration times for group updates.
...
This particularly helps with the bug where people who were newly added
to a group wouldn't receive an expiration timer until the first message
was sent.
2018-06-22 11:01:55 -07:00
Greyson Parrelli
933be54035
Update scheduling of ServiceOutageDetectionJob.
...
Previously, we were running this job in PushSendJob#onCanceled().
However, with the new retry logic, this won't happen for 24 hours.
Instead, we now schedule the job in PushSendJob#onRetry().
2018-06-22 10:59:53 -07:00
Greyson Parrelli
a50edc3d25
Keep retrying message sends for 24 hours.
...
Previously, we retried based on a count. Now we've added the ability to
keep retrying for a specified time, using exponential backoff to
throttle attempts.
2018-06-22 10:59:53 -07:00
Greyson Parrelli
42f1baaf61
Imported JobManager as a source dependency.
...
We have to make some changes, and it's gotten to the point where
maintaining it as a separate library is more hassle than it's worth,
especially with Google releasing WorkManager as the preferred job
scheduling library.
2018-06-22 10:59:53 -07:00
Greyson Parrelli
3a85c966d0
Fix false-positive outage detection.
...
Turns out that there's some weird quasi-state when you come out of
airplane mode, that if you do an InetAdress lookup, it returns some
weird IPv6-looking garbage address. Going to retry in that scenario
instead of assuming an outage.
2018-06-20 13:24:33 -07:00
Greyson Parrelli
2c17b54ef9
Show a banner in the event of a service outage.
...
We will now determine if there has been a service outage and render a
banner at the top of the conversation list if we detect that there has
been one.
2018-06-18 14:32:45 -07:00
Greyson Parrelli
30be732ae8
Don't auto-download attachments from unknown contacts.
2018-06-11 10:47:27 -07:00
Moxie Marlinspike
70c2a863cc
Correctly store backup
...
Fixes #7831
2018-05-24 09:57:16 -07: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
Moxie Marlinspike
6c1a1fb9ad
Use cache directory on removable storage for backups if present
...
Fixes #7692
2018-05-21 15:45:22 -04:00
Moxie Marlinspike
a5047cb17b
Fix for sender's expiring messages in group with unregistered user
...
Fixes #7719
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
Nicholas Rizzio
e6f76159b0
Export "creating backup" string
...
Closes #7656
2018-04-19 17:59:31 -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
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
Moxie Marlinspike
cb23e3a930
Untrusted identity is not always a legacy message content
...
Closes #5924
Fixes #5922
// FREEBIE
2017-01-12 10:33:23 -08:00
Moxie Marlinspike
bb5dcb7131
Start increasing frequency of signed prekey rotation
...
// FREEBIE
2017-01-06 09:19:58 -08:00
Benedikt Constantin Radtke
a6488b3652
fix zero length attachments crashing signal
...
Fixes #5331
Closes #5926
2017-01-02 17:17:48 -08:00
Moxie Marlinspike
cdf3a849e9
Reduce DB updates on send path, move support SDK up to 24
...
// FREEBIE
2017-01-02 17:17:48 -08:00
Moxie Marlinspike
f3f2f29b23
Fix avatar download crash bug
...
Fixes #5980
// FREEBIE
2016-12-21 09:58:45 -08:00
Moxie Marlinspike
541718fd11
Support for censorship circumvention in Egypt and UAE
...
// FREEBIE
2016-12-20 09:55:52 -08:00
Moxie Marlinspike
f871d83e68
No need to run this job on install
...
// FREEBIE
2016-12-16 09:10:44 -08:00
Moxie Marlinspike
01bc2ebde4
Don't print safety number changes in inactive groups
...
Fixes #5930
// FREEBIE
2016-12-14 16:20:09 -08:00
Benedikt Constantin Radtke
d9ff5b00b7
fix NPE in PushGroupUpdateJob
...
Fixes #5919
Closes #5921
// FREEBIE
2016-12-04 18:06:25 -08:00
Moxie Marlinspike
cf01959e16
Support recovering forgotten/unknown group info from sender
...
Closes #5876
// FREEBIE
2016-12-01 10:34:47 -08:00
Niklas Wenzel
0d493a3af9
Get the automated tests up and running again
...
* Fix the build.gradle file
* Use the correct VisibleForTesting class
* Fix the Android test setUp() logic
* Enable a test in DeliveryReceiptJobTest.java where the @Test anotation was missing
It should be noted that the tests in AttachmentDatabaseTest.java fail.
Fixes #3474
Closes #5882
2016-11-24 08:13:46 -08:00
Moxie Marlinspike
3787551878
Squelch notifications for active desktop converastions
...
Additionally, limit audible notifications to once every 2 seconds.
// FREEBIE
Fixes #4905
Fixes #3165
Closes #5813
2016-11-24 08:09:34 -08:00
Moxie Marlinspike
0abe56171a
Enable non-blocking safety number changes
...
// FREEBIE
2016-11-11 19:07:35 -08:00
Moxie Marlinspike
8d44a145f0
Start expiration timer when marked read from notification
...
// FREEBIE
2016-10-10 11:13:37 -07:00
Moxie Marlinspike
7d1c5a0d40
Don't transmit SMS contact information to multi-device on change
...
Fixes #5710
// FREEBIE
2016-10-05 16:57:52 -07:00
Moxie Marlinspike
5ed1c9c72b
Fix for expiration update sync sent messages
...
// FREEBIE
2016-10-03 12:48:30 -07:00
Christian Ascheberg
314dd9181c
Fix timer update group notification expiry
...
Closes #5727
// FREEBIE
2016-10-02 22:43:21 -07:00
Moxie Marlinspike
68b48ebe00
Start disappearing message timer on read sync messages
...
Fixes #5733
// FREEBIE
2016-10-02 12:08:30 -07:00
Moxie Marlinspike
848a25664b
Make fingerprint changes optionally non-blocking
...
Also complete the rename from "identity" to "safety numbers."
// FREEBIE
2016-09-25 14:27:40 -07:00
Moxie Marlinspike
cbbe25c852
Fix contact update NPE
...
Fixes #5704
// FREEBIE
2016-09-19 23:25:15 -07:00
Moxie Marlinspike
32f5bd5336
Support for syncing contact colors and block lists
...
Closes #5638
// FREEBIE
2016-09-14 16:37:28 -07:00
FeuRenard
792d4a5939
Resize group images
...
Fixes #5461
Closes #5597
// FREEBIE
2016-09-01 12:29:11 -07: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
haffenloher
021942fd43
Don't issue errors when group members unregister
...
Fixes #2408
Fixes #4550
Closes #5318
// FREEBIE
2016-03-09 16:34:25 -08:00
Moxie Marlinspike
08e2221dc0
Support for synchronizing read state to/from desktop
...
// FREEBIE
2016-02-19 17:07:41 -08:00
Moxie Marlinspike
03efe02e65
Add active status to group multi-device sync messages
...
// FREEBIE
2016-02-18 17:52:01 -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
Moxie Marlinspike
4a261bcf68
Check result of bitmap size operation for failure
...
Fixes #5046
// FREEBIE
2016-01-30 15:22:55 -08:00
Colin Snover
50c432aaf0
Strip separators prior to validating non-email SMS recipients
...
Refs #1516 . Refs #3099 . Refs #4833 .
Closes #4861
2015-12-11 23:11:35 -08:00
Moxie Marlinspike
bde838d35a
Let's take this SMS number cleaning thing to its logical extreme
...
Fixes #4833
// FREEBIE
2015-12-10 18:49:58 -08:00
Moxie Marlinspike
e32736359b
Move group message to group after accepting new identity key
...
Fixes #2739
// FREEBIE
2015-12-10 05:04:03 -08:00
Moxie Marlinspike
371ef3ce95
Strip whitespace in addition to parentheses for outgoing SMS
...
Fixes #4833
// FREEBIE
2015-12-10 05:04:03 -08:00
Christian Ascheberg
4696837f2f
warn user before build expires
...
Closes #4322
// FREEBIE
2015-12-10 05:04:03 -08:00
Geonu Kang
8269047c88
Update attachment content type when updating attachment data
...
Fixes #4687
Closes #4688
2015-12-02 09:45:57 -08:00
Moxie Marlinspike
073be6696b
Mark threads as read when we get an outgoing sync message
...
// FREEBIE
2015-11-26 07:24:57 -08:00
Jake McGinty
e51e5cdfd4
fail faster in FileNotFoundException case
...
Fixes #3053
Closes #4499
// FREEBIE
2015-11-12 15:20:17 -08:00
Moxie Marlinspike
b136fed6f7
Update contact DB on incoming messages
...
When we receive a Signal message from a previously unregistered
user, reflect that in the contact DB.
Fixes #3949
Closes #4492
// FREEBIE
2015-11-12 15:20:16 -08:00
Moxie Marlinspike
b5b564cfe1
Make sure the number we add canonicalizes to the number we know.
...
Fixes #4406
// FREEBIE
2015-11-06 10:50:47 -08:00
Stefan Seide
e808ae0ddc
remove brackets from recipient numbers as not allowed for dialing
...
Closes #3450
2015-11-05 10:07:52 -08:00
Moxie Marlinspike
004a87eba9
Lower SMS retry count to 15
...
Closes #4296
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
5b6f49c993
Switch RedPhone view<->service interaction to use event bus
...
Fixes #4234
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
d0e852f19f
Retry on network failures during media message sends.
...
Fixes #4332
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
8d82033855
Notify when contacts join Signal
...
Closes #4314
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
751fa21f60
Ignore envelopes with unknown type
...
// FREEBIE
2015-11-04 17:56:19 -08:00
Moxie Marlinspike
11a93fabe5
Synchronize with paired devices when a contact changes.
...
// FREEBIE
2015-11-04 17:56:19 -08:00
Jake McGinty
758b306527
really fix crash from incorrect send job
...
Closes #4246
// FREEBIE
2015-10-26 11:44:45 -07:00
Moxie Marlinspike
a64dba8a7e
Correctly format numbers in outgoing MMS
...
// FREEBIE
2015-10-24 18:36:03 -07:00
Moxie Marlinspike
c258b4c7aa
Expand MMS-specific queries, properly parse incoming MMS.
...
// FREEBIE
2015-10-24 09:40:04 -07:00
Moxie Marlinspike
a5971da2ad
Revert "fix crash from incorrect send job"
...
This reverts commit 8fe5f35b13
.
2015-10-23 17:08:17 -07:00
Jake McGinty
8fe5f35b13
fix crash from incorrect send job
...
related to #4153
Clsoes #4246
// FREEBIE
2015-10-23 17:02:10 -07:00
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
2015-10-16 10:07:50 -07:00
Moxie Marlinspike
5fd9874ab6
Support for group update messages from paired devices.
...
Fixes #3566
// FREEBIE
2015-10-15 17:10:54 -07:00
Moxie Marlinspike
09e52834a6
Refactor "parts" to contain MMS/PDU madness to MMS code paths.
...
Closes #4248
// FREEBIE
2015-10-15 11:11:39 -07:00
Jake McGinty
cdf982a356
be safer when processing parts in AttachmentDownloadJob
...
Closes #4166
// FREEBIE
2015-10-01 12:36:54 -07:00
Moxie Marlinspike
0b20e99cd2
Refresh attributes to signal voice support on update.
...
// FREEBIE
2015-09-30 18:24:40 -07:00
Moxie Marlinspike
31e20ca87e
Distinguish between secure and insecure call in conversation menu.
...
// FREEBIE
2015-09-30 14:30:11 -07:00
Moxie Marlinspike
d9a3f5a3b8
Fix up security initialization stuff in ConversationActivity
...
// FREEBIE
2015-09-30 14:30:10 -07:00
Moxie Marlinspike
4044da849e
Replace all strings containing 'TextSecure' with 'Signal'
...
// FREEBIE
2015-09-30 14:30:10 -07:00
Moxie Marlinspike
7377e6c7da
Support for syncing and checking secure voice support.
...
// FREEBIE
2015-09-30 14:30:10 -07:00
Moxie Marlinspike
d83a3d71bc
Support for Signal calls.
...
Merge in RedPhone
// FREEBIE
2015-09-30 14:30:09 -07:00
Moxie Marlinspike
92593d459b
Remove the final vestiges of encrypted SMS
...
Fixes #4026
// FREEBIE
2015-09-24 14:12:09 -07:00
Jake McGinty
0e06e2de97
fix queuing of pending parts that had data already
...
fixes #4061
Closes #4073
// FREEBIE
2015-09-14 18:06:03 -07:00
Jake McGinty
21b7dccf1c
fix persistent stale attachment jobs
...
Closes #4041
// FREEBIE
2015-09-07 14:37:53 -07:00
Jake McGinty
923d9fb07b
fix crash on pending self-sent media
...
fixes #4016
Closes #4017
// FREEBIE
2015-09-04 11:42:58 -07:00
Jake McGinty
80ce83ef9d
Media download controls
...
Closes #3991
// FREEBIE
2015-09-03 11:40:55 -07:00
Sam Lanning
99adbe5784
Made some inner classes static (For Efficiency)
...
(and made one explicitly private)
Closes #3932
// FREEBIE
2015-09-02 12:46:56 -07:00
Jake McGinty
0c9d9e8dcf
use glide for encoding and resizing outgoing media
...
Closes #3915
// FREEBIE
2015-09-02 12:34:28 -07:00
Moxie Marlinspike
973ed7686b
Don't sync groups when there are no groups.
...
Fixes #3882
// FREEBIE
2015-08-06 10:20:13 -07:00
Moxie Marlinspike
f8bb065ffd
Support for images in notifications.
...
Closes #3859
Fixes #1858
// FREEBIE
2015-08-05 13:08:28 -07:00
Moxie Marlinspike
d2a728fc08
Display notification after upgrade migration w/ password.
...
// FREEBIE
2015-07-21 16:03:56 -07:00
Moxie Marlinspike
90d5e9dccd
Fix for double notification when locked.
...
Fixes #3702
// FREEBIE
2015-07-20 18:00:48 -07:00
Moxie Marlinspike
fda900e95d
Fix for receiving message after upgrade with no MS set.
...
// FREEBIE
2015-07-17 18:02:17 -07:00
Moxie Marlinspike
8d9ae731ef
Only use MasterSecret for local message encryption.
...
Not for the axolotl store.
// FREEBIE
2015-07-16 11:15:56 -07:00
Jake McGinty
1bdfb5f382
fix MMS part transfer indicator
...
make it less forever
Fixes #3546
Closes #3603
// FREEBIE
2015-07-10 12:38:43 -07:00
Moxie Marlinspike
59772504e3
Use attachment stream builders.
...
// FREEBIE
2015-07-01 15:39:18 -07:00
Jake McGinty
c2e5f4e80a
Add transfer indicators for attachments
...
Closes #3498
// FREEBIE
2015-07-01 15:38:55 -07:00
Moxie Marlinspike
c920146bff
Set serialVersionUID for all modified jobs.
...
At least this won't continue to fuck us up.
// FREEBIE
2015-06-24 18:30:55 -07:00
Moxie Marlinspike
2c9c9891c6
Support for multi-device group sync and group requests.
...
// FREEBIE
2015-06-24 18:30:55 -07:00
Moxie Marlinspike
bf3c1d3745
Support for device management, limits, and contact requests.
...
// FREEBIE
2015-06-24 18:30:55 -07:00
Moxie Marlinspike
3c41f27298
Support for multi-device contact sync.
...
// FREEBIE
2015-06-24 18:30:55 -07:00
Moxie Marlinspike
40af2a81db
Support for per-recipient muting, blocking, and ringtones.
...
Fixes #757
Fixes #354
Fixes #222
Closes #1815
Closes #3378
// FREEBIE
2015-06-11 11:09:02 -07:00
Moxie Marlinspike
26bcb590a7
Log retrieve exception.
...
// FREEBIE
2015-06-11 09:43:34 -07:00
Rhodey Orbits
e3760630bf
1) move PUSH_URL from Release.java into BuildConfig.java
...
2) use textsecure-service-staging.whispersystems.org for test build
// FREEBIE
hack
2015-06-03 12:17:24 -07:00
Moxie Marlinspike
ec60c24849
Slight cleanup for ConfirmIdentityDialog change.
...
Closes #3225
// FREEBIE
2015-06-03 11:11:23 -07:00
Moxie Marlinspike
9c2f14dade
Introduce unique part ID column for better cache accuracy.
...
Closes #3226
// FREEBIE
2015-05-21 12:17:42 -07:00
Moxie Marlinspike
2cfc714b64
Support for receiving incoming sync messages.
...
Closes #3188
// FREEBIE
2015-05-21 09:55:42 -07:00
Moxie Marlinspike
41cad291f9
Display a generated avatar icon rather than a single default.
...
If the contact doesn't have an image, render a color-coded
background and the first letter of the contact's name.
1) Don't display anything during recipient resolution.
2) Display a # icon in material gray for recipients with no name.
3) Display a material group icon in material gray for groups with
no avatar icon set.
Closes #3104
// FREEBIE
2015-05-07 10:36:54 -07:00
Jake McGinty
ab82ff0b69
use IPv6 routing API then fallback to Lollipop
...
1) Utilize the hidden API requestRouteToHostAddress that takes an
InetAddress (IPv6-capable) instead of a forced IPv4 integer-
encoded address. Will fallback to the IPv4 one if reflection
fails for whatever reason.
2) If on Lollipop and our manual MMS code doesn't work, will try
to use the Lollipop API and give it 60 seconds instead of 30,
since I did run into the timeout not being long enough in
certain conditions and I'm thinking maybe it just wasn't long
enough for some carriers.
Closes #3105
// FREEBIE
2015-05-04 18:29:30 -07:00
Moxie Marlinspike
efcdb7eb66
Add GroupId to PushNotificationReceivedJob
...
Pending message requests should probably be made sequentially.
// FREEBIE
2015-04-16 12:22:05 -07:00