Moxie Marlinspike
8aa185070b
Update libsignalservice to 2.13.0
...
- Eliminate the explicit spongycastle dependency. All access to
primitives is done through the JCE interfaces now, which allows
us to use a secure native-backed provider like conscrypt.
- Use conscrypt for our default security provider. This gives us
fast TLS 1.2 and 1.3 support on all devices, even before they
had platform support (like 4.4).
- Update minSdk to 18. Unfortunately the JCE interfaces for GCM
primitives are JDK 7+ (!) only, which became supported by Android
at 18.
2019-03-21 11:19:06 -07:00
Greyson Parrelli
aa5e32f0ee
Add back the highlight and sticker tools.
2019-03-21 11:02:07 -07:00
Greyson Parrelli
8e86c7d81a
Fix media button visibility issue on older Android versions.
...
Turns out setVisibility doesn't work unless you call clearAnimation()
first on older Android versions. Isn't that grand?
2019-03-21 00:11:01 -07:00
Greyson Parrelli
148cfd1b53
Fix crash when single-selecting large media.
2019-03-20 23:01:32 -07:00
Greyson Parrelli
6e7fab40ac
Guard against OOB moves in media send flow.
2019-03-19 18:38:06 -07:00
Greyson Parrelli
8a7cac7c03
Switch gallery to permanent dark theme.
2019-03-19 18:38:06 -07:00
Greyson Parrelli
932e7b4af5
Fix button flicker when selecting single media item.
2019-03-19 18:38:02 -07:00
Greyson Parrelli
2f8a7fa296
Bounce the media select button when selecting media.
2019-03-19 15:42:08 -07:00
Greyson Parrelli
5e6f71cd32
Show selection order in multi-select.
2019-03-19 15:42:08 -07:00
Greyson Parrelli
ce0058864f
Make BlobProvider write to disk on a background thread.
...
Otherwise we hit some weird blocking issues with voice note recording.
2019-03-19 15:34:04 -07:00
Greyson Parrelli
c646316a97
Block typing indicators from blocked contacts.
2019-03-19 09:39:19 -07:00
Greyson Parrelli
5b534c8b1a
Update URL homograph rules.
2019-03-18 17:37:19 -07:00
Greyson Parrelli
975a121c55
Show a warning for users on API < 19.
...
We'll be updating minSdk to 19 in 4.37. This lets these users continue
to use the app, but they'll be warned with a persistent banner saying
that they can't receive updates.
2019-03-18 15:09:56 -07:00
Greyson Parrelli
64cf032181
Updated media send UI.
2019-03-18 15:09:56 -07:00
Alan Evans
286b64274c
Replace Avatar Cropper.
2019-03-18 15:09:50 -07:00
Alan Evans
0cb2404735
Lint error fixes.
...
* Old Gingerbread code removed.
* Add missing super call.
2019-03-18 11:14:18 -03:00
Greyson Parrelli
0a8bbf14a6
Merge camera into send flow.
2019-03-14 16:25:35 -07:00
Greyson Parrelli
eb1dd58a0b
Persistent media in multi-send.
2019-03-14 16:20:36 -07:00
Alan Evans
e0c11998c3
Make DisplayRecord take context as argument, so locale is more likely to be correct.
2019-03-13 18:28:16 -03:00
Alan Evans
de72eceecf
Update help URL to avoid redirect.
2019-03-13 18:19:33 -03:00
Alan Evans
2c28fa6a57
Make GIF search layout option sticky.
...
Fixes #7843
2019-03-12 11:41:54 -03:00
Alan Evans
f010a3ec0d
Consistent Recipient to add contact Intent export.
2019-03-12 11:29:59 -03:00
Alan Evans
e390fb4fc5
Fix ShareMessage toolbar back button.
2019-03-12 11:29:59 -03:00
Greyson Parrelli
a4ce77cbcc
Remove unused method.
2019-03-12 11:29:59 -03:00
Greyson Parrelli
18613e3b6f
Remove generic foreground service condition from Job.
...
I don't think it actually helps at all, meaning it just adds
complexity.
Fixes #8677
2019-03-12 11:29:59 -03:00
Greyson Parrelli
a122bb4899
Created new BlobProvider.
...
One unified place to create blobs for different lifespans.
2019-03-10 15:18:39 -07:00
Greyson Parrelli
1efb92b913
Fix issue where SMS were sometimes sent as MMS.
...
Fixes #8664
2019-03-06 08:12:00 -08:00
Greyson Parrelli
77e971cb9b
Fix bug where system emoji setting was ignored in message bubbles.
...
EmojiTextView. It is our gift. It is our curse.
2019-03-02 19:31:28 -08:00
Greyson Parrelli
003fa1b059
Make long text attachments contain the entire message.
...
Instead of just containing the 'overflow', long text attachments now
contain the entire body in full.
2019-03-02 19:31:22 -08:00
Greyson Parrelli
55699e27bc
Added ability to receive long messages.
...
Send support is in here too. We'll enable it in a future release after
enough people have updated.
2019-03-01 14:15:08 -08:00
Greyson Parrelli
bf28e109d3
Update registration UI.
2019-03-01 14:15:01 -08:00
Greyson Parrelli
fd862e575b
Fix situation where search nav could get stuck.
...
If you navigated to the ConversationActivity again via some action (like
a shared contact invite) while searching, we don't get the toolbar close
event, and therefore the search nav would stay open. Now we just reset
it on newIntent() to be safe.
2019-03-01 13:44:32 -08:00
Greyson Parrelli
7fd6f5b3ff
Fix search highlight in multi-whitespace bodies.
...
The way the highlight was done could get screwed up if you had multiple
whitespaces in a row. This particularly came up with messages with
multiple newlines.
2019-03-01 13:44:32 -08:00
Greyson Parrelli
42e94d8f92
Remove leftover half-height camera code.
2019-03-01 13:44:32 -08:00
Greyson Parrelli
b572fce658
Remove some unnecessary intermediate blob creation.
2019-03-01 13:44:32 -08:00
Greyson Parrelli
276e867f9a
Improved address resolution for ContentProxySelector.
...
We can use an unresolved address to avoid all the threading stuff in
that class.
2019-03-01 13:42:10 -08:00
Greyson Parrelli
b2d4608cdb
Improved handling for URLs that are composed of mixed character sets.
2019-02-24 10:00:44 -08:00
Greyson Parrelli
60c7fb0056
Fix possible NPE.
2019-02-20 17:20:12 -08:00
Greyson Parrelli
fa6da1902f
Fix button spinning after failed CAPTCHA.
2019-02-19 13:13:32 -08:00
Greyson Parrelli
33daa21ad9
Guard against devices not supporting mandatory ContentProvider columns.
...
The docs specify that this column is supposed to be present, but a
crash says it wasn't, so alas, here in goes the check.
2019-02-19 09:34:24 -08:00
Greyson Parrelli
5c0e1100ed
Fix possible NPE in conversation menu.
...
Would occur if someone had previously muted a conversation with
themselves.
2019-02-16 11:45:09 -08:00
Greyson Parrelli
b962751c96
Fix possible IllegalArgumentException during a database migration.
2019-02-15 19:33:16 -08:00
Greyson Parrelli
94e8553b73
Fix possible NPE during conversation load.
2019-02-15 19:24:23 -08:00
Greyson Parrelli
a2b6dbda14
Correctly sync Note to Self conversation color.
2019-02-15 14:21:27 -08:00
Greyson Parrelli
a6564f8f84
FCM improvements.
2019-02-15 14:21:23 -08:00
Greyson Parrelli
02b0800b22
Support requesting a CAPTCHA during registration.
2019-02-14 20:19:07 -08:00
Greyson Parrelli
2cfa431cad
Supply a reason for CDS error reporting.
2019-02-14 20:19:07 -08:00
Greyson Parrelli
fe4068afce
Don't preview links if your cursor is touching them.
2019-02-14 20:19:07 -08:00
Greyson Parrelli
1c23603c25
Add the Redmi Note 5 to the hardware AEC blacklist.
2019-02-14 20:19:07 -08:00
Greyson Parrelli
c2a86fcc74
Sync self-sends to desktop.
...
Updated UI to show self-conversations as "Note to Self".
2019-02-14 20:19:07 -08:00
Greyson Parrelli
d42c9b5dbc
Ensure the group shortstring in the action bar is up-to-date.
...
There were situations where adding/removing members from a group
would update the group member list, but the short string (the little
text listing the first couple members of the group) wouldn't be updated
until you left the screen and came back.
2019-02-14 20:19:06 -08:00
Greyson Parrelli
3b6429c163
Don't unnecessarily stop the ShareActivity in onPause.
...
1. Due to ShareActivity having noHistory=true, it will already be
ditched when you leave the activity.
2. We only need to truly finish() here if we've dropped the underlying
media.
Fixes #8591
2019-02-14 20:19:06 -08:00
Greyson Parrelli
6896f8ea15
Properly check attachment size during media send.
...
Prevent users from trying to send videos that exceed the size limit.
Also, this commit properly populates height/width on media shared into
the app.
Fixes #8573
2019-02-14 20:19:06 -08:00
Greyson Parrelli
a3768c7d74
Fix StickyHeader measuring.
...
It didn't re-measure when pulling an item from the cache, screwing stuff
up after a phone rotation. Had a workaround for it for specific screens,
but this fixes the problem at the source.
Fixes #8583
2019-02-14 20:19:06 -08:00
Greyson Parrelli
c9a0a66f18
Migrate backup passphrase to be keystore-encrypted when available.
2019-02-14 20:19:06 -08:00
Greyson Parrelli
db1ad39c6b
Fix issues with bundled notifications.
2019-02-14 20:19:06 -08:00
Greyson Parrelli
9f04c28bfd
Implemented conversation search.
...
You can now search for messages within a specific conversation.
2019-02-14 20:19:01 -08:00
Greyson Parrelli
cfff10622a
Move conversation classes to their own package.
2019-02-14 14:29:12 -08:00
Greyson Parrelli
b769c7d9b6
Properly batch contact inserts.
...
Fixes #8580
2019-02-14 14:29:12 -08:00
Greyson Parrelli
45ddb7e1ad
Revert "Fix notification badge display."
...
This reverts commit a0c1446e9f
.
2019-02-07 16:17:17 -08:00
Greyson Parrelli
3683e6a9e2
Revert "Apply contact updates in batches of 50."
...
This reverts commit 5d9d6ac12b
.
2019-02-06 00:54:03 -08:00
Greyson Parrelli
c364345e1d
Add some additional FCM logging.
2019-02-06 00:53:52 -08:00
Greyson Parrelli
e884911b60
Update the link preview domain whitelist.
2019-02-04 09:05:40 -08:00
Greyson Parrelli
7b20fca1ac
Clearing the text field resets link preview cancellation.
2019-02-04 08:54:54 -08:00
Greyson Parrelli
be66db898c
Fix possible double-cancel in CallRequestController.
2019-02-02 10:09:38 -08:00
Greyson Parrelli
5d9d6ac12b
Apply contact updates in batches of 50.
...
If batch sizes are too large, we'll get a Binder exception.
Fixes #8580
2019-02-01 12:47:34 -08:00
Greyson Parrelli
c6d3bed8da
Hide emoji button in media flows when system emoji are enabled.
...
Fixes #8581
2019-02-01 09:17:07 -08:00
Greyson Parrelli
90a37852cc
Hide quoted attachments from All Media and media rails.
...
Fixes #8009
2019-01-30 16:34:10 -08:00
Greyson Parrelli
1763be2956
Hide call settings for groups.
2019-01-30 16:33:02 -08:00
Greyson Parrelli
9797c54a4d
Removed sonar ping from calls.
...
People rarely understood what it meant, and the information is available
on the screen if-needed ('dialing' vs 'ringing').
2019-01-30 16:10:47 -08:00
Greyson Parrelli
c5114e2cb3
Updated to WebRTC M71.
2019-01-30 16:10:47 -08:00
Greyson Parrelli
e3b22dabce
Harden notification channels.
...
There's odd corner cases where channels can be duplicated. This commit
adds some hard checks where we trim any dead channels, and unset any
notification channels from recipients whose notification channel isn't
present in the system settings.
2019-01-30 16:10:47 -08:00
Bas van Schaik
ba67796992
Fix invalid equals
in NotificationChannels.channelExists
...
`DEFAULT_CHANNEL_ID` is a String, but `channel` is a NotificationChannel. Equals will therefore always return `false`. I think my fix (using `getId()`) is what was intended.
2019-01-30 16:10:47 -08:00
Greyson Parrelli
d482c60a98
Switch from GCM to FCM.
2019-01-30 16:10:47 -08:00
Greyson Parrelli
c76081d99c
Added support for link previews.
2019-01-30 16:10:43 -08:00
Greyson Parrelli
bef9beff16
Updated Gradle to 5.1
2019-01-29 09:22:44 -08:00
Greyson Parrelli
25e82ff5e4
Fixed issue where we'd incorrectly show input shadow.
...
We might have also scrolled with typing indicators when we shouldn't of.
All came down to #isAtBottom() being calculated incorrectly.
2019-01-27 22:07:55 -08:00
Greyson Parrelli
a0c1446e9f
Fix notification badge display.
...
This reverts commit 2489ea0d5b
.
2019-01-21 16:43:59 -08:00
Greyson Parrelli
1e534a2a10
Fix group avatars not sending.
...
Fixes #8547
2019-01-20 12:00:18 -08:00
Greyson Parrelli
e6b4249cf3
Deprecate usage of the signaling key.
2019-01-17 15:37:53 -08:00
Greyson Parrelli
d2be554e1b
Use orientation in media picker to determine width and height.
2019-01-17 12:33:41 -08:00
Greyson Parrelli
e7a807ab5b
Ensure body text is carried through to the media send screen.
...
We were only doing it if you entered through the media rail. Now we also
do it if you enter through the gallery.
2019-01-17 11:42:01 -08:00
Greyson Parrelli
a6f31c60bd
Show a toast when you've gone over the max media selection.
2019-01-16 14:31:59 -08:00
Greyson Parrelli
4643dea2ad
Filter out non-media from media send screen.
2019-01-16 13:32:39 -08:00
Greyson Parrelli
f70bf9c5bd
Default to 'All media' bucket for items from the rail.
...
This should give people a better multi-send experience when they want to
add more media.
2019-01-16 13:18:16 -08:00
Greyson Parrelli
b08f81a8dc
Fix bug where back stack can get stuck in the gallery.
2019-01-15 15:08:35 -08:00
Greyson Parrelli
535e00c6d0
Saving an album will now save every item.
...
Fixes a bug where saving would incorrectly only save the first image.
2019-01-15 14:56:27 -08:00
Greyson Parrelli
66dde4415d
Added an 'All media' folder in the gallery.
2019-01-15 13:38:06 -08:00
Greyson Parrelli
2209ff2272
Use AttachmentUploadJob in PushGroupSendJob.
2019-01-15 12:43:38 -08:00
Greyson Parrelli
1502b0ae3e
Add processing rules for partial US and BR phone numbers.
2019-01-15 11:57:42 -08:00
Greyson Parrelli
4952b4470d
Fix bug related to gallery selection state.
...
TreeSets are annoying. contains() is calculated with the comparator,
which can lead to some weird bugs. Made sure the comparator didn't think
two items with the same date were identical.
Also fixed stableId generation to avoid any potential weirdness there.
2019-01-14 15:40:38 -08:00
Greyson Parrelli
5450967d00
Ensure all Workers have a public WorkManager constructor.
2019-01-14 15:15:53 -08:00
Greyson Parrelli
8434813ad6
Updated libsignal-service-java to 2.12.5
2019-01-14 11:25:12 -08:00
Greyson Parrelli
dcae8a8a2f
Update WorkManager to beta01.
2019-01-14 11:25:12 -08:00
Greyson Parrelli
6fa7eca60b
Implement new media send flow.
...
Update our media send flow to allow users to send multiple images/videos
at once. This change includes:
- New in-app media picker flow.
- Ability to caption images and videos.
- Image editing tools are made more prominent in the flow.
- Some fixes to the image editing tools.
2019-01-14 11:25:06 -08:00
Greyson Parrelli
b553bb1cb0
Don't allow sending SMS unless we're the default.
2019-01-13 19:25:40 -08:00
Greyson Parrelli
3b67382f67
Remove call log permissions, use SMS Retriever API during registration.
...
This is to adhere to the Play Store policy updates.
See: https://play.google.com/about/privacy-security-deception/permissions/
2019-01-13 19:25:40 -08:00
Greyson Parrelli
19d5ba5c0e
Upload attachments in a separate job.
2019-01-13 19:25:40 -08:00
Greyson Parrelli
96c641c2a0
Add support for Job chains.
2019-01-13 19:25:40 -08:00
Greyson Parrelli
1a50910910
Update WorkManager to alpha12.
2019-01-13 19:25:40 -08:00