Niels Andriesse
8caaee7b43
Catch key pair restoration errors
2019-08-01 09:26:06 +10:00
Niels Andriesse
fcb5cbb74d
Fix threading issue
2019-07-26 16:16:40 +10:00
Niels Andriesse
97b25507d2
Partially fix background message issue
2019-07-26 15:17:12 +10:00
Niels Andriesse
a7b49d2ce5
Revert back to old background message strategy
2019-07-26 12:20:55 +10:00
Niels Andriesse
a3a757c3ef
Disable quick reply for now
2019-07-25 10:40:57 +10:00
Niels Andriesse
7598830a1b
Fix quote messages & friend request handling
2019-07-24 15:05:39 +10:00
gamabuntan
4374a902be
Merge pull request #2 from loki-project/friend-request-handling
...
Friend Request Handling V2
2019-07-24 12:49:00 +10:00
Niels Andriesse
b3d76bfd28
Clean
2019-07-24 12:48:42 +10:00
Niels Andriesse
0ef0140b0d
Update package
2019-07-24 12:30:23 +10:00
Mikunj
1d7cb0d5bb
Updated friend request handling.
2019-07-24 12:18:45 +10:00
Niels Andriesse
fe16a90741
Clean up splash screen
2019-07-24 10:09:02 +10:00
Niels Andriesse
1b7a04ab50
Update notification & app switcher icon
2019-07-24 09:51:09 +10:00
Niels Andriesse
a925b17419
Fix session handling
2019-07-23 16:02:25 +10:00
Niels Andriesse
ecd60b8723
Clean
2019-07-22 16:46:03 +10:00
Niels Andriesse
6d521e4227
Send session reset request acknowledgement if needed
2019-07-22 16:22:40 +10:00
Niels Andriesse
9be8d75773
Refactor
2019-07-22 15:11:38 +10:00
Niels Andriesse
06e8d20da4
Refactor
2019-07-22 14:25:59 +10:00
Niels Andriesse
a767c84f74
Fix remaining UI issues
2019-07-22 14:05:51 +10:00
Niels Andriesse
1da6f20f18
Further Lokify UI
2019-07-22 13:08:56 +10:00
Mikunj
b71293fb11
Merge branch 'master' of https://github.com/loki-project/loki-messenger-android
2019-07-22 12:34:15 +10:00
Mikunj
16ddfc37ce
Finalise session reset.
2019-07-22 12:34:10 +10:00
Niels Andriesse
210a88ce02
Use identicons as profile pictures
2019-07-22 12:13:53 +10:00
Mikunj
fce57f46a0
More session reset.
2019-07-22 12:09:34 +10:00
Niels Andriesse
1d2e8072a0
Fix build
2019-07-22 11:27:24 +10:00
Niels Andriesse
d6cf9b573e
Use Signal's job framework for background polling
2019-07-22 11:22:42 +10:00
Niels Andriesse
19cdf8068d
Fix build
2019-07-22 10:41:50 +10:00
Mikunj
61622fbd3d
Session reset handling.
2019-07-22 09:38:12 +10:00
Mikunj
e626e09a45
Send PreKeyBundle with an EndSession message.
2019-07-22 08:30:28 +10:00
Niels Andriesse
2329e9d03d
Implement BackgroundPollWorker
2019-07-19 16:46:04 +10:00
Niels Andriesse
8651f20c9b
Further Lokify UI
2019-07-19 15:59:51 +10:00
Niels Andriesse
c0a9500706
Observe display name changes
2019-07-19 15:23:45 +10:00
Niels Andriesse
956f20fc0e
Use display name
2019-07-19 15:02:47 +10:00
Niels Andriesse
acae76161d
Parse display name from messages
2019-07-19 14:15:51 +10:00
Niels Andriesse
244d4fd899
Fix friend request accepted preview
2019-07-19 13:23:19 +10:00
Niels Andriesse
8c054a060e
Block input if a friend request is pending
2019-07-19 13:15:17 +10:00
Niels Andriesse
b123948230
Exclude empty messages from conversations
2019-07-19 10:17:34 +10:00
Niels Andriesse
3a8d509c1e
Further Lokify UI
2019-07-18 15:59:41 +10:00
Niels Andriesse
424998a8ee
Implement restore from seed logic
2019-07-17 11:31:19 +10:00
Niels Andriesse
659d9e6a8f
Implement restore from seed UI
2019-07-17 10:26:06 +10:00
Niels Andriesse
bac4b86ec3
Further Lokify settings UI
2019-07-17 09:45:20 +10:00
Niels Andriesse
ab99874ede
Partially Lokify UI
2019-07-16 17:09:15 +10:00
Niels Andriesse
862288abfd
Clean
2019-07-15 15:06:52 +10:00
Niels Andriesse
208ac71bfe
Update for core changes
2019-07-15 13:19:58 +10:00
Niels Andriesse
daa1248e6c
Debug session handling
2019-07-02 11:47:28 +10:00
Niels Andriesse
ca370211f8
Resolve TODO
2019-06-28 16:08:27 +10:00
Niels Andriesse
e8bece45b9
Fix missing delegate & friend request acceptance
2019-06-28 14:59:25 +10:00
Niels Andriesse
52a0b2a5e8
Clean
2019-06-28 14:07:42 +10:00
Niels Andriesse
86c765b1c2
Debug friend request logic further
2019-06-28 12:32:23 +10:00
Niels Andriesse
1a7e0562bb
Debug friend request logic
2019-06-27 16:03:05 +10:00
Niels Andriesse
232faba39f
Fix message delivery
2019-06-27 14:07:13 +10:00
Niels Andriesse
dd67e59807
Fix pre key usage
2019-06-26 14:31:38 +10:00
Niels Andriesse
e7f7c3cdb2
Hook up message receiver
2019-06-25 13:51:24 +10:00
Niels Andriesse
047a98ad63
Disable input bar if a friend request is pending
2019-06-25 11:48:39 +10:00
Niels Andriesse
b27dfdf6ce
Fix crash
2019-06-25 09:28:37 +10:00
Niels Andriesse
169a7e609e
Propagate message ID
2019-06-24 16:00:15 +10:00
Niels Andriesse
a3d23e55a1
Update for core changes
2019-06-24 14:57:53 +10:00
Niels Andriesse
1023227744
Remove unnecessary friend request status update
2019-06-24 14:26:06 +10:00
Niels Andriesse
b58fce3a68
Update for core changes & refactor
2019-06-24 14:10:09 +10:00
Niels Andriesse
d99a996d0e
Finish friend request view & add message friend request status
2019-06-24 11:22:53 +10:00
Niels Andriesse
5c4ef59c0b
Fix UI issue
2019-06-21 15:29:25 +10:00
Niels Andriesse
f6542b9834
Further build out friend request view
2019-06-21 14:18:38 +10:00
Niels Andriesse
7c501980fa
Implement friend request view skeleton
2019-06-21 12:21:48 +10:00
Niels Andriesse
a1b6eaf3f5
Refactor
2019-06-21 10:39:05 +10:00
Niels Andriesse
bd00013f02
Hide keyboard before going to key pair screen
2019-06-20 14:25:38 +10:00
Niels Andriesse
3afd8b8b7f
Fix database issues
2019-06-19 15:45:40 +10:00
Niels Andriesse
26ba7fb387
Update for core changes
2019-06-19 14:47:42 +10:00
Niels Andriesse
ab68ae2e58
Group Loki logic together in ApplicationContext
2019-06-18 13:23:58 +10:00
Mikunj
6928bfa2ae
Added long polling
2019-06-18 12:49:21 +10:00
Niels Andriesse
fc4ea70621
Update for core changes
2019-06-18 10:53:03 +10:00
Niels Andriesse
21e1ece19c
Model friend request status as an enum
2019-06-18 09:57:36 +10:00
Mikunj
d44081d040
Added database to map thread to loki friend request
2019-06-17 12:17:05 +10:00
Mikunj
d7bb828d67
Added database which maps sms to loki friend request.
2019-06-17 11:14:42 +10:00
Niels Andriesse
8e16bee431
Update for core changes
2019-06-12 11:41:50 +10:00
Niels Andriesse
69ecb19654
Update for core changes
2019-06-11 16:27:00 +10:00
Niels Andriesse
021bf1b33c
Clean
2019-06-11 14:41:04 +10:00
Niels Andriesse
66010f4755
Fix pre key refreshing & add TODO
2019-06-11 13:41:16 +10:00
Niels Andriesse
c47be74f0d
Fix crash & undo debugging setup
2019-06-11 09:46:42 +10:00
Niels Andriesse
c8cc22e8fe
WIP
2019-06-07 15:21:25 +10:00
Niels Andriesse
becce74cc8
Fix messed up database layout
2019-06-07 14:19:58 +10:00
Niels Andriesse
25e0213d4b
Fix blocked conversation screen
2019-06-07 13:54:50 +10:00
Niels Andriesse
f22be7262b
Hook up conversation screen
2019-06-07 13:27:48 +10:00
Niels Andriesse
0349978321
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-06 15:01:36 +10:00
Niels Andriesse
b4328d1aa3
Create UI path to new conversation screen
2019-06-06 15:01:06 +10:00
Mikunj
75a8123d1e
Send friend request accept message back to the user.
2019-06-06 10:39:24 +10:00
Niels Andriesse
858b34306b
Share actual public key
2019-06-06 10:04:43 +10:00
Niels Andriesse
32e02d1f0d
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-06 09:52:35 +10:00
Niels Andriesse
ed025fcc4b
Disable reminders
2019-06-06 09:51:54 +10:00
Mikunj
89d5c4d0f1
Generate PreKeyBundle if we're sending a friend request.
2019-06-06 09:48:02 +10:00
Niels Andriesse
7d24ab12a2
Implement share public key button
2019-06-05 16:45:12 +10:00
Niels Andriesse
bb180ff2d5
Fix build
2019-06-05 16:30:31 +10:00
Niels Andriesse
57825d58b5
Remove unnecessary getter and setter
2019-06-05 16:24:15 +10:00
Niels Andriesse
79927be0c0
Fix name updating
2019-06-05 16:20:11 +10:00
Niels Andriesse
167e65d67d
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-05 16:05:24 +10:00
Niels Andriesse
e36d9e110c
Add copy mnemonic button
2019-06-05 16:05:08 +10:00
Mikunj
7d33a9cc8f
Always send a friend request if we're not friends.
...
Pass down isFriendRequest to message sender.
2019-06-05 15:53:10 +10:00
Niels Andriesse
2c35ed2177
Fix ugly spacing
2019-06-05 15:49:15 +10:00
Niels Andriesse
eae5e90814
Fix remaining registration issues
2019-06-05 15:33:31 +10:00
Niels Andriesse
3c2504418d
Add missing registration logic
2019-06-05 14:56:10 +10:00
Niels Andriesse
3609517ff0
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-05 13:34:18 +10:00
Niels Andriesse
1498a2e382
WIP
2019-06-05 13:33:54 +10:00
Mikunj
46af1aacbb
Fix incorrect sql statement.
2019-06-05 13:24:33 +10:00
Mikunj
e2ffab9e19
Added friend request state in thread.
...
Added friend request receive logic.
2019-06-05 12:42:55 +10:00
Niels Andriesse
063e0967df
Clean
2019-06-05 10:19:19 +10:00
Niels Andriesse
48f19a80b3
Fix build
2019-06-05 10:13:51 +10:00
Niels Andriesse
52631bcbf2
Rename LokiPreKeyBundleImpl → LokiPreKeyBundleStore
2019-06-05 10:10:33 +10:00
Niels Andriesse
eb323e119b
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-05 10:02:25 +10:00
Niels Andriesse
df2db90495
Fix private key serialization
2019-06-05 10:02:06 +10:00
Mikunj
a0f95c033a
Pass PreKeyBundleStore into message sender.
2019-06-05 09:29:18 +10:00
Niels Andriesse
4148d598f9
Stub key pair screen
2019-06-04 16:37:45 +10:00
Mikunj
384a5ba35d
Update RefreshPreKeysJob.
2019-06-04 15:00:27 +10:00
Niels Andriesse
96efb5d296
Stub account details screen
2019-06-04 14:39:28 +10:00
Niels Andriesse
b77ac07ef5
Rename getBase64Bytes(...) → getBase64EncodedData(...)
2019-06-04 14:16:09 +10:00
Niels Andriesse
3e7759fd07
Merge branch 'master' of github.com:loki-project/loki-messenger-android
2019-06-04 14:07:56 +10:00
Niels Andriesse
59889d0013
Add missing index
2019-06-04 14:05:42 +10:00
Mikunj
bdc62a9645
Added more loki databases.
2019-06-04 14:03:27 +10:00
Mikunj
bccde8baba
Added more loki databases.
2019-06-04 12:12:40 +10:00
Mikunj
4f8af1b4f2
Merge branch 'master' of https://github.com/loki-project/loki-messenger-android
2019-06-04 12:09:52 +10:00
Niels Andriesse
4b1c5dfce2
Quick fix compilation issues
2019-06-04 11:45:29 +10:00
Niels Andriesse
158182baa0
Make swarm cache port specific
...
Last message hash value cache is intentionally not port specific so that if a snode switches to a different port the information about which messages it has stored isn't lost
2019-06-04 11:23:44 +10:00
Niels Andriesse
ab99db6059
Make received message hash values cache user specific
2019-06-04 11:07:20 +10:00
Niels Andriesse
d1e4577132
Implement LokiAPIDatabase
2019-06-04 11:05:03 +10:00
Mikunj
a337c17960
Added loki functions in PreKeyUtils.
2019-06-04 10:10:41 +10:00
Niels Andriesse
8c45a9151f
Stub LokiAPIDatabase
2019-06-04 09:35:18 +10:00
Niels Andriesse
72f95dfff3
Silence Gradle warning
2019-06-03 16:25:02 +10:00
Mikunj
e19a71769f
Added loki message handling.
2019-06-03 16:11:22 +10:00
Mikunj
9d4509d130
Use LokiServiceCipher when decrypting incoming message.
2019-06-03 14:02:29 +10:00
Alan Evans
5ad02f724c
Enable 64-bit.
...
* Multiply version codes by 10 and add a code for each abi in order to generate different version codes for the play store.
2019-05-30 01:08:01 -04:00
Greyson Parrelli
77e3cc40e0
Fix message bubble sizing with link previews and quotes.
...
Previously, quotes could extend beyond the width of the link preview
banner image. Now quotes will be constrained to the size of the link
preview banner image.
2019-05-30 01:08:01 -04:00
Greyson Parrelli
2a644437fb
Add sticker support.
...
No sticker packs are available for use yet, but we now have the
latent ability to send and receive.
2019-05-30 01:08:01 -04:00
Niels Andriesse
a8caa4afc5
Move MnemonicCodec to core
2019-05-29 15:49:42 +10:00
Niels Andriesse
289cc42a9e
Implement MnemonicCodec
2019-05-29 14:25:19 +10:00
Alan Evans
350d1f47d3
Give conversation a standard navigate up button.
...
* Prevent a failing IDE preview.
2019-05-28 17:36:07 -03:00
Alan Evans
2ae42cb095
Hide local video when toggled on and off.
...
Fixes #8827
2019-05-28 17:36:07 -03:00
Alan Evans
dae0d30367
Do not show contact address in subtitle.
2019-05-23 16:57:50 -03:00
Alan Evans
e5f70bdbda
End RTC call on incoming PSTN call.
...
* Hangs up when new device call is answered.
* Ensure not on a device call when starting a Signal call.
2019-05-23 16:56:05 -03:00
Alan Evans
156fe37a60
Get SubscriptionManager by name due to ContextCompat bug for API 22.
...
Fixes #8826
2019-05-23 11:38:24 -03:00
Alan Evans
56848fb83d
Replace sgnl.link urls with a more readable url.
...
* Taken out random string, reverted to single "Let's switch".
#8767
2019-05-23 08:02:15 -03:00
Alan Evans
3cba8ab58a
Keep system default SIM as a fallback for when no conversation default SIM.
...
Fixes #8452
2019-05-22 16:59:00 -03:00
Alan Evans
88dac70087
Lint - Custom Widgets extend Appcompat Widgets.
2019-05-22 14:02:21 -03:00
Alan Evans
9445555d66
Code analysis - address @NotNull/@Nullable issues.
2019-05-22 13:51:56 -03:00
Alan Evans
7db1588578
Do not assume phone number in conversation.
...
Fixes #8813
2019-05-22 13:30:27 -03:00
Alan Evans
0a7970ad0c
Image Editor - Allow undoing back to the original state when exceeds the undo limit.
2019-05-22 13:28:02 -03:00
Alan Evans
10ad3fbf82
Lint - Use easily identifiable wake lock tags.
2019-05-20 13:24:34 -03:00
Alan Evans
95858898d7
Lint - avoid calling a restricted API.
2019-05-20 13:24:33 -03:00
Alan Evans
16c8cc88d7
Update visibility and icon of camera flip control in call.
...
Fixes #8221
2019-05-20 13:24:33 -03:00
Alan Evans
7f0c998b24
Image Editor - Further crop improvements.
...
* Thumb accuracy improved.
* When out of bounds from drag, try to fix by adjusting translation.
* Update undo state when listener changes.
2019-05-20 12:02:40 -03:00
Alan Evans
456ba5fa02
Image Editor - Replace minimum scale, with minimum pixel count.
...
- Anti alias images.
- Minimum crop ratio of 15:1 or original image ratio.
2019-05-17 19:42:12 -03:00
Alan Evans
9de420fde6
Image Editor - On flip or rotate, ensure undo button visibility is updated.
2019-05-17 19:00:10 -03:00
Alan Evans
401e3687de
Image Editor - when no sticker selected, go back to mode NONE.
2019-05-17 16:22:07 -03:00
Alan Evans
6777b3e0e6
Image Editor - Undo button visibility.
2019-05-17 16:15:27 -03:00
Alan Evans
bf759711ef
Image Editor - Keep image within crop bounds.
...
* 4% of original pixels must be visible.
* The entire crop must be within the image.
* On release, try to scale crop area and image to fit if the crop is invalid.
* Undo to last valid position if that didn't work.
* Additionally, center thumbs now do not respect aspect ratio lock.
2019-05-16 15:52:15 -07:00
Alan Evans
068ffc2167
Image Editor - Allow undoing during croping.
2019-05-16 15:52:03 -07:00
Alan Evans
95304fe001
Image Editor - Remove initial text.
...
- Flashing cursor.
2019-05-16 15:51:56 -07:00
Alan Evans
5b298b4a04
Resize image in attempts to get it to fit into the maxImageSize bytes.
...
Fixes #8803
2019-05-10 12:16:19 -03:00
Alan Evans
cb78684282
Ensure push groups cannot have isForceSmsSelection set.
...
Fixes #8807
2019-05-10 12:13:59 -03:00
Alan Evans
b1057d63a1
Lint.
...
- Check for permissions.
- Fix Welsh positional format.
- Remove UIThread restriction.
- Asynchronous method does not need to be restricted to UIThread and there is no StaticFieldLeak to suppress.
- Fix or Ignore New API errors.
- Reduce severity of some errors from L10N.
2019-05-10 11:57:43 -03:00
Alan Evans
93e6ccb9e4
Replace image editor.
2019-05-10 11:57:43 -03:00
Alan Evans
06ea000f42
Repeat count for format args of plural string.
...
Fixes #8724
2019-05-07 12:26:01 -03:00
Alan Evans
d1b8e77fdc
Always show the SIM on the footer of a multi-SIM device, even if one SIM is disabled.
2019-05-07 12:25:11 -03:00
Alan Evans
8cf2654c5b
Show reply method SMS/Signal and respect sticky.
...
Fixes #8792
2019-05-06 16:45:30 -07:00
Alan Evans
18531146f7
Update the sticky EventBus message to reflect changes in microphone enabled state.
...
Fixes #7827
2019-05-06 16:45:30 -07:00
Jeffrey Griffin
c274c1bb28
Eliminate noisy directory feedback
...
We observed IOExceptions loading the Contact Discovery IAS KeyStore. We will now throw an AssertionError upon any error
creating the IAS KeyStore, matching the behaviour for creation of the TrustStore used for the main Signal Service. NB: If
this assertion is hit, the user will not even be able to refresh their contacts with the old directory service.
2019-05-06 16:45:30 -07:00
Alan Evans
42a8522e98
Manually call the onPageSelected when entering page 0.
...
Fixes #7610
2019-05-06 16:45:30 -07:00
Greyson Parrelli
eab23a9e66
Fixed issue where giphy results weren't loading.
2019-05-06 15:48:43 -07:00
Greyson Parrelli
59f362495a
Add additional checks around link preview domains.
...
We never make requests to non-whitelisted domains, but there were
situations where some links would redirect to non-whitelisted domains,
which would hit a final failsafe that resulted in a crash.
To prevent this, we detect bad redirects earlier and fail more
gracefully.
Fixes #8796
2019-05-06 12:25:53 -07:00
Greyson Parrelli
934a2a67bc
Fix some keyboard issues in landscape.
2019-05-02 14:32:53 -07:00
Greyson Parrelli
05345b8582
Remove some unnecessary logging.
2019-05-02 14:32:53 -07:00
Greyson Parrelli
7b4299d5da
Bring back conscrypt, improve provider initialization ordering.
2019-05-02 14:32:48 -07:00
Alan Evans
ec20b0e0e3
Fallback to SIM index.
...
#8725
2019-05-02 18:16:59 -03:00
Greyson Parrelli
bb90987e7c
Fix potential crash when retrieving SIM list.
2019-05-01 08:36:24 -07:00
Greyson Parrelli
ecea6abeb6
Temporary revert (again) to fix an avatar retrieval issue.
...
This reverts commit 77524ae1f2
.
2019-05-01 08:25:14 -07:00
Greyson Parrelli
1e564b6ad1
Fix exponential backoff retry limits.
2019-04-30 12:51:58 -07:00
Alan Evans
c77daa8226
Display carrier or number if any SIM descriptions clash.
...
Fixes #8725
2019-04-30 12:51:58 -07:00
Alan Evans
fa35814344
Disable transport disables all matching TransportOptions.
...
Fixes #8744
2019-04-30 12:51:58 -07:00
Alan Evans
48efcaa785
Do not list SIMs that are not ready.
...
Fixes #8426
2019-04-30 12:51:58 -07:00
Greyson Parrelli
f3f6cc87d9
Request a small chunk instead of HEAD for images of unknown size.
2019-04-30 12:51:58 -07:00
Greyson Parrelli
29cdb5290b
Make headers for giphy requests random sizes.
2019-04-30 12:51:58 -07:00
Greyson Parrelli
77524ae1f2
Revert "Temporary revert to fix an avatar retrieval issue."
...
This reverts commit 267bc32e23
.
2019-04-30 12:51:58 -07:00
Greyson Parrelli
30ba9d7e27
Improve CDN reliability.
2019-04-30 12:51:58 -07:00
Francois Blackburn
d2ece1c1f2
Add MI 5 to hardware AEC blacklist
2019-04-30 12:51:57 -07:00
Arnt Gulbrandsen
8bdc257963
Avoid hardware echo cancellation for Fairphone FP2
...
The issue has as been confirmed by me with the stock ROM as of November
2018, and other users have complained for almost 18 months, see
https://forum.fairphone.com/t/fnord/28849 and
https://bugtracker.fairphone.com/project/fairphone-fairphone-os-android-6/issue/77
2019-04-30 12:51:57 -07:00
Kevin Mark
88f9ec313f
Close SQL statement, preventing finalizer crashes
...
This will stop instances of the following from occuring in the logs
on SMS migration:
W/SQLiteCompiledSql: Releasing statement in a finalizer. Please ensure
that you explicitly call close() on your cursor: INSERT INTO sms
(address, person, date_sent, date, protocol, read, status, type,
reply_path_present,
net.sqlcipher.database.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
at net.sqlcipher.database.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
at net.sqlcipher.database.SQLiteProgram.<init>(SQLiteProgram.java:109)
at net.sqlcipher.database.SQLiteStatement.<init>(SQLiteStatement.java:39)
at net.sqlcipher.database.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1647)
at org.thoughtcrime.securesms.database.SmsDatabase.createInsertStatement(SmsDatabase.java:767)
at org.thoughtcrime.securesms.database.SmsMigrator.migrateConversation(SmsMigrator.java:166)
at org.thoughtcrime.securesms.database.SmsMigrator.migrateDatabase(SmsMigrator.java:210)
at org.thoughtcrime.securesms.service.ApplicationMigrationService$ImportRunnable.run(ApplicationMigrationService.java:159)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
We aren't closing Statement objects before the finalizer on those
objects runs. When the GC runs, we'll get warnings like the above
which alert us to the fact that these objects are being automatically
closed for us in the finalizer, but that this is suboptimal behavior.
If we leave too many Statement (or Cursor) objects to be closed in
their finalizers, when the GC runs, it'll take longer than 10 seconds
to close them all and Android will kill the app. This 10 second limit
is hardcoded and we can only try to avoid it. A crash will look like:
java.util.concurrent.TimeoutException: net.sqlcipher.database.SQLiteCompiledSql.finalize() timed out after 10 seconds
at java.lang.Object.wait(Native Method)
at java.lang.Thread.parkFor$(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:299)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:844)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1173)
at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:196)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:257)
at net.sqlcipher.database.SQLiteDatabase.lock(SQLiteDatabase.java:553)
at net.sqlcipher.database.SQLiteCompiledSql.releaseSqlStatement(SQLiteCompiledSql.java:106)
at net.sqlcipher.database.SQLiteCompiledSql.finalize(SQLiteCompiledSql.java:152)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:202)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
at java.lang.Thread.run(Thread.java:818)
I was able to replicate the above crash consistently on a
Samsung Galaxy S7 edge when importing well over 100k SMS messages.
But as soon as I attached a debugger the crash did not persist. I
assume this is because of some VM-level interactions between the two
and did not investigate further after fixing it.
I do not have access to the stack trace for issue #7953 but this
could potentially resolve it. The crash is identical to that in #7477
but this patch is for SMS migration not restoring from a backup. I
was not able to replicate the crash on restoring a >100k message
backup.
2019-04-30 12:51:57 -07:00
Michael Walker
8ad5126408
Add pinterest domain and asset domains for link preview support
2019-04-30 12:51:57 -07:00
Greyson Parrelli
1e27847015
Update link preview meta tag regex.
2019-04-30 12:51:57 -07:00
Greyson Parrelli
e67eca77ff
Prevent landscape text editing from taking over the screen.
...
It used to be that we let Android do the default behavior of
full-screening the EditText when in landscape, but honestly I
don't know who prefers that. So I've turned it off.
Fixes #8769
2019-04-30 12:51:52 -07:00
Greyson Parrelli
49cccc6927
Update job logging.
2019-04-28 11:44:17 -07:00
Greyson Parrelli
5977e9141d
Wrap transactions in try-finally.
2019-04-28 11:42:02 -07:00
Greyson Parrelli
c0982293bf
Fix bug where sticky SMS setting wasn't respected.
...
Fixes #8783
2019-04-28 11:34:56 -07:00
Greyson Parrelli
128da6db04
Fix crash in backup restore related to sqlite_sequence.
...
The new JobManager stuff created a table that had an
auto-incrementing ID, which was incorrectly being backed
up and restored, causing a crash. Now we skip it on both
import and export.
2019-04-16 10:10:02 -04:00
Greyson Parrelli
2701607810
Reduce the possible number of unique jobs to avoid crash.
...
Some devices have a limit of 100 unique JobScheduler jobs.
Previously we allowed up to 1,000. Given that we just need
_some_ job running, I lowered the limit to 75 to give us
some head room.
2019-04-16 09:52:12 -04:00
Greyson Parrelli
1c47812877
Fix crash when migrating read receipt jobs.
...
Fixes #8764
2019-04-15 15:45:16 -04:00
Greyson Parrelli
4a3c173adb
Migrated to new JobManager.
2019-04-15 10:56:26 -04:00
Greyson Parrelli
8cf3ba424a
Trim long text before displaying if necessary.
...
Fixes #8759
2019-04-15 10:13:35 -04:00
Alan Evans
9c40de5bf1
Save the SMS setting on a per-conversation basis.
2019-04-15 10:13:35 -04:00
Greyson Parrelli
11a2ed0743
Increase reliability of locally logging crashes.
...
Exception logging tends to be race-y, so now we block and wait
for all logs to be written before continuing with the crash.
2019-04-10 12:53:55 -04:00
Alan Evans
01a9931d92
Do not use background threads for download UI events.
2019-04-10 13:13:10 -03:00
Greyson Parrelli
38bcc6c293
Long text detail view now respects text size preference.
...
Fixes #8747
2019-04-09 09:40:32 -04:00
Greyson Parrelli
bceb9b4972
Fixed quotes not being cleared when forwarding.
...
Fixes #8748
Fixes #7935
2019-04-09 09:35:47 -04:00
Alan Evans
ecdc285378
Fix unresponsive button on image send with text in landscape.
...
Fixes #8575
Closes #8638
Co-authored-by: Jakub Gregorek <jg@inthemeadow.net>
2019-04-08 07:45:16 -03:00
Greyson Parrelli
9aed2343c1
Attempt to resolve connectivity problems for some users.
2019-04-04 18:10:41 -04:00
Greyson Parrelli
733d54e339
Linkify links in long message view.
...
Fixes #8735
2019-04-04 10:09:32 -04:00
Greyson Parrelli
267bc32e23
Temporary revert to fix an avatar retrieval issue.
...
This reverts commit 8aa185070b
.
2019-04-03 16:32:52 -04:00
Alan Evans
621ac62c7e
Add red flashing voice note microphone.
2019-04-01 17:42:57 -03:00
Alan Evans
ce6d2d9c69
MMS image quality.
...
Fixes #8590
- Scale image larger within the dimensions.
- Apply a minimum dimension of 1024.
2019-03-28 15:14:06 -03:00
Alan Evans
e842f78457
Voice Note Locking.
...
Limit of 60 minutes, after which it's cancelled.
2019-03-28 15:04:38 -03:00
Alan Evans
cab3657ab0
ABI info for device.
2019-03-26 17:29:08 -03:00
Alan Evans
a7aa980e58
New dynamic locale system.
...
- Fixes #7619
2019-03-26 17:08:05 -03:00
Alan Evans
6a0a419f0c
Add self to MMS group.
...
- Fixes #7683
- Closes #8296
2019-03-26 17:07:04 -03:00
Greyson Parrelli
94e8303022
Remove dead code from ScribbleHud/Fragment.
2019-03-22 12:47:16 -07:00
Greyson Parrelli
ccfcfa71df
Enable the sending of long messages.
2019-03-22 12:28:41 -07:00
Greyson Parrelli
8caaf057e8
Remove unnecessary pre-19 code branches.
...
Now that our minSdk is 19, we can remove a lot of old code paths that
only ran pre-19.
2019-03-21 11:19:06 -07:00
Moxie Marlinspike
a52c295a38
Simplify access to SecureRandom
...
This shouldn't matter at all, but it's more "correct," and shows
my age less.
2019-03-21 11:19:06 -07:00
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
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
Greyson Parrelli
48ff9673b9
Allow the selection of fitzpatrick emoji.
2018-10-26 11:05:10 -07:00
Greyson Parrelli
1999d09901
Updated emoji set.
...
Includes display support for more genders, and more notably, skin tones.
These are not currently selectable in the UI, but they will be rendered
properly when other clients send them.
2018-10-24 17:11:17 -07:00
Greyson Parrelli
bf452dfa92
Slightly shorten time before we show a foreground notification for pushes.
...
There's some ANRs, not many, that are likely caused by us riding the
5-second ANR timeout a little too closely. Giving us a little buffer to
see if that helps.
2018-10-24 10:58:06 -07:00
Greyson Parrelli
2b14c98eb0
Do not call bluetooth state listener after service is destroyed.
2018-10-24 10:43:08 -07:00
Greyson Parrelli
f164ac90db
Disallow punctuation in icon initials.
2018-10-24 09:57:48 -07:00
Greyson Parrelli
91db26437d
Fix camera scaling issues on some phones.
...
Some phones, notably the Pixel 3, had some problems with scaling after
taking photos. This fixes it by using the takePicture API instead of
pulling the bitmap from the TextureView.
Fixes #8292
2018-10-22 01:12:05 -07:00
Greyson Parrelli
76054a9e33
Ignore events after BluetoothStateManager is destroyed.
...
Fixes crash.
2018-10-21 13:03:28 -07:00
Greyson Parrelli
ae9c53bdf8
Ensure jobs have a Context during onAdded().
...
Fixes a crash.
2018-10-20 22:52:14 -07:00
Greyson Parrelli
0dd7b39bb1
Fix recipient prefrence display problem on Android P.
...
Android P's new ringtone selector is a whole new activity that can cause
RecipientPreferenceActivity to go through the full onCreate() flow after
the ringtone selection. This could cause a race between setting the
preference and reading the preference from the notification channel.
Just threw them on a serial executor to guarantee ordering.
2018-10-20 22:42:35 -07:00
Greyson Parrelli
4a0ea0c51c
Handle contexts more consistently in RecipientPreferences.
...
Fixes a crash that was happening on the Pixel 3.
2018-10-20 22:22:07 -07:00
Greyson Parrelli
668e8dee5d
Catch more camera exceptions.
...
Some devices will simply fail to open the camera with a runtime
exception. In this case, all we can do is catch it and report the error.
2018-10-19 15:57:34 -07:00
Greyson Parrelli
a287408a7a
Only start the screen lock timeout when the app is backgrounded.
2018-10-18 09:40:32 -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
feb9e1d513
Post startService() in onPause() as a possible fix to an Android P bug.
...
We already did it for onResume(), and while it fixed the crash there,
the crash just moved to onPause(). Let's see if the same magic works.
2018-10-16 22:54:29 -07:00
Greyson Parrelli
7e485b8095
Post startService() in onResume() as a possible fix to an Android P bug.
...
Got confirmation that the crash we're seeing is a bug, and this might be
a possible workaround.
2018-10-16 11:47:58 -07:00
Greyson Parrelli
7cadb0d35a
Properly set the document download icon tint.
2018-10-16 10:58:19 -07:00
Greyson Parrelli
e1f572e1f4
Update GCM foreground notification icon.
...
Using the default Signal icon can confuse people into thinking they're
message notifications.
2018-10-15 16:56:24 -07:00
Greyson Parrelli
ead323c1af
Don't unnecessarily stack GCM message processing.
...
If we already have two active processing GCM messages, there's no
benefit to a third. In fact, enqueuing additional ones will likely only
end up showing the foreground notification unnecessariliy.
2018-10-15 10:37:30 -07:00
Greyson Parrelli
20c059280c
Refactor OrderEnforcer.
2018-10-12 09:30:01 -07:00
Greyson Parrelli
5219d79e27
Remove unnecessary start of KeyCachingService.
2018-10-11 09:55:46 -07:00
Greyson Parrelli
89f97f57cb
Update our boot receiver to schedule a message pull.
...
Previously we were starting a background service, which isn't allowed
for targetSdk 26. This will do the same thing but at a time decided by
the system.
2018-10-11 09:55:46 -07:00
Greyson Parrelli
4c63428b71
Ensure GenericForegroundService is started with startForegroundService.
...
If we don't, we run the risk of the app crashing if the service is
started in the background.
2018-10-11 09:55:46 -07:00
Greyson Parrelli
0d48f10806
Fix issue where a Job had null JobParameters.
2018-10-10 09:00:14 -07:00
Greyson Parrelli
275ca9e3ba
Remove the ability to set a color for a group.
...
No longer applicable given that we're adding back per-person colors in
groups.
2018-10-09 15:34:08 -07:00
Greyson Parrelli
710fa4a6f0
Switch the conversation color back to incoming messages.
2018-10-09 15:34:04 -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
f26c6f890f
Fix non-contact icon in recipient preferences being too small.
...
Relates to #8252
2018-10-04 11:35:19 -07:00
Greyson Parrelli
eb11d5ceda
Make avatar color in toolbar match conversation color.
...
Relates to #8252
2018-10-04 11:27:12 -07:00
Greyson Parrelli
1d7f7b6c38
Do not auto-assign Steel as a color for contacts/groups.
...
Should be reserved for non-contacts, but selectable in the color picker.
Fixes #8247
2018-10-04 09:22:24 -07:00
Greyson Parrelli
07d7af6e75
Initialize WorkManager ourself.
...
This gives us more control over when it happens, as well as lets us set
things like the debug level. Also let's us get rid of the synchronized
block we had in Application#onCreate().
2018-10-04 09:09:04 -07:00
Greyson Parrelli
0840175d6f
Remove shutter sound on camera capture.
...
This sound isn't supposed to play when you have notification sound off,
but apparently some Huawei phones will play it anyway. Until we can
figure out a better way to handle it, we're just removing it.
2018-10-03 18:11:50 -07:00
Greyson Parrelli
547b7a3c6f
Migrate legacy color palette.
...
We don't store non-user-selected colors in the database. That means that
when we update the palette, we still have to hash based off of the legacy
palette when generating a color if we want to migrate to a
similar-looking color.
Unfortunately, because the new palette is smaller, some colors are
"overloaded", meaning that when we hash based off of the legacy palette,
some colors will be more/less common than others. To fix this, we simply
persist all current colors in the database, then switch our hashing list
to what we really want.
2018-10-03 14:25:17 -07:00
Greyson Parrelli
5eec3c9541
Add hairline border to avatars.
2018-10-03 14:24:00 -07:00
Greyson Parrelli
f725dd5a7e
Show profile avatar in toolbar.
2018-10-03 14:24:00 -07:00
Greyson Parrelli
a3cba66450
Update fallback avatars.
2018-10-03 14:24:00 -07:00
Greyson Parrelli
bab92fca7b
Move unread indicator to be above the avatar.
2018-10-03 14:23:59 -07:00
Greyson Parrelli
c37c1dffd4
Allow setting the color for a group.
2018-10-03 14:23:59 -07:00
Greyson Parrelli
127505af0b
Implement new color palette.
2018-10-03 14:23:59 -07:00
Greyson Parrelli
cfd20d23e8
Fix double onClick() notifications in preferences.
...
Fixes #8241
2018-10-03 11:31:07 -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