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
Greyson Parrelli
40f9b32a75
Fix tap-to-upgrade on website releases.
...
Tested on Android 9.0, 7.0, and 5.1.
Fixes #7936
2019-01-13 19:08:33 -08:00
Greyson Parrelli
7bda952ee5
Fix crash when DeviceName is shorter than 4 characters.
2019-01-13 07:26:16 -08:00
Greyson Parrelli
7c66c4a4f7
Updated logging.
2019-01-12 13:32:24 -08:00
Greyson Parrelli
c6f3a66cad
Support encrypted linked device names.
2019-01-12 13:32:24 -08:00
Greyson Parrelli
e5a2cea6b0
Fix voice note seeking issue.
...
On some devices, pausing+resuming (or seeking) would restart playback
from the beginning, but show a progress bar further up. This seems to
have been caused by same race condition-y thing where we were seeking
multiple times in rapid succession. Now we'll only play once, and things
seem to be fine now.
Also removed usage of some deprecated methods.
Fixes #8432
2018-12-11 13:05:36 -08:00
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
2489ea0d5b
Revert "Fix notification badge display."
...
This reverts commit caf93b9203
.
2018-12-06 12:14:45 -08:00
Greyson Parrelli
caf93b9203
Fix notification badge display.
...
Fixes #7580
2018-12-03 15:32:13 -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
4b88f7b845
Unsubscribe from typing observers when forwarding messages.
2018-12-01 10:39:48 -08:00
Greyson Parrelli
a81cc685b2
Fix crash where toolbar was updated off of the main thread.
2018-12-01 10:22:05 -08:00
Greyson Parrelli
d6abf89a7a
Filter out typing indicators from ourself.
2018-12-01 09:51:28 -08:00
Greyson Parrelli
dd55fe90bc
Fix typing experience upgrade version.
...
Because of the production hotfix, we need to up this version to be
higher than what is currently in prod.
2018-11-28 09:29:19 -08:00
Greyson Parrelli
5a53268534
Update typing indicator intro screen.
2018-11-27 17:45:58 -08:00
Greyson Parrelli
81055e61a6
Update WorkManager to 1.0.0-alpha11.
2018-11-27 12:35:41 -08:00
Greyson Parrelli
8a1a47e773
Fix MediaPreview NPE.
2018-11-27 09:32:56 -08:00
Greyson Parrelli
187d7b3e3a
Fix the caption database migration.
2018-11-26 11:50:55 -08:00
Greyson Parrelli
5d1fcdaded
Fix typing indicator animation.
...
The Android animators were getting out of sync when frames were dropped
(despite my best efforts), so now we just manually render each animation
frame as a function of time, so it never gets screwed up.
Fixes #8388
2018-11-26 09:33:31 -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
e665252b86
Add more logging to GenericForegroundService.
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
3f25fb7d5f
Handle voice note media playback with ExoPlayer.
...
There are several (popular) phone models out there that have bugs in
their MediaPlayer implementation that cause them to be unable to play
voice notes. By moving to ExoPlayer, an application-level media player,
we should avoid most of these headaches and stardardize playback.
Fixes #7748
2018-11-19 11:36:08 -08:00
Greyson Parrelli
a2ea115650
Initialize jobs in the try block.
...
In the case where we add new fields to a Job's InputData, we want to
make sure that initialize() is called in the try block so that if it
fails, it simply fails the job (allowing the user to retry with the new
field) instead of crashing.
2018-11-17 09:56:52 -08:00
Greyson Parrelli
3716d69b0b
Dismiss emoji variation popup when keyboard is dismissed.
...
Fixes #8372
2018-11-15 10:17:07 -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
28081abe1c
Split the 'people' emoji spritesheet into multiple chunks.
...
The aim of this is to help performance by breaking up the single massive
spritesheet into smaller ones. This will limit the amount of data that
needs to be kept in memory to render emoji.
(Hopefully) Fixes #8357
2018-11-13 19:29:51 -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
446585ad68
Fix emoji variation selector on older devices.
...
Weird platform-specific bug was preventing the display of the
PopupWindow.
2018-11-13 11:19:29 -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
Yassine El Khadiri
787bcf7752
Fix backup MAC checking.
...
if(MessageDigest.isEqual(ourMac, theirMac) was always returning false
since ourMac was of length 32 and theirMac was of length 10.
2018-10-31 11:17:29 -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
cfeee25488
Use correct link for Sealed Sender blog post.
...
Fixes #8324
2018-10-30 14:12:34 -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
b7b9554364
Prevent multiple instances of the same job running concurrently.
...
There are rare corner cases where a Job could be preempted by the
JobScheduler and then be rescheduled before the preempted job finished
running. This could create weird race conditions with bad consequences.
To fix this, we create a fun locking system that prevents two jobs with
the same UUID from running at the same time.
2018-10-30 08:48:07 -07:00
Greyson Parrelli
f15fb904bf
Fix desktop double notification bug.
...
There were situations where we were posting two notifications for messages
when you had an 'active desktop'. This removes that.
2018-10-30 08:48:07 -07:00
Greyson Parrelli
86e4221182
Use a unique notification icon for backups.
2018-10-27 23:34:18 -07:00
Greyson Parrelli
dfe8b25dd7
Use a unique notification icon for the persistent background connection.
2018-10-27 23:32:28 -07:00
Greyson Parrelli
53050b3845
Fix issue with group avatar display.
...
Some legacy code was making the contact photo visible when it shouldn't
be.
2018-10-27 23:12:25 -07:00
Greyson Parrelli
6ce278114f
Ensure profile photo in ConversationList is accurate.
...
Fixes #8270
2018-10-26 11:05:14 -07:00