Compare commits

...

718 Commits

Author SHA1 Message Date
Michelle Tang
e27abcb047 Bump version to 7.69.2 2026-01-12 13:54:14 -05:00
Michelle Tang
29b4b32692 Update translations and other static files. 2026-01-12 13:45:09 -05:00
Alex Hart
bdd6bcb932 Fix speaker button initialisation issue. 2026-01-12 12:45:04 -04:00
Alex Hart
062fb1fe0b Add factory call for MainNavigationViewModel in ConversationFragment. 2026-01-12 12:21:09 -04:00
Greyson Parrelli
4a0631a10c Attempt to restore attachment as long as we have the data hash. 2026-01-09 21:15:46 -05:00
jeffrey-signal
a0fdc735e7 Bump version to 7.69.1 2026-01-09 15:14:14 -05:00
jeffrey-signal
fa842ac281 Update translations and other static files. 2026-01-09 15:11:28 -05:00
Alex Hart
f8d17b04cb Fix ringing screen when an outgoing call is placed and the camera is off. 2026-01-09 14:17:49 -04:00
Alex Hart
0ac9f5d7c0 Add new raised hand treatment. 2026-01-09 13:25:29 -04:00
Alex Hart
1ad7aa901a Fix group-ring logic. 2026-01-09 13:24:51 -04:00
Alex Hart
b0aa440b9d Attempt to fix transparent bottom nav bar. 2026-01-09 13:17:59 -04:00
Alex Hart
dc6deee231 Remove new-calling-ui flag. 2026-01-09 12:03:51 -04:00
Greyson Parrelli
1cf52cae71 Ensure that we mark attachments restored from the archive as FINISHED. 2026-01-09 10:37:21 -05:00
Michelle Tang
c730a09123 Fix inconsistent pin timer. 2026-01-08 18:00:03 -05:00
Michelle Tang
01fc7fa179 Move the star over for poll results. 2026-01-08 17:45:01 -05:00
Alex Hart
d2c6698824 Add fix for call screen bar sizing and position. 2026-01-08 12:45:31 -04:00
jeffrey-signal
e014779b32 Bump version to 7.69.0 2026-01-08 07:49:15 -05:00
jeffrey-signal
fe400894b1 Update translations and other static files. 2026-01-08 07:42:59 -05:00
jeffrey-signal
051e98898d Mark translation gradle tasks as incompatible with configuration cache. 2026-01-08 07:39:51 -05:00
jeffrey-signal
9cf77d320c Fix lint checks. 2026-01-08 07:39:51 -05:00
Greyson Parrelli
7c11239875 Be more lenient with attachment restore conditions. 2026-01-08 07:39:51 -05:00
Greyson Parrelli
3e5af23f43 Do not attach a resend listener unless an attachment is failed. 2026-01-08 07:39:51 -05:00
Greyson Parrelli
a349fdd79e Keem some additional reconciliation logs longer. 2026-01-08 07:39:51 -05:00
jeffrey-signal
af32996728 Exit multi-select mode on back press in sticker management. 2026-01-08 07:39:51 -05:00
Greyson Parrelli
5fa5a98b87 Enqueue another backup after uploading new media. 2026-01-08 07:39:51 -05:00
Alex Hart
a7f239576f Add missing call link ui. 2026-01-08 07:39:51 -05:00
jeffrey-signal
c2ec9e579e Open sticker management in a bottom sheet on large screen devices. 2026-01-08 07:39:50 -05:00
Michelle Tang
b56e2222f5 Hide unpinning behind feature flag. 2026-01-08 07:39:50 -05:00
Alex Hart
fc94a9d748 Reintroduce blur behind pip. 2026-01-08 07:39:50 -05:00
Greyson Parrelli
4b41989b30 Respect 429 in SVR write requests. 2026-01-08 07:39:50 -05:00
jeffrey-signal
e3b569ca5b Calculate drag handle bounds using the container width instead of the screen width. 2026-01-08 07:39:50 -05:00
Michelle Tang
6459ef5b66 Rotate receive pinned messages flag. 2026-01-08 07:39:49 -05:00
Greyson Parrelli
b085989b22 Update to libsignal v0.86.10 2026-01-08 07:39:49 -05:00
Greyson Parrelli
888e7f8ed5 Fix potential issue with reaction export. 2026-01-08 07:39:49 -05:00
Greyson Parrelli
d50a9c61b0 Potential fix for empty BodyRange errors during export.
The only way I could see this being a problem is if the mention ACI was
empty. We'll have to see if that fixes it.
2026-01-08 07:39:49 -05:00
Greyson Parrelli
4fdc2bd76b Improve the qa task. 2026-01-08 07:39:49 -05:00
Michelle Tang
3f990327d8 Fix alphabetical group members bug. 2026-01-08 07:39:49 -05:00
Greyson Parrelli
8ccd2864fe Use legacy packaging for website builds to reduce download size. 2026-01-08 07:39:49 -05:00
Greyson Parrelli
e7bfefa027 Fix validation errors around group chat updates. 2026-01-08 07:39:49 -05:00
Michelle Tang
1da75018eb Fix polls in local backups. 2026-01-08 07:39:48 -05:00
Greyson Parrelli
88be84297e Fix validation error around session switchover events. 2026-01-08 07:39:48 -05:00
Michelle Tang
e1467480e9 Fix message timer for chat updates. 2026-01-08 07:39:48 -05:00
Alex Hart
92c71b3630 Fix issue where latest chat would reappear after reopening the app. 2026-01-08 07:39:48 -05:00
Alex Hart
24c994d5b2 Prevent multiple instances of main-activity from being added to our task stack. 2026-01-08 07:39:48 -05:00
Michelle Tang
f7d87f3436 Allow 1:1 polls and raise character limit. 2026-01-08 07:39:48 -05:00
Daniele Favaro
fd635542c0 Allow country code selection input to be multi-line.
Fixes #14407
Resolves #14408
2026-01-08 07:39:47 -05:00
Alex Hart
eb826b2786 Fix crash when rotating device in emoji reaction picker.
Adds null check for selectedConversationModel in hideInternal() to
prevent NPE when hide() is called after the overlay has already been
hidden during configuration changes.

Fixes #14491
2026-01-08 07:39:47 -05:00
Alex Hart
8cd0381df5 Fix persistent "group members have the same name" banner.
The hash calculation for name collisions iterated over a Set with undefined
order, causing inconsistent hashes and resetting the dismissed state.
2026-01-08 07:39:47 -05:00
Alex Hart
305c32cfc5 Fix snackbar durations. 2026-01-08 07:39:47 -05:00
Alex Hart
bb21363ca8 Display large screen participant on connecting call. 2026-01-08 07:39:47 -05:00
Alex Hart
6968edbeec Fix self-pip mirroring. 2026-01-08 07:39:47 -05:00
Greyson Parrelli
a6acbacaef Fix some string capitalizations.
Fixes #14210
2026-01-08 07:39:46 -05:00
Greyson Parrelli
870ae8a46f Potential fix for Android 7 crash on chat open.
Fixes #14447
2026-01-08 07:39:46 -05:00
Greyson Parrelli
a3c9f04719 Enable the gradle configuration cache. 2026-01-08 07:39:46 -05:00
Greyson Parrelli
fdcd24feb1 Fix ordering issues in updateStaticFilesAndQa. 2026-01-08 07:39:46 -05:00
Greyson Parrelli
c31b2edeab Add tests for SmartlingClient. 2026-01-08 07:39:46 -05:00
Greyson Parrelli
ffecdb3747 Make pushing and pulling translations part of updateStaticFilesAndQa. 2026-01-08 07:39:46 -05:00
Greyson Parrelli
3031d68863 Move the pullTranslations script into the codebase as kotlin. 2026-01-08 07:39:46 -05:00
Greyson Parrelli
fe1755f250 Move the pushTranslations script into the codebase as kotlin. 2026-01-08 07:39:45 -05:00
Greyson Parrelli
e162eb27c7 Re-organize gradle modules. 2026-01-08 07:39:45 -05:00
Greyson Parrelli
f4863efb2e Fix outdated comment. 2026-01-08 07:39:45 -05:00
Greyson Parrelli
5b3c51013b Move values from constants.gradle into libs.versions.toml 2026-01-08 07:39:45 -05:00
Greyson Parrelli
06bdc36136 Properly handle 413s when uploading to archive.
Fixes #14502
2026-01-08 07:39:45 -05:00
Michelle Tang
6e4edbd12d Disable image pasting when editing. 2026-01-08 07:39:45 -05:00
Michelle Tang
c38fafe9fd Use updated country picker when deleting account. 2026-01-08 07:39:44 -05:00
Greyson Parrelli
6f213158ed Clean up AndroidManifest.xml 2026-01-08 07:39:44 -05:00
Greyson Parrelli
3db8f5a2af Ensure that attachments received during calls are autodownloaded afterwards.
The easiest way to do this is to add the constraint to the job itself,
when appropriate, so that we don't even run the job until you're done
with the call.
2026-01-08 07:39:44 -05:00
Michelle Tang
0b5fa18504 Delete all messages in edit chain. 2026-01-08 07:39:44 -05:00
Greyson Parrelli
7ea1080801 Remove unneccessary member warning during forwarding. 2026-01-08 07:39:44 -05:00
Greyson Parrelli
4c47f337ea Restart the app to apply the new language setting. 2026-01-08 07:39:44 -05:00
Cody Henthorne
952990c8af Add extra info tooltips to Spinner. 2026-01-08 07:39:44 -05:00
Greyson Parrelli
f2582cae54 Add debug logging for failed media name requirements. 2026-01-08 07:39:44 -05:00
Greyson Parrelli
e089be310b Fix crash related to timer updates. 2026-01-08 07:39:43 -05:00
Michelle Tang
ed5c51d954 Allow pinning in note to self. 2026-01-08 07:39:43 -05:00
Michelle Tang
08915befa5 Fix sync message author when pinning. 2026-01-08 07:39:43 -05:00
Greyson Parrelli
062e958db5 Schedule search index optimization to occur overnight. 2026-01-08 07:39:43 -05:00
Greyson Parrelli
9be82a2739 Repair bad group storageId state on the fly.
Fixes #14308
2026-01-08 07:39:43 -05:00
Cody Henthorne
0ea3d524da Streamline invalid qr code dialog in link device flow. 2026-01-08 07:39:43 -05:00
Cody Henthorne
437979373c Always format e164 as LTR. 2026-01-08 07:39:43 -05:00
Greyson Parrelli
22ed8872e6 Ensure proxy settings are applied to default okhttp client.
Fixes #13682
2026-01-08 07:39:43 -05:00
Greyson Parrelli
39fe5b1eb5 Unconditionally disable auto updates. 2026-01-08 07:39:42 -05:00
Greyson Parrelli
717794a12e Remove now-unnecessary nightly auto-update stuff. 2026-01-08 07:39:42 -05:00
Cody Henthorne
4ce51c77a8 Remove verbose call link parsing logs. 2026-01-08 07:39:42 -05:00
Cody Henthorne
d9ecab5240 Update local backup v2 support. 2026-01-08 07:39:42 -05:00
Cody Henthorne
71b15d269e Update Signal logo/branding for donation receipts. 2026-01-08 07:39:42 -05:00
Greyson Parrelli
a1009da324 Update the versioning scheme for nightlies. 2026-01-08 07:39:42 -05:00
Cody Henthorne
26b8de2282 Abort re-reg with pin flow if unable to communicate via svr websocket. 2026-01-08 07:39:42 -05:00
Alex Hart
9db33c3fec Display proper text when not in the active call on the local device. 2026-01-08 07:39:42 -05:00
Greyson Parrelli
2538e48d0f Fix universal sealed sender setting in export. 2026-01-08 07:39:41 -05:00
Ehren Kret
68bf41b36a Delay auto-updates while in a VoIP call. 2026-01-08 07:39:41 -05:00
Michelle Tang
3a91bb8947 Potentially fix e164 crash. 2026-01-08 07:39:41 -05:00
Cody Henthorne
ee930f59db Fix request to join state mismatch with server bug. 2026-01-08 07:39:41 -05:00
Greyson Parrelli
6b5feadf6c Dismiss media editor if you have no valid items. 2026-01-08 07:39:41 -05:00
Greyson Parrelli
bd084e606c Allow saving e164-only contacts to your contacts. 2026-01-08 07:39:41 -05:00
Cody Henthorne
bb674a1539 Fix added to group not showing up on canceled request groups. 2026-01-08 07:39:41 -05:00
Greyson Parrelli
951d073ad6 Fix possible crash when splitting contacts with invalid e164s. 2026-01-08 07:39:41 -05:00
Cody Henthorne
b7d671dcbd Add better ux when group limit reached when joining via link. 2026-01-08 07:39:40 -05:00
Alex Hart
eb4540600e Make megaphones scrollable again. 2026-01-08 07:39:40 -05:00
Michelle Tang
22fc874b99 Avoid italicizing glyphs. 2026-01-08 07:39:40 -05:00
Michelle Tang
282a707bf9 Fix talkback saying meters instead of minutes. 2026-01-08 07:39:40 -05:00
Cody Henthorne
942c155723 Fix request to join approved message not showing up. 2026-01-08 07:39:40 -05:00
Jim Gustafson
286ae25ac5 Update to RingRTC v2.61.0 2026-01-08 07:39:40 -05:00
Alex Hart
38ad0903ff Fix issue where attachment albums do not update if one object is deleted. 2026-01-08 07:39:40 -05:00
Alex Hart
d76eb9a9e4 Add nicer snackbar propagation. 2026-01-08 07:39:40 -05:00
Alex Hart
a3e8ca8d33 Implement new call layout. 2026-01-08 07:39:39 -05:00
Michelle Tang
e1454cfc6a Fix notification profile overrides. 2026-01-08 07:39:39 -05:00
Alex Hart
df6d446e83 Update something else title. 2026-01-08 07:39:39 -05:00
Greyson Parrelli
2d17082a76 Backfill plaintext hashes for quotes. 2026-01-08 07:39:39 -05:00
Alex Hart
9aa4797792 Ensure when we start the calling activity that we turn the screen on. 2026-01-08 07:39:39 -05:00
Greyson Parrelli
3508269c17 Fix some places where data_hash_end was not being set. 2026-01-08 07:39:39 -05:00
Greyson Parrelli
c18e6e5e67 Fix export issue around long-text and quote-long texts. 2026-01-08 07:39:39 -05:00
Michelle Tang
ce86b511f0 Clear profile override if none exists. 2026-01-08 07:39:39 -05:00
Michelle Tang
b65079ec20 Support pinned messages in backups. 2026-01-08 07:39:38 -05:00
Greyson Parrelli
b99fec4274 Have allowedToRequestCode take precendent in 429 reg responses. 2026-01-08 07:39:38 -05:00
Cody Henthorne
15677c663b Fix backup restore service concurrent modification crash on timeout. 2026-01-08 07:39:38 -05:00
Greyson Parrelli
1bd5b03636 Ensure envelope model updates info from metadata.
In practice this doesn't really matter because we don't read from it
after this point, but good to be consistent.
2026-01-08 07:39:38 -05:00
Greyson Parrelli
3542c363d9 Add more debug info for oversized messages. 2026-01-08 07:39:38 -05:00
Alex Hart
ec44b9aae7 Fix audio indicator when system piping call. 2026-01-08 07:39:38 -05:00
Michelle Tang
e4ec538f13 Fix unreliable allow multiple votes toggle. 2026-01-08 07:39:38 -05:00
Greyson Parrelli
3e54cc5c77 Fix call string format template. 2026-01-08 07:39:38 -05:00
Greyson Parrelli
b1feb76535 Don't prevent multi-line when in 'enter is send' mode.
Fixes #14469
2026-01-08 07:39:37 -05:00
Greyson Parrelli
a4b7804c9b Add a network debugging interface for regV5. 2026-01-08 07:39:37 -05:00
Alex Hart
18b2587936 Fix undersized additional action icon. 2025-12-19 16:57:52 -04:00
Alex Hart
1238151d73 CallGrid animation updates. 2025-12-19 16:57:52 -04:00
Greyson Parrelli
c25f6d0bc4 Refactor regV5 navigation to remove some unnecessary layers. 2025-12-19 16:57:52 -04:00
Michelle Tang
2ca4748e00 Fix long press crash on long polls. 2025-12-19 16:57:52 -04:00
Alex Hart
1c30a8f38e Fix call link info display. 2025-12-19 16:57:51 -04:00
Alex Hart
cd29a1715e Add nicer dropshadow to self-pip. 2025-12-19 16:57:51 -04:00
Alex Hart
c9d0a11e85 Fix PictureInPicture fling behavior and simplify focused mode. 2025-12-19 16:57:51 -04:00
Michelle Tang
4d8ed34d94 Only animate on banner creation. 2025-12-19 16:57:51 -04:00
Michelle Tang
d98f51395f Fix transparent banner line. 2025-12-19 16:57:51 -04:00
Greyson Parrelli
657a7d2a6b Simplify and improve the JumpToDateValidator. 2025-12-19 16:57:51 -04:00
Greyson Parrelli
d6ade56233 Add PIN creation/entry to regV5. 2025-12-19 16:57:51 -04:00
Alex Hart
d88a862e09 Bump version to 7.68.5 2025-12-19 16:55:53 -04:00
Alex Hart
9c06b07262 Update translations and other static files. 2025-12-19 16:52:18 -04:00
Cody Henthorne
c5aedc7d85 Disable retry pending sends system. 2025-12-19 14:04:32 -05:00
Alex Hart
b9c91d195d Bump version to 7.68.4 2025-12-15 16:39:50 -04:00
Alex Hart
d4d32c2d36 Update translations and other static files. 2025-12-15 16:36:08 -04:00
Alex Hart
b6538101df Update call quality string. 2025-12-15 16:11:22 -04:00
Alex Hart
7e4602863f Bump version to 7.68.3 2025-12-15 14:48:48 -04:00
Alex Hart
0cc35fe881 Update translations and other static files. 2025-12-15 14:44:35 -04:00
Greyson Parrelli
0620410072 Ensure that libraries use support for vectors.
Fixes crashes on API 23 devices.
2025-12-15 11:06:09 -05:00
Michelle Tang
ea758edb5e Bump version to 7.68.2 2025-12-12 15:01:54 -05:00
Michelle Tang
1ded375f6f Update translations and other static files. 2025-12-12 14:55:18 -05:00
Cody Henthorne
c67267b589 Properly calculate backup size when optimize media is enabled. 2025-12-12 14:17:17 -05:00
Cody Henthorne
b1eba86445 Fix optimized media not viewable from All Media. 2025-12-12 12:52:19 -05:00
Cody Henthorne
53accdb446 Fix auto download for wifi restore bug. 2025-12-12 11:32:52 -05:00
Michelle Tang
3b40ae3ad3 Bump version to 7.68.1 2025-12-11 17:19:10 -05:00
Michelle Tang
298271fc2b Update translations and other static files. 2025-12-11 17:14:08 -05:00
Michelle Tang
7b965bac71 Fixing the preDecodeColorInfo methodology.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2025-12-11 15:44:58 -05:00
Greyson Parrelli
e930a0f8ac Do not include release notes in chat exports. 2025-12-11 15:43:22 -05:00
Michelle Tang
10133b16b3 Allow for optimized storage in production. 2025-12-10 17:53:24 -05:00
Greyson Parrelli
f610c1a8b1 Fix exporting release note messages. 2025-12-10 16:58:09 -05:00
Michelle Tang
e7aed3bab3 Bump version to 7.68.0 2025-12-10 14:55:48 -05:00
Michelle Tang
081ffe2c11 Update translations and other static files. 2025-12-10 14:49:09 -05:00
Michelle Tang
3e7b101dbf Update strings. 2025-12-10 14:41:07 -05:00
Alex Hart
0e50e9b26a Rotate call quality survey config value. 2025-12-10 14:41:07 -05:00
Cody Henthorne
b7c9c53176 Enable the 'optimize storage' feature for production users. 2025-12-10 14:41:07 -05:00
Michelle Tang
d75e9b7a4b Update strings. 2025-12-10 14:41:07 -05:00
Cody Henthorne
a967cd8541 Fix TransferControlView showing play button on images bug. 2025-12-10 14:41:07 -05:00
Alex Hart
ea42653ae8 Enable new calling UI for internal users by default. 2025-12-10 14:41:07 -05:00
Alex Hart
0ce5a2eb2b Fix in-call status. 2025-12-10 14:41:07 -05:00
Alex Hart
e75d28cfca Implement new call grid that has animations. 2025-12-10 14:41:07 -05:00
Alex Hart
224503f6bb Add nicer call quality animation. 2025-12-10 14:41:07 -05:00
Cody Henthorne
86aa866626 Fix crash in internal backup settings on wipe and restore. 2025-12-10 14:41:07 -05:00
Alex Hart
067a22ff90 Fix crash when keyboard animation ends after view destroyed. 2025-12-10 14:41:07 -05:00
Michelle Tang
673cff8eed Send sync message when unpinning. 2025-12-10 14:41:07 -05:00
jeffrey-signal
413bdb7b38 Add optional git hook to run formatter pre-push. 2025-12-10 14:41:07 -05:00
Michelle Tang
5e81f9c720 Fix spacing between banner. 2025-12-10 14:41:07 -05:00
Cody Henthorne
22078bd774 Fix cancel offload restore banner showing complete bug. 2025-12-10 14:41:07 -05:00
jeffrey-signal
c33716c7b5 Fix split pane UI not showing after registration on large screen devices. 2025-12-10 14:41:07 -05:00
Alex Hart
587c9cb46f Prevent users from continuing while issue is not specified. 2025-12-10 14:41:07 -05:00
Michelle Tang
dda020b2bf Allow pinned messages to be resendable. 2025-12-10 14:41:07 -05:00
jeffrey-signal
6fba1b0153 Remove redundant total members count parameter from recipient picker callbacks. 2025-12-10 14:41:06 -05:00
Alex Hart
cf04bf8018 Reactions / Raised hands position adjustment. 2025-12-10 14:41:06 -05:00
jeffrey-signal
c1caff8005 Fix error when sending stories to unverified recipients. 2025-12-10 14:41:06 -05:00
Michelle Tang
04ccefbcf8 Do not allow pinning of gift badges. 2025-12-10 14:41:06 -05:00
Greyson Parrelli
6d32e534dc Fix any potentially stuck thumbnail uploads. 2025-12-10 14:41:06 -05:00
Cody Henthorne
293dcb93d6 Prevent backup restore service trashing for optimized restore. 2025-12-10 14:41:06 -05:00
Greyson Parrelli
6cb716516d Fix video color space transcoding issues.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2025-12-10 14:41:06 -05:00
Alex Hart
aa3079673f Clear focus when entering gateway selection during badge checkout. 2025-12-10 14:41:06 -05:00
Alex Hart
37e77a53f9 Various picture in picture updates. 2025-12-10 14:41:06 -05:00
Greyson Parrelli
7969df4e4c Add basic reglock support to regV5. 2025-12-10 14:41:06 -05:00
Greyson Parrelli
4b06e14df6 Add FCM token support to regV5. 2025-12-10 14:41:06 -05:00
jeffrey-signal
da9c5edcc6 Fix share intent handling for multiple images with captions. 2025-12-05 09:50:55 -06:00
jeffrey-signal
109fc7f1fa Update ktlint to 1.5.0. 2025-12-05 09:48:22 -06:00
jeffrey-signal
cc381513ef Hide find by username option from add to groups search results. 2025-12-04 12:45:43 -06:00
Alex Hart
1ad19a7d45 Utilzie url keyboard when entering text into the proxy input. 2025-12-04 14:24:27 -04:00
Michelle Tang
3185bb6031 Add animation to pinned messages. 2025-12-04 11:10:20 -06:00
jeffrey-signal
630c21b07a Fix spinner build. 2025-12-04 11:10:20 -06:00
Alex Hart
6594b8532e Call quality icons and config rotation. 2025-12-04 11:10:20 -06:00
Alex Hart
c6de4c7650 Fix call screen timeout with remote video active. 2025-12-04 11:10:20 -06:00
Michelle Tang
7297f7a894 Handle offline state when pinning messages. 2025-12-04 11:10:20 -06:00
jeffrey-signal
0f5b790461 Update SignalIcons to support flexible icon sources.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2025-12-04 11:10:20 -06:00
Jordan Rose
783af42b1a Update to libsignal v0.86.6 (now on build-artifacts.signal.org) 2025-12-04 11:10:20 -06:00
Greyson Parrelli
ab5426e6bb Fix possible invalid poll export. 2025-12-04 11:10:20 -06:00
Greyson Parrelli
464345ee5f Fix possible issue when exporting thread merge update. 2025-12-04 11:10:20 -06:00
Greyson Parrelli
bafa9a26c6 Fix possible invalid username link export. 2025-12-04 11:10:20 -06:00
Greyson Parrelli
5d08906afd Support 'allow sealed sender from anyone' in archive. 2025-12-04 11:10:20 -06:00
jeffrey-signal
a4dc4a8a1b Bump version to 7.67.1 2025-12-04 09:32:07 -06:00
jeffrey-signal
5a19ec10f5 Update translations and other static files. 2025-12-04 09:32:07 -06:00
jeffrey-signal
0a41bbd22d Sort unregistered accounts to the end of group members list in contacts search. 2025-12-04 09:32:07 -06:00
Alex Hart
2b4d5d74f2 Fix crash when no remote participants are available when analyzing call result. 2025-12-04 09:32:07 -06:00
Jim Gustafson
fea836d20b Update to RingRTC v2.60.5 2025-12-04 09:32:06 -06:00
jeffrey-signal
cbee088d09 Update README.md 2025-12-03 10:57:50 -06:00
jeffrey-signal
145b654533 Bump version to 7.67.0 2025-12-02 16:12:09 -06:00
jeffrey-signal
7a90e285b5 Update translations and other static files. 2025-12-02 16:07:50 -06:00
Greyson Parrelli
c8b7bc2f5b fixup! Fix bug in job eligibility sorting after a job deletion. 2025-12-02 16:00:54 -06:00
Greyson Parrelli
ba63a5255d Improve wifi detection to account for VPNs.
Fixes #14462
2025-12-02 16:00:54 -06:00
Greyson Parrelli
30e43e99fc Guard against invalid attachment states when copying to archive.
Fixes #14461
2025-12-02 16:00:54 -06:00
Greyson Parrelli
706d89db87 Introduce core-models module.
Needed to share some key components with feature modules without having
to depend on libsignal-service.
2025-12-02 16:00:54 -06:00
Alex Hart
abf32bf6ff Always show pip in call. 2025-12-02 16:00:53 -06:00
Alex Hart
2a45e1cbf2 Upgrade compose bom to 2025.11.01 2025-12-02 16:00:53 -06:00
Michelle Tang
56e6c4ab34 Fix divider color. 2025-12-02 16:00:53 -06:00
Michelle Tang
4d782491f4 Fix banner color with wallpapers. 2025-12-02 16:00:53 -06:00
Alex Hart
f41a0f8f97 Throw a retry error if we get an execution error while processing one-time donations. 2025-12-02 14:31:38 -06:00
Alex Hart
188f1c52a9 Fix keyboard animation when going back from emoji-search. 2025-12-02 14:31:38 -06:00
Alex Hart
559a665831 Add proper animation for call quality sheet. 2025-12-02 14:31:38 -06:00
Michelle Tang
8fd17fd909 Small UI fixes for pinned messages. 2025-12-02 14:31:38 -06:00
Michelle Tang
6d01fff7ee Fix dark theme color for pinned messages. 2025-12-02 14:31:38 -06:00
Michelle Tang
2d5a56a88a Support pinning of edited messages. 2025-12-02 14:31:38 -06:00
Alex Hart
fbbcf30737 Fix IndexOutOfBounds crash in ComposeText.onMeasure 2025-12-02 14:31:38 -06:00
Jim Gustafson
3ba120cc10 Update to RingRTC v2.60.3 2025-12-02 14:31:38 -06:00
Alex Hart
81305bfc6b Only proceed with completion check if the id matches. 2025-12-02 14:31:37 -06:00
Alex Hart
6b7509d4f8 Add support extension for isInMultiWindowMode check. 2025-12-02 14:31:37 -06:00
Pekka Nikander
448dda37bf Publish Kotlin class outputs as SourceSet outputs for jdt.ls
- Resolves Java <-> Kotlin in VSCode
- Add build/classes/kotlin/{main,test} as SourceSet outputs (builtBy compileKotlin/compileTestKotlin)
- Improves VSCode Java (jdt.ls via Buildship) classpath so Java can resolve Kotlin symbols in same module
- Metadata-only; no change to packaging or runtime

Signed-off-by: Pekka Nikander <pekka.nikander@iki.fi>

Resolves #14355
2025-12-02 14:31:37 -06:00
Greyson Parrelli
2a21fe1784 Do not allow outgoing messages when backing up release notes. 2025-12-02 14:31:37 -06:00
jeffrey-signal
f4c246eef0 Display existing group members in alphabetical order on add to groups screen. 2025-12-02 14:31:37 -06:00
Alex Hart
002d70496f Prevent call video from being turned off in multiwindow. 2025-12-02 14:31:37 -06:00
Alex Hart
61be2b92ba Fix emoji sizing on call reaction bar. 2025-12-02 14:31:37 -06:00
Alex Hart
54fb7ff23f Call quality survey integration. 2025-12-02 14:31:37 -06:00
Michelle Tang
804f479cb0 Add various fixes for pinned messages. 2025-12-02 14:31:37 -06:00
Michelle Tang
864867f60e Add go to indicator for pinned messages. 2025-12-02 14:31:37 -06:00
jeffrey-signal
8e2f2b8d1a Handle network errors gracefully during contacts refresh on new message and new call screens. 2025-12-02 14:31:37 -06:00
Jesse Wilson
38bc2b950f Convert SignalProxyUtil from Java to Kotlin.
Resolves #14453
2025-12-02 14:31:37 -06:00
Greyson Parrelli
37f67f9717 Add Mi 9T Pro to the voice note sample rate special handling.
Fixes #14452
2025-12-02 14:31:36 -06:00
Greyson Parrelli
5ea5279fbb Add initial registration v5 prototype. 2025-12-02 14:31:36 -06:00
jeffrey-signal
1a5163fc47 Fix recipient search bar configuration for add to groups screen. 2025-12-02 14:31:36 -06:00
Michelle Tang
d2c3861ac7 Improve the pinned messages bottom sheet. 2025-12-02 14:31:36 -06:00
Jim Gustafson
c9a0fb30b0 Add call summary support for all calls. 2025-12-02 14:31:36 -06:00
Michelle Tang
44ec15c0e0 Enforce correct permissions when pinning messages. 2025-12-02 14:31:36 -06:00
jeffrey-signal
40008bddc7 Fix position of message reaction overlay in RTL. 2025-12-02 14:31:36 -06:00
Michelle Tang
80598d42cc Add basic pinned message support. 2025-12-02 14:31:36 -06:00
Greyson Parrelli
22701da765 Update compileSdk to 36. 2025-12-02 14:31:36 -06:00
Alex Hart
7c9aa3de72 Add support for displaying spoiler text in compose. 2025-12-02 14:31:36 -06:00
Alex Hart
b3b934e009 Address design feedback for calling UI. 2025-12-02 14:31:35 -06:00
andrew-signal
acd82353b1 Patch bug rendering PAC file users unable to connect. 2025-12-02 14:31:35 -06:00
Cody Henthorne
87e56bf4bf Route system camera quick restore qr scan into Signal camera. 2025-12-02 14:31:35 -06:00
Greyson Parrelli
8783d69406 Update to latest backup tests. 2025-12-02 14:31:35 -06:00
Alex Hart
ae4a3433f9 Set proper tier when writing to storage service. 2025-12-02 14:31:35 -06:00
jeffrey-signal
a3aeceb041 Enable split pane UI for add to groups screen. 2025-12-02 14:31:35 -06:00
jeffrey-signal
d4a03ae16b Prevent soft keyboard from covering recipient picker floating action button. 2025-12-02 14:31:35 -06:00
jeffrey-signal
4219e2d16f Simplify redundant split-pane window size class checks. 2025-12-02 14:31:35 -06:00
jeffrey-signal
1b77a523e4 Add split pane UI for add to groups screen. 2025-12-02 14:31:35 -06:00
Cody Henthorne
872c7c5ce2 Optimize more during low disk situations. 2025-12-02 14:31:34 -06:00
jeffrey-signal
8eef29cd77 Bump version to 7.66.5 2025-12-02 14:28:15 -06:00
jeffrey-signal
02f4867d8a Update translations and other static files. 2025-12-02 14:22:44 -06:00
jeffrey-signal
8e06637b4f Prevent soft keyboard from covering recipient picker floating action button. 2025-12-02 13:27:48 -06:00
Greyson Parrelli
df07f4fee4 Bump version to 7.66.4 2025-11-28 13:57:25 -05:00
Greyson Parrelli
66c8790e1c Update translations and other static files. 2025-11-28 13:57:03 -05:00
Greyson Parrelli
2bf3ec60eb Fix deadlock with nested calls to runBlocking.
Fixes #14460
2025-11-28 13:39:54 -05:00
Greyson Parrelli
fee062e727 Bump version to 7.66.3 2025-11-24 12:17:15 -05:00
Greyson Parrelli
becacb5913 Update translations and other static files. 2025-11-24 12:16:29 -05:00
Alex Hart
7640dde28f Fix potential race and crash when deleting a call link. 2025-11-24 12:57:21 -04:00
Alex Hart
246abb9b80 Capture current URI before proceeding with null-check. 2025-11-24 10:47:46 -04:00
Alex Hart
03bbf196c8 Lock screen orientation after locking audio recorder. 2025-11-24 09:29:03 -04:00
Cody Henthorne
c2ea1ba225 Bump version to 7.66.2 2025-11-21 15:28:27 -05:00
Cody Henthorne
8608942387 Update translations and other static files. 2025-11-21 15:27:55 -05:00
Cody Henthorne
e80aecbb4c Fix crash when rendering shortcut avatars on buggy old versions of Android. 2025-11-21 11:57:27 -05:00
Greyson Parrelli
180dcb3a41 Fix potential platform-specific storage crash.
Fixes #14448
2025-11-21 11:46:05 -05:00
Cody Henthorne
ac3fced0b4 Bump version to 7.66.1 2025-11-20 15:40:40 -05:00
Cody Henthorne
04ed3d0334 Update translations and other static files. 2025-11-20 15:37:43 -05:00
Cody Henthorne
1ad838d8ce Make restore dialogs not cancelable. 2025-11-20 13:40:45 -05:00
Cody Henthorne
25481b7408 Fix backup restore after captcha navigation bug. 2025-11-20 12:03:24 -05:00
Alex Hart
cc3919244b Hide local user badge everywhere unless they have it enabled. 2025-11-20 11:18:44 -04:00
Cody Henthorne
9cd2838cbf Bump version to 7.66.0 2025-11-19 16:03:53 -05:00
Cody Henthorne
cd3c0dc5c1 Update translations and other static files. 2025-11-19 15:52:14 -05:00
Cody Henthorne
8030be031f Redownload emoji search index if data is missing. 2025-11-19 15:44:53 -05:00
andrew-signal
a3f1cc508e Bump to libsignal v0.86.4 2025-11-19 15:44:53 -05:00
Cody Henthorne
d918e11cab Fix various issues with optimized media. 2025-11-19 15:44:53 -05:00
Alex Hart
6680e74cea Add 2s timeout to message notifier icon loading. 2025-11-19 15:44:53 -05:00
Alex Hart
0afa75564f Write voice recording data in 1s intervals to drafts. 2025-11-19 15:44:53 -05:00
Greyson Parrelli
7978cc668d Fix potential performance issues during backup attachment upload. 2025-11-19 15:44:53 -05:00
Greyson Parrelli
eebf3e0836 Add backup support for theme and bar size settings. 2025-11-19 15:44:53 -05:00
Alex Hart
cffc445048 Disable user input for tooltips to prevent long press from re-displaying tooltip. 2025-11-19 15:44:53 -05:00
Greyson Parrelli
412b014b13 Improve some backup strings. 2025-11-19 15:44:53 -05:00
jeffrey-signal
94241f7068 Enable split pane UI for add group members screen. 2025-11-19 15:44:53 -05:00
jeffrey-signal
c851387f57 Add split pane UI for add group members screen. 2025-11-19 15:44:52 -05:00
Greyson Parrelli
16d5db3639 Exclude BackupMediaSnapshotTable from legacy local backups. 2025-11-19 15:44:52 -05:00
Alex Hart
69d2ad410f Rewrite layout for call participants to match new spec. 2025-11-19 15:44:52 -05:00
jeffrey-signal
9f0f8b7cbc Respect incognito keyboard setting in Compose UIs. 2025-11-19 15:44:52 -05:00
Alex Hart
d5150d44e3 Fix on-back-pressed issue after navigating to search result. 2025-11-19 15:44:52 -05:00
Alex Hart
b5f444d1cf Prevent errant click-through to settings button when search is open. 2025-11-19 15:44:52 -05:00
Alex Hart
8f83bf43af Fix back handling after a one-time donation is completed. 2025-11-19 15:44:52 -05:00
Alex Hart
be3d231fcc Fix issue where bottom bar padding would only appear on second entry. 2025-11-19 15:44:52 -05:00
Cody Henthorne
8149c469c8 Fix payment activation messages being sent to wrong threads. 2025-11-19 15:44:52 -05:00
Cody Henthorne
a3e3291d9c Fix websocket reconnect race due to async IMO termination. 2025-11-19 15:44:52 -05:00
Cody Henthorne
4efcf14b7a Fix unread count getting double incremented on new message. 2025-11-19 15:44:52 -05:00
Alex Hart
be600f769d Add blurring for focused state for local call pip. 2025-11-19 15:44:52 -05:00
Greyson Parrelli
2a3888472f Ensure that restore status gets reset on failure. 2025-11-19 15:44:52 -05:00
Greyson Parrelli
9997ac2ef9 Improve backup progress compose previews. 2025-11-19 15:44:52 -05:00
Greyson Parrelli
925e46ff3a Add ability to force RTL to compose previews. 2025-11-19 15:44:52 -05:00
jeffrey-signal
0e46ab33e8 Centralize recipient lookup in RecipientRepository. 2025-11-19 15:44:52 -05:00
Alex Hart
2e1291b3c3 Add new focused state for the local calling pip. 2025-11-19 15:44:52 -05:00
Cody Henthorne
90fe924d18 Bump version to 7.65.4 2025-11-19 15:38:50 -05:00
Cody Henthorne
37179a9199 Update translations and other static files. 2025-11-19 15:33:45 -05:00
Alex Hart
12a0264e4b Post a request to apply insets after window is attached. 2025-11-19 14:27:34 -04:00
Michelle Tang
278030d950 Check against empty service ids. 2025-11-19 12:47:10 -05:00
Alex Hart
69b63a020c Add GooglePayComponent interface to MainActivity. 2025-11-19 10:23:18 -04:00
Greyson Parrelli
5ebbcc0e26 Bump version to 7.65.3 2025-11-18 20:15:50 -05:00
Greyson Parrelli
ec86d6f8bd Update translations and other static files. 2025-11-18 20:15:22 -05:00
Greyson Parrelli
caa0c26a54 Fix potential NPE with disappearing group updates. 2025-11-18 20:05:49 -05:00
Greyson Parrelli
c46a005758 Fix bug in job eligibility sorting after a job deletion. 2025-11-18 19:58:45 -05:00
Cody Henthorne
92389284a5 Bump version to 7.65.2 2025-11-17 15:42:05 -05:00
Cody Henthorne
2ab04f67b9 Update translations and other static files. 2025-11-17 15:38:06 -05:00
Michelle Tang
d0e09c0792 Update dark theme color for polls. 2025-11-17 15:11:45 -05:00
Alex Hart
b316c6f29e Fix bottom bar. 2025-11-17 12:24:22 -04:00
Alex Hart
9798a11e51 Apply window insets to bottom action bar if they're not already consumed. 2025-11-17 12:24:22 -04:00
Alex Hart
6352271e31 Fix color of bottom bar when attachment keyboard is open. 2025-11-17 12:24:22 -04:00
Alex Hart
2e316cbea0 Ignore chat item long click if the list is null. 2025-11-17 12:24:22 -04:00
Michelle Tang
a17bad36b2 Allow ending of a poll in single-member groups. 2025-11-17 10:10:10 -05:00
Michelle Tang
88b0e716e6 Trim polls text. 2025-11-17 10:09:56 -05:00
Michelle Tang
912489d1c8 Fix vote selection. 2025-11-17 10:09:37 -05:00
Alex Hart
5be3721869 Bump version to 7.65.1 2025-11-14 16:23:06 -04:00
Alex Hart
385efaaebd Update translations and other static files. 2025-11-14 16:20:33 -04:00
Alex Hart
46672dfed8 Remember and restore last pane selection. 2025-11-14 16:10:37 -04:00
Alex Hart
46596fe79e Require expanded width to be present for device to enter split pane. 2025-11-14 16:10:29 -04:00
Michelle Tang
9173aeabf2 Fix lint. 2025-11-14 12:53:10 -05:00
Michelle Tang
2c7beb9258 Center star when viewing results. 2025-11-14 12:36:14 -05:00
Michelle Tang
1abd09754f Make the whole row tappable. 2025-11-14 12:16:42 -05:00
Michelle Tang
d5aba6cd9a Allow voting in one person group. 2025-11-13 17:35:43 -05:00
Michelle Tang
5ed4813331 Fix poll bugs. 2025-11-13 13:14:13 -05:00
Alex Hart
5bbc526923 Bump version to 7.65.0 2025-11-12 18:58:40 -04:00
Alex Hart
e4224a5576 Update translations and other static files. 2025-11-12 16:47:07 -04:00
Alex Hart
baf3309a04 Better insets propagation. 2025-11-12 16:36:58 -04:00
Greyson Parrelli
dd8104bf61 Add error case for when you don't have enough disk space to create a backup. 2025-11-12 16:36:58 -04:00
jeffrey-signal
ccdec5113f Fix missing group size limit warnings. 2025-11-12 16:36:58 -04:00
Michelle Tang
bca406c8d3 Fix quotes of unsupported message. 2025-11-12 16:36:58 -04:00
Michelle Tang
1a4eabd074 Enable sending of polls. 2025-11-12 16:36:58 -04:00
Michelle Tang
7e4085b9a9 Separate end poll strings. 2025-11-12 16:36:58 -04:00
Greyson Parrelli
7adcc466ad Prepare to show backups megaphone to beta users. 2025-11-12 16:36:58 -04:00
Greyson Parrelli
ad45ca1fcc Update to the latest backup tests. 2025-11-11 15:37:23 -05:00
Greyson Parrelli
a5d5770f2e Avoid the possibility of double-exporting a recipient. 2025-11-11 15:29:22 -05:00
Greyson Parrelli
b047f8bc0a Attempt backing up a subset of messages if you hit the limit. 2025-11-11 14:48:09 -05:00
Cody Henthorne
f4e82e6aab Fix change number problems. 2025-11-11 13:55:08 -05:00
Michelle Tang
70cf74ff4f Minor poll UI fixes. 2025-11-11 11:22:55 -05:00
Alex Hart
7d4da76895 Be a bit smarter about choosing our anchor to animate to. 2025-11-10 13:19:24 -04:00
Greyson Parrelli
62b0e21f67 Fix possible NPE when dismissing emoji popup. 2025-11-10 12:04:18 -05:00
Greyson Parrelli
2147ad29fa Move all Pair usage to kotlin.Pair 2025-11-10 12:03:24 -05:00
Alex Hart
66f136903f Ensure gift flow can be created from any fragment it's initialised in. 2025-11-10 12:58:45 -04:00
Alex Hart
e87aa22d32 Don't show 'Payment Pending' during backup subscription keep-alive flows. 2025-11-10 12:51:18 -04:00
Alex Hart
ddaabafe44 Reduce the timeout for the popup window and allow users to click to dismiss. 2025-11-10 12:02:21 -04:00
Alex Hart
2225a14e13 Allow users to confirm link preview on text story before it loads. 2025-11-10 11:36:54 -04:00
Alex Hart
b9a999b0d0 Do nothing if the error returned is SETUP_CANCELLED. 2025-11-10 10:52:19 -04:00
Alex Hart
76b1f3451b RTL fix for donations receipts. 2025-11-10 10:00:47 -04:00
jeffrey-signal
a97dca7b44 Fix edited message attachments stuck in download state. 2025-11-07 16:55:35 -05:00
Jordan Rose
b2e547f9f2 Update to libsignal 0.86.1 2025-11-07 16:34:31 -05:00
Greyson Parrelli
945453cb81 Refactor backup creation failures, add case for file too large. 2025-11-07 15:20:05 -05:00
Alex Hart
ad0b240550 Convert CallParticipantId to Kotlin. 2025-11-07 15:20:05 -05:00
Alex Hart
dd8f36f280 Implement CallParticiantsUpdatePopup in compose. 2025-11-07 15:20:05 -05:00
Alex Hart
632aec423f Convert InternalDonorErrorConfigurationFragment to Compose. 2025-11-07 15:20:05 -05:00
Alex Hart
d241aebade Convert WhoCanFindMeByPhoneNumber to StateFlow. 2025-11-07 15:20:05 -05:00
Alex Hart
ba378d28f4 Inline large-screen internal setting and remove it. 2025-11-07 15:20:05 -05:00
Alex Hart
696dba9dee Add callbacks to tiny local video renderer. 2025-11-07 15:20:05 -05:00
Greyson Parrelli
44527f3763 Add a DiskSpaceNotLowConstraint and use for automatic attachment restore. 2025-11-07 15:20:05 -05:00
Alex Hart
be5500e990 Display large local renderer in ongoing group call if no other users are joined. 2025-11-07 15:20:05 -05:00
jeffrey-signal
0c3a77f75a Move RecipientPicker to recipients package. 2025-11-07 15:20:05 -05:00
jeffrey-signal
6bf2efd96c Remove excess bottom padding in landscape when using gesture navigation. 2025-11-07 15:20:05 -05:00
Greyson Parrelli
c8e0ba8194 Reduce error noise when failing to restore an attachment that was intentionally never uploaded. 2025-11-07 15:20:05 -05:00
Alex Hart
0c0e1600e6 Formatting. 2025-11-07 15:20:05 -05:00
Alex Hart
4be3a58f96 Formatting. 2025-11-07 15:20:05 -05:00
Greyson Parrelli
72206b9523 Add debugging info around used disk space. 2025-11-07 15:20:05 -05:00
Alex Hart
2fad52abdc Convert InternalStoryDialogLauncherFragment to Compose. 2025-11-07 15:20:05 -05:00
Michelle Tang
4040b3badd Fix see all button when viewing votes. 2025-11-07 15:20:05 -05:00
jeffrey-signal
a96a0a7009 Enable split pane UI for new call screen. 2025-11-07 15:20:05 -05:00
Greyson Parrelli
75346c3f6b Only mark exported attachment as wasDownloaded if plaintextHash present. 2025-11-07 15:20:05 -05:00
Michelle Tang
4c00337b1a Only write binary ids in staging. 2025-11-07 15:20:05 -05:00
jeffrey-signal
27e6ecb2a0 Add reusable scaffold for recipient picker screens. 2025-11-07 15:20:04 -05:00
Alex Hart
cf14101a24 Fix saved-state issue in TriggerAlignedPopup. 2025-11-07 15:20:04 -05:00
Greyson Parrelli
5d5c8803bd Fix notification profile export. 2025-11-07 15:20:04 -05:00
Michelle Tang
366badbe92 Bump version to 7.64.2 2025-11-07 15:08:43 -05:00
Michelle Tang
3272e2edc7 Update translations and other static files. 2025-11-07 15:03:41 -05:00
Alex Hart
aa5f5a9c2a Fix crash when entering convo with mention in draft. 2025-11-07 15:26:36 -04:00
Michelle Tang
85aab85d87 Bump version to 7.64.1 2025-11-06 15:22:44 -05:00
Michelle Tang
f5d5ebadf0 Update translations and other static files. 2025-11-06 15:13:56 -05:00
jeffrey-signal
db5e74b9a8 Revert "Fix navigation bar and display cutout overlap on compact-width screens in landscape."
This reverts commit 7048476399.
2025-11-05 18:35:12 -05:00
Michelle Tang
00120e8c33 Bump version to 7.64.0 2025-11-05 16:17:30 -05:00
Michelle Tang
881ad53612 Update translations and other static files. 2025-11-05 16:06:06 -05:00
jeffrey-signal
7048476399 Fix navigation bar and display cutout overlap on compact-width screens in landscape. 2025-11-05 15:58:44 -05:00
Alex Hart
076b78759e Fix reaction and state bar placement on new call screen. 2025-11-05 15:58:44 -05:00
Michelle Tang
a79a059816 Make ending a poll a blocking job. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
6a6b56e50c Fix validation check around thread merge events. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
498481dce3 Add last registration time to log. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
9138a8972f Convert LogSectionSystemInfo to kotlin. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
677686fa40 Update to latest backup tests. 2025-11-05 15:58:44 -05:00
Michelle Tang
b2013e5d75 Handle rate limits when rotating recovery key. 2025-11-05 15:58:44 -05:00
Michelle Tang
800155e5a6 Add confirmation check before ending a poll. 2025-11-05 15:58:44 -05:00
Alex Hart
e5b8262cfe Add back protection dialog on recovery key screen. 2025-11-05 15:58:44 -05:00
Alex Hart
1b5f49e94e Update previews for CallScreen. 2025-11-05 15:58:44 -05:00
Alex Hart
c0fe2dfdc0 Add BackHandler compatibility layer. 2025-11-05 15:58:44 -05:00
jeffrey-signal
b9897eba79 Remove unused/broken ContactFilterView setText method. 2025-11-05 15:58:44 -05:00
Alex Hart
89ba3a83ff Calling UI camera toggle in PIP and in pre-join state. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
e6f11c7443 Require key rotation to disable pins. 2025-11-05 15:58:44 -05:00
Alex Hart
4cce6d3c86 Add backup upgrade availability checks. 2025-11-05 15:58:44 -05:00
andrew-signal
fa334b3752 Bump to libsignal v0.85.6 2025-11-05 15:58:44 -05:00
Jim Gustafson
977b291bc7 Update to RingRTC v2.59.3 2025-11-05 15:58:44 -05:00
Greyson Parrelli
42c3f7ead4 Use a cancelation result instead of an exception for message sends. 2025-11-05 15:58:44 -05:00
Alex Hart
95837b09db Keep successful redemption message longer. 2025-11-05 15:58:44 -05:00
Alex Hart
abbec60465 Add null handling for backup subscriptions. 2025-11-05 15:58:44 -05:00
Alex Hart
8c99843b2d Consolidate back callback to a single delegate. 2025-11-05 15:58:44 -05:00
Cody Henthorne
04d8f7d9aa Fix incorrect mention notification setting sync. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
a0997e6a87 Fix enter key send with attachments. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
4a99d468c7 On import, if any recipient is pending, mark overall message as pending. 2025-11-05 15:58:44 -05:00
Cody Henthorne
d6156ab3f2 Prevent SVRB falling out of sync after re-registrations. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
10d6e5293b Prevent possible backup bug when we fix group recipients. 2025-11-05 15:58:44 -05:00
Alex Hart
683da1f167 Convert expire timer settings fragment to compose. 2025-11-05 15:58:44 -05:00
Cody Henthorne
4b5c9723c1 Fix read group message rendering as pending after import. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
aed9b3afaa Fix the UI being unresponsive during media restore. 2025-11-05 15:58:44 -05:00
Alex Hart
07f33d22bf Convert NotificationProfilesSettingsFragment to compose. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
19192437ad Update to latest backup tests. 2025-11-05 15:58:44 -05:00
Alex Hart
1d7ae669b6 Clear out checks for SDK < 23 as they're no longer relevant. 2025-11-05 15:58:44 -05:00
Cody Henthorne
ab9c8626c0 Fix some edit messages causing unread threads after restore. 2025-11-05 15:58:44 -05:00
Alex Hart
4bb93c653a Update diffuse gradle wrapper validation to v5. 2025-11-05 15:58:44 -05:00
Greyson Parrelli
32894ff0a4 Add additional validations around incoming message on export. 2025-11-05 15:58:42 -05:00
Alex Hart
ea82600a83 Increment minimum SDK version to 23. 2025-11-05 15:55:08 -05:00
Greyson Parrelli
a09195d9de Add addition validations to chat wallpapers on export. 2025-11-05 15:55:08 -05:00
Greyson Parrelli
8448cbef52 Add extra validation to call link exports. 2025-11-05 15:54:48 -05:00
Greyson Parrelli
4a61e45fba Add additional group update validations during export. 2025-11-05 15:54:48 -05:00
Greyson Parrelli
8ac0c42f44 Validate usernames during backup export. 2025-11-05 15:54:48 -05:00
Greyson Parrelli
587bfcb524 Remove unnecessary status code handling. 2025-11-05 15:54:48 -05:00
Greyson Parrelli
179bd17680 Add validations to ensure some simple chat updates are exported properly. 2025-11-05 15:54:48 -05:00
Greyson Parrelli
765c1eeab0 Add protections around exporting unknown recipients in dlists. 2025-11-05 15:54:45 -05:00
Greyson Parrelli
107ee5268e Add some resiliance to custom chat color export. 2025-11-05 15:47:24 -05:00
Greyson Parrelli
6aa6b490b5 Fix backup row disabled state in settings. 2025-11-05 15:47:23 -05:00
Greyson Parrelli
2ba08965d2 Show exact alarm megaphone if Signal Backups enabled. 2025-11-05 15:47:23 -05:00
Greyson Parrelli
a7da663d4f Ignore unreadable wallpapers. 2025-11-05 15:47:23 -05:00
Alex Hart
a4bf92b6a8 Preserve pane expansion state across window size class changes. 2025-11-05 15:47:20 -05:00
Michelle Tang
3258e9dc39 Bump version to 7.63.3 2025-11-05 15:08:27 -05:00
Michelle Tang
dd61187f9a Update translations and other static files. 2025-11-05 15:04:54 -05:00
Greyson Parrelli
9944fbb487 Fix next backup interval test. 2025-11-05 15:00:49 -05:00
Alex Hart
bf0307f4b0 Never display split pane on devices whose height is COMPODACT. 2025-11-05 14:25:07 -05:00
Greyson Parrelli
680d436038 Fix handling non-existent SVR enclaves. 2025-11-05 13:25:10 -05:00
Cody Henthorne
2b2e3e1d02 Fix account inconsistency reset causing restore flow to show bug. 2025-11-05 11:44:05 -05:00
jeffrey-signal
6d5bb65c19 Bump version to 7.63.2 2025-10-31 18:23:31 -04:00
jeffrey-signal
501f3466a2 Update translations and other static files. 2025-10-31 17:52:54 -04:00
jeffrey-signal
84c713c2f7 Fix bottom chrome visibility in landscape split-screen with bottom nav. 2025-10-31 17:48:18 -04:00
Michelle Tang
303c2ea14a Adding UI polish for polls. 2025-10-31 17:48:18 -04:00
Alex Hart
109f651681 Remove custom WindowSizeClass and just depend on Material Adaptive WindowSizeClass.
Co-authored-by: jeffrey-signal <jeffrey@signal.org>
2025-10-31 17:48:18 -04:00
Greyson Parrelli
95c9776b4d Fix query selection crash during backup. 2025-10-31 17:48:18 -04:00
jeffrey-signal
89e6479021 Bump version to 7.63.1 2025-10-30 17:40:15 -04:00
jeffrey-signal
e6cb2a9273 Update translations and other static files. 2025-10-30 17:16:23 -04:00
Cody Henthorne
636f6a338e Use better check for websocket can connect check. 2025-10-30 14:47:17 -04:00
Alex Hart
41ba3383b2 Make navigation rail adaptive for small medium screens. 2025-10-30 15:15:11 -03:00
Alex Hart
9095ddaf19 Fix hijacking of navigation bar color when opening emoji keyboard. 2025-10-30 13:44:44 -03:00
Alex Hart
b4802c4bf6 Wait for global layout before animating in bottom action bar. 2025-10-30 13:13:19 -03:00
Alex Hart
eb72b88a16 Add better handling for pane dragging during search. 2025-10-29 16:46:29 -03:00
jeffrey-signal
be933648b2 Bump version to 7.63.0 2025-10-29 14:46:49 -04:00
jeffrey-signal
d4588d738f Update translations and other static files. 2025-10-29 14:42:50 -04:00
Michelle Tang
f4cca5ecc1 Bump protocol version number for polls. 2025-10-29 14:33:52 -04:00
Alex Hart
605b85455b Fix action mode back handling in conversation fragment. 2025-10-29 14:33:52 -04:00
Michelle Tang
18c7dbca08 Update vote logic for poll percentages. 2025-10-29 14:33:52 -04:00
Alex Hart
55040091af Convert private story settings fragment to compose. 2025-10-29 14:33:52 -04:00
Alex Hart
24c8501985 Report first render to main activity within nav hosts. 2025-10-29 14:33:52 -04:00
Cody Henthorne
5f5e0963e1 Prevent wallpaper archive thumbnail generation. 2025-10-29 14:33:52 -04:00
Cody Henthorne
4a163167e0 Fix OOM during backup export. 2025-10-29 14:33:52 -04:00
Cody Henthorne
e690c54f7c Fail gracefully when crash occurs during backup restore. 2025-10-29 14:33:52 -04:00
Alex Hart
1a39119c2b Fix list action mode exit on back. 2025-10-29 14:33:52 -04:00
Alex Hart
3cd86182db Update support logic for large screens. 2025-10-29 14:33:52 -04:00
Alex Hart
c89a3a2bf9 Increment largeScreenUI feature flag. 2025-10-29 14:33:52 -04:00
Cody Henthorne
908ca124f1 Clear recipient remap cache on restore. 2025-10-29 14:33:52 -04:00
Greyson Parrelli
5640e9c9b8 Show deprecation notice for API 21. 2025-10-29 14:33:52 -04:00
Alex Hart
6d84ea984d Preserve pane expansion state across window size class changes. 2025-10-29 14:33:52 -04:00
Michelle Tang
47201f4955 Add various backup fixes for polls. 2025-10-29 14:33:51 -04:00
Alex Hart
3f5a4ebf7b Utilize edgeToEdge instead of fullscreen helper. 2025-10-29 14:33:51 -04:00
Alex Hart
e0d56bfadf Reimplement conversation action mode to not use system actionmode. 2025-10-29 14:33:51 -04:00
Cody Henthorne
b9e0d9978b Delete attachment transfer files after restore or download. 2025-10-29 14:33:51 -04:00
Greyson Parrelli
ec76372e4d Fix potential thread conflict in backup import. 2025-10-29 14:33:51 -04:00
Cody Henthorne
fd902159ee Remove mock web server and prevent libsignal from connecting for android tests. 2025-10-29 14:33:51 -04:00
Michelle Tang
f16405fabf Add read support for binary service ids. 2025-10-29 14:33:51 -04:00
Alex Hart
bf4aa9cae9 Fix story shared element transition on foldables. 2025-10-29 14:33:51 -04:00
Alex Hart
ae8b8bbe7c AppScaffold Animation Performance impromements. 2025-10-29 14:33:51 -04:00
Alex Hart
443463aca8 Set pane role when we move to a fullscreen anchor. 2025-10-29 14:33:51 -04:00
Cody Henthorne
b300c911d7 Fix incorrect attachment archive state after changing remote key after upload. 2025-10-29 14:33:51 -04:00
Greyson Parrelli
6196fb4f44 Show toast when ignoring backup enable megaphone. 2025-10-29 14:33:51 -04:00
Greyson Parrelli
4ecd3ec052 Add more safety checks to e164 conversion in backup export. 2025-10-29 14:33:51 -04:00
Greyson Parrelli
b10a57de63 Temporarily disable 7 day backup warning. 2025-10-29 14:33:51 -04:00
Greyson Parrelli
3c27a690fd Address validation error around calls with invalid ringers. 2025-10-29 14:33:51 -04:00
Cody Henthorne
dcbd4a3fc4 Fix long text rendering as attachment bug. 2025-10-29 14:33:50 -04:00
Alex Hart
043b7b0a3d Fix two pane layout positioning and sizing. 2025-10-29 14:33:50 -04:00
Alex Hart
1862dded65 Fix NPE when slide URI is null. 2025-10-29 14:33:50 -04:00
Alex Hart
75a53974a4 Fix update of windowsizeclass. 2025-10-29 14:33:50 -04:00
Alex Hart
21138b9190 Set initial anchor index. 2025-10-29 14:33:50 -04:00
Alex Hart
8fbfc40ed5 Utilize an effect to initialize the current anchor. 2025-10-29 14:33:50 -04:00
Alex Hart
63ab448a27 Fix logo color and sizing in empty screen. 2025-10-29 14:33:50 -04:00
Alex Hart
d88c8baa83 Fix tap areas in stories viewer. 2025-10-29 14:33:50 -04:00
Greyson Parrelli
8d931391db Improve backup import resilience for duplicate messages. 2025-10-29 14:33:50 -04:00
andrew-signal
19afd5c0e6 Optimize padding block size based on real world experience. 2025-10-29 14:33:50 -04:00
Alex Hart
5a9c546dac Increase extended partition width to 24dp. 2025-10-29 14:33:50 -04:00
Greyson Parrelli
e288b8b429 Do not attempt to re-upload known-bad backup files. 2025-10-29 14:33:50 -04:00
Alex Hart
9ddc914cac Fix collapsed keyboard inset. 2025-10-29 14:33:50 -04:00
Greyson Parrelli
17e7b1735f Fix validation error with chat folder export. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
0b27c42e89 Update archive processors with consistent naming scheme. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
b15b50798a Fix quoting file-only messages. 2025-10-29 14:33:49 -04:00
Alex Hart
7b7b6a32ee Deselect active item when in full-screen pane. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
4fc516c84f Fix screenshot protection on details screen.
Fixes #14397
2025-10-29 14:33:49 -04:00
Cody Henthorne
76e92f29b9 Fix call requests to a PNI. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
55617c18f0 Fix color of caption button. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
ef05f33f08 Suppor tmore pasted image types. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
c25ce2bcdd Fix bug related to in-memory jobs not being prioritized properly. 2025-10-29 14:33:49 -04:00
andrew-signal
9ed921f58c Bump to libsignal v0.85.1 2025-10-29 14:33:49 -04:00
Greyson Parrelli
56a4ccb96d Fix time pattern matching for emoji search.
Fixes #14391
2025-10-29 14:33:49 -04:00
Greyson Parrelli
a8e65619d9 Downgrade warning log during backup creation. 2025-10-29 14:33:49 -04:00
Greyson Parrelli
123b88e032 Validate attachment key size. 2025-10-29 14:33:49 -04:00
Alex Hart
c268625f52 Ignore call to visibility if there's no view. 2025-10-29 14:33:49 -04:00
Alex Hart
74f9f39656 Do not update status bar or nav bar coloring if large screen support is enabled. 2025-10-29 14:33:49 -04:00
Alex Hart
9ddc600972 Ignore message backups checkout activity tests. 2025-10-29 14:33:49 -04:00
jeffrey-signal
d903bcf2b1 Enable split pane UI for create group screen. 2025-10-29 14:33:48 -04:00
jeffrey-signal
19558c5325 Create group v2 - Implement navigation to group details screen. 2025-10-29 14:24:38 -04:00
Alex Hart
9d545412a5 Update local inapppayment cancelation state to match that of the activesubscription when we discover it. 2025-10-29 14:24:38 -04:00
jeffrey-signal
7301dda5d1 Bump version to 7.62.3 2025-10-29 14:12:41 -04:00
jeffrey-signal
c88c565af3 Update translations and other static files. 2025-10-29 14:04:31 -04:00
jeffrey-signal
f932ea9f1f Fix AppScaffold content window insets. 2025-10-29 13:21:07 -04:00
Cody Henthorne
77e2d58dea Fix manual restore from remote flow. 2025-10-29 13:03:14 -04:00
jeffrey-signal
d261f3ebf5 Bump version to 7.62.2 2025-10-27 20:29:00 -04:00
jeffrey-signal
9f69ffbb88 Update translations and other static files. 2025-10-27 20:28:36 -04:00
jeffrey-signal
ab781cab8a Fix AppScaffold content window insets. 2025-10-27 20:16:21 -04:00
jeffrey-signal
6d843a9725 Bump version to 7.62.1 2025-10-27 19:10:31 -04:00
jeffrey-signal
a387d63b77 Update translations and other static files. 2025-10-27 18:52:42 -04:00
jeffrey-signal
37544aa8b7 Enable edge to edge for new conversation and create group screens. 2025-10-27 17:59:05 -04:00
jeffrey-signal
963a72a660 Convert ContactFilterView to compose. 2025-10-27 17:58:19 -04:00
Greyson Parrelli
c316381159 Bump version to 7.62.0 2025-10-22 16:05:59 -04:00
Greyson Parrelli
3c44d90da7 Update translations and other static files. 2025-10-22 16:05:26 -04:00
Cody Henthorne
90201a464d Fix invalid navigation to remote restore activity post registration. 2025-10-22 15:59:48 -04:00
Greyson Parrelli
5f8eaa4f1c Update reproducible build script to handle acceptable resource differences.
Fixes #13565
2025-10-22 15:53:09 -04:00
jeffrey-signal
d6446d2954 Add split-pane UI for create group screen. 2025-10-22 15:53:09 -04:00
Alex Hart
d763baa270 Fix margin on call log item. 2025-10-22 15:53:09 -04:00
Cody Henthorne
ea70d68ecc Fix incorrect navigation to RestoreActivty after app cold start. 2025-10-22 15:53:09 -04:00
Kanake
26cb17e25c Fix browser not opening in certain contexts.
Fixes #14368
Resolves #14388
2025-10-22 15:53:09 -04:00
Kanake
602fc8c6e7 Fix RTL issue with phone number in settings.
Fixes #14239
Resolves #14387
2025-10-22 15:53:09 -04:00
Alex Hart
e4fd7a6aee Persist stored vertical insets between activity restarts. 2025-10-22 15:53:09 -04:00
Alex Hart
12cb74bc05 Fix e2e test. 2025-10-22 15:53:09 -04:00
Alex Hart
0266de3532 Update dark colors for reaction overaly. 2025-10-22 15:53:09 -04:00
Jeffrey Starke
e235ce52e5 Standardize internal UI state property naming. 2025-10-22 15:53:09 -04:00
Alex Hart
d4c266561f Add "fake" chat list bitmap to fake transition. 2025-10-22 15:53:09 -04:00
jeffrey-signal
bd25447a8f Make optional RecipientPicker callbacks opt-in by splitting into smaller interfaces. 2025-10-22 15:53:09 -04:00
jeffrey-signal
2c435ef751 Disable password manager suggestions on new conversation search box. 2025-10-22 15:53:09 -04:00
Michelle Tang
96310ba1d0 Fix chat folder creation in large font sizes. 2025-10-22 15:53:09 -04:00
Michelle Tang
869eada21c Update recovery key education sheet. 2025-10-22 15:53:09 -04:00
Michelle Tang
1d13a62088 Fix read more button on stories. 2025-10-22 15:53:09 -04:00
Alex Hart
43bb32e64b Display back button when the conversation pane is expanded. 2025-10-22 15:53:09 -04:00
Alex Hart
f38262c0ab Add initial Call Quality UX. 2025-10-22 15:53:09 -04:00
Alex Hart
6e0bfa2cee Fixes for reaction overlay. 2025-10-22 15:53:09 -04:00
Alex Hart
07d270a82d Remove deprecated view model factory. 2025-10-22 15:53:09 -04:00
Alex Hart
1b2e80d2c8 Fix crash when opening archived chats. 2025-10-22 15:53:09 -04:00
Alex Hart
329389bb41 Utilize fixed rounded corner sheet for recipients fragment. 2025-10-22 15:53:09 -04:00
Alex Hart
c8f801da83 Allow detail content to slide with pane as we remove it. 2025-10-20 13:04:54 -03:00
Alex Hart
20f0764c68 Fix pane anchor for detail only offset. 2025-10-20 12:15:03 -03:00
Alex Hart
10f17a1bba Clear keyboard focus when entering multiselect mode. 2025-10-20 11:32:11 -03:00
Alex Hart
c2b02ea07c Ensure multiselect restarts as necessary on call log fragment. 2025-10-20 11:24:03 -03:00
Alex Hart
81e8ebe839 Do not hide navigation rail when performing multi-select in conversation list. 2025-10-20 11:13:01 -03:00
Alex Hart
d665856a7c Utilize height size class when dealing with landscape orientations. 2025-10-20 10:11:29 -03:00
Michelle Tang
1544cb81d5 Update UI when viewing votes. 2025-10-17 19:46:42 -04:00
Michelle Tang
e4abc6d256 Adding various poll UI updates. 2025-10-17 19:46:42 -04:00
Alex Hart
7901cad90b Show sheet for validation error. 2025-10-17 19:46:42 -04:00
Jim Gustafson
ea5a84b3dd Update to RingRTC v2.59.2 2025-10-17 19:46:42 -04:00
jeffrey-signal
9d0422a898 Enable split pane UI for new conversation screen. 2025-10-17 19:46:42 -04:00
jeffrey-signal
4fd4792dd8 New conversation v2 - Implement remaining functionality. 2025-10-17 19:46:42 -04:00
Alex Hart
802f980c6f Add CallQualitySurvey proto. 2025-10-17 19:46:42 -04:00
Alex Hart
435be7c63d Fix auto-expansion of panes on click. 2025-10-17 19:46:42 -04:00
jeffrey-signal
e2b57b55d6 Add snackbar host to AppScaffold. 2025-10-17 19:46:42 -04:00
Michelle Tang
b3f74d37e1 Add poll icon when quoting a poll. 2025-10-17 19:46:42 -04:00
Michelle Tang
91b70038e6 Add ability to cancel a pending vote. 2025-10-17 19:46:42 -04:00
Cody Henthorne
08eca9ac27 Prevent invalid profile keys from being processed for storage service. 2025-10-17 19:46:42 -04:00
Cody Henthorne
55916f31aa Only consider backup5 for link and sync. 2025-10-17 19:46:42 -04:00
Cody Henthorne
b9abe9c119 Bump version to 7.61.3 2025-10-17 19:46:08 -04:00
Cody Henthorne
cb1605bf23 Update translations and other static files. 2025-10-17 19:43:34 -04:00
Alex Hart
dcc533ef49 Remove body of migration 293. 2025-10-17 19:35:41 -04:00
Cody Henthorne
cdafe47c9a Bump version to 7.61.2 2025-10-16 16:34:33 -04:00
Cody Henthorne
365ad54f10 Update translations and other static files. 2025-10-16 16:34:25 -04:00
Cody Henthorne
ded8c99ce2 Attempt to fix sqlexception in migrations. 2025-10-16 16:23:46 -04:00
Cody Henthorne
b1d7da5320 Bump version to 7.61.1 2025-10-16 15:56:11 -04:00
Cody Henthorne
467fa11a17 Update translations and other static files. 2025-10-16 15:55:27 -04:00
Cody Henthorne
3346497a25 Fix crash importing recipients without identifiers. 2025-10-16 15:49:02 -04:00
Cody Henthorne
6ea0e176c9 Bump version to 7.61.0 2025-10-15 15:39:04 -04:00
Cody Henthorne
8ea443cde1 Update translations and other static files. 2025-10-15 15:33:51 -04:00
Alex Hart
c2d0d80b9f Fix flickering footer when inlining causes 1-2px change in width. 2025-10-15 15:26:34 -04:00
Alex Hart
cbe72307a0 Add proper selection state support to Chats and Calls tabs. 2025-10-15 15:26:34 -04:00
Alex Hart
e57b47ec82 Fix NoSuchMessageException when loading stories. 2025-10-15 15:26:34 -04:00
Alex Hart
518bf04e1d Filter attachments except for LONG_TEXT when receiving an EditMessage. 2025-10-15 15:26:34 -04:00
Cody Henthorne
a430e9b3d3 Enable link device UX for nightly builds. 2025-10-15 15:26:34 -04:00
Cody Henthorne
75ce72ee83 Fix set archive transfer state race for duplicate attachments. 2025-10-15 15:26:34 -04:00
jeffrey-signal
5d60ab35de New conversation v2 - Add support for find by username/phone/contacts and group creation. 2025-10-15 15:26:34 -04:00
Alex Hart
33f9369883 Fix inline search display on landscape orientations. 2025-10-15 15:26:34 -04:00
Alex Hart
7d1abf0f7c Fix automated tests for message backups checkout flow. 2025-10-15 15:26:34 -04:00
Alex Hart
17d1061204 Utilize pointerIndex instead of a pointerId for motion events.
Fixes #14290
2025-10-15 15:26:34 -04:00
Alex Hart
feb37eea2d Fix BioRecipientState if recipient does not have an e164. 2025-10-15 15:26:34 -04:00
Alex Hart
6bde2fd20a Fix improper media selection after deletion. 2025-10-15 15:26:34 -04:00
Cody Henthorne
7b25cc399d Implement skip restore on the iOS to android failure screen. 2025-10-15 15:26:34 -04:00
Michelle Tang
525175f04a Add polls to backups. 2025-10-15 15:26:34 -04:00
Cody Henthorne
a2aabeaad2 Fix duplicate messages during backup import causing unique constraint failure bug. 2025-10-15 15:26:34 -04:00
Taha Murtaza Ali
cdfcdcc3b7 Utilize proper theme color. 2025-10-15 15:26:34 -04:00
jeffrey-signal
56244ad873 Add default style for dropdown menu item text. 2025-10-15 15:26:34 -04:00
andrew-signal
e6399517ee Update manifest to reflect constrained satellite network support.
Co-authored-by: Avanish Subbiah <subbiah@purdue.edu>
2025-10-15 15:26:34 -04:00
andrew-signal
1c3223f551 Bump to libsignal v0.84.0 2025-10-15 15:26:34 -04:00
Jordan Rose
f4f2976907 Remove redundant IdentityKeyUtil helper. 2025-10-15 15:26:34 -04:00
Jeffrey Starke
76f65198bb Fix sticker management top app bar menu padding. 2025-10-15 15:26:34 -04:00
Alex Hart
971bcf4f41 Utilize snapshotFlow to fix insets. 2025-10-15 15:26:34 -04:00
jeffrey-signal
b49074a786 New Conversation v2 - Fix find by username/phone options disappearing after rotation. 2025-10-15 15:26:34 -04:00
andrew-signal
eea89d3b62 Add helper to catch/wrap exceptions that originate inside runWithUnauthChatConnection. 2025-10-15 15:26:34 -04:00
Alex Hart
3f7b73cf5e Require ACI for ReadMessage sender field. 2025-10-15 15:26:33 -04:00
Alex Hart
cbc547d322 Fix ANR when trying to load a message composed of 10,000 random emoji. 2025-10-15 15:26:33 -04:00
Alex Hart
c9a59a7417 Fix ANR when trying to load a message composed of 10,000 random emoji. 2025-10-15 15:26:33 -04:00
Cody Henthorne
f8eaa96412 Fix blocking bugs for internal link and sync testing. 2025-10-15 15:26:33 -04:00
Cody Henthorne
33a7f55fa3 Bump version to 7.60.2 2025-10-15 15:13:06 -04:00
Cody Henthorne
7cbee2e5f4 Update translations and other static files. 2025-10-15 15:12:49 -04:00
Cody Henthorne
56725f0f5c Fix crash with missing last_resort_key_tuple table. 2025-10-15 14:21:41 -04:00
Michelle Tang
7b6c2fa729 Check for self before getting polls. 2025-10-15 13:30:02 -04:00
Alex Hart
7b34dc75b3 Bump version to 7.60.1 2025-10-09 17:32:05 -03:00
Alex Hart
8d3d86372f Update translations and other static files. 2025-10-09 17:05:00 -03:00
Michelle Tang
7de9218b80 Put poll receive support behind feature flag. 2025-10-09 16:33:44 -03:00
Cody Henthorne
f9ddba5aed Fix duplicate e164 short codes cleanup bug. 2025-10-09 15:00:06 -04:00
Cody Henthorne
9ab1996f4a Include last backup proto size in size calculation. 2025-10-09 11:35:22 -04:00
Alex Hart
c7666626a1 Bump version to 7.60.0 2025-10-08 16:26:38 -03:00
Alex Hart
9a6c869bb5 Update translations and other static files. 2025-10-08 16:21:53 -03:00
Jeffrey Starke
ac86140133 Rename AppScaffold detailContent/listContent to primaryContent/secondaryContent. 2025-10-08 16:15:28 -03:00
jeffrey-signal
534756c833 Add split pane UI for new conversation screen. 2025-10-08 16:15:28 -03:00
Cody Henthorne
0f35eb7f7b Fix bad state when in restore flow and become unregistered. 2025-10-08 16:15:28 -03:00
Cody Henthorne
a5cca5b0fd Reset backup id on zk verification failure during restore attempts. 2025-10-08 16:15:28 -03:00
Michelle Tang
6e8f982e7b Process notification profiles before accounts during storage sync. 2025-10-08 16:15:28 -03:00
Michelle Tang
a14517fceb Update vote result color. 2025-10-08 16:15:28 -03:00
Alex Hart
fe17e01ff5 Fix improper filename on sent media items. 2025-10-08 16:15:28 -03:00
Cody Henthorne
585fb3eea8 Fix window insets for pixel 10 devices. 2025-10-08 16:15:28 -03:00
Alex Hart
3e07834c20 Log out windowsizeclass. 2025-10-06 13:13:11 -03:00
Alex Hart
14cc0f12a6 Fix BackupSubscriptionCheckJob tests. 2025-10-03 15:31:20 -04:00
Alex Hart
1d403d3dee Implement AppScaffold back-gesture. 2025-10-03 15:31:20 -04:00
gram-signal
d36a4232be Bump libsignal to v0.83.0 2025-10-03 15:31:20 -04:00
Jim Gustafson
5b8750a84f Update to RingRTC v2.59.0 2025-10-03 15:31:20 -04:00
Michelle Tang
0323cb5d98 Bump version to 7.59.1 2025-10-03 15:25:44 -04:00
Michelle Tang
f4369f90e0 Update translations and other static files. 2025-10-03 15:20:37 -04:00
Cody Henthorne
8b19cbb603 Show correct dialog when validating AEP after registration. 2025-10-03 15:17:10 -04:00
Alex Hart
aa3a797e19 Drop UNIQUE constraint from table column. 2025-10-03 15:41:29 -03:00
Cody Henthorne
827ceafffb Show skip restore warning. 2025-10-03 14:13:15 -04:00
Michelle Tang
cf1afb739f Bump version to 7.59.0 2025-10-02 13:17:59 -04:00
Michelle Tang
b9fe377afd Update translations and other static files. 2025-10-02 13:11:22 -04:00
Michelle Tang
a381697949 Update button color when viewing votes. 2025-10-02 12:56:04 -04:00
Michelle Tang
2d87078495 Show character count when creating a poll. 2025-10-02 12:56:04 -04:00
Alex Hart
1b9695cb98 Reject last-use kyber key sets that we've seen before. 2025-10-02 12:56:04 -04:00
Cody Henthorne
5324290fab Dedupe attachment downloads for matching attachments and fix size calculations. 2025-10-02 12:56:04 -04:00
Michelle Tang
b8e4ffb5ae Release polls behind feature flag. 2025-10-02 12:56:04 -04:00
Cody Henthorne
67a693107e Fix bad data for users that rotated their recovery key. 2025-10-02 12:56:04 -04:00
andrew-signal
e08b86cda6 Bump to libsignal v0.82.1 2025-10-02 12:56:04 -04:00
Michelle Tang
92bab9fb20 Drop duplicate name error when editing profiles. 2025-10-02 12:56:04 -04:00
Michelle Tang
e7502f08ce Clear etag on internal only config refresh. 2025-10-02 12:56:04 -04:00
Alex Hart
3a530022fc Add additional dialog checks. 2025-10-02 12:56:04 -04:00
jeffrey-signal
2c8144b32f Add more compose preview annotations. 2025-10-02 12:56:04 -04:00
Alex Hart
87535a917a Fully check result code when processing purchase results. 2025-10-02 12:56:04 -04:00
Alex Hart
76448f5426 Apply missing callback for entering remote backups settings fragment. 2025-10-02 12:56:04 -04:00
Alex Hart
019df97a22 Add proper gesture when user navigates to or from a conversation. 2025-10-02 12:56:04 -04:00
Cody Henthorne
51897bb74f Fix outgoing disappearing message export oddity check. 2025-10-02 12:56:04 -04:00
jeffrey-signal
5f3b4056e9 Fix incorrect nav bar colors on registration screens for Android 8.1 and newer. 2025-10-02 12:56:04 -04:00
Jeffrey Starke
73a3c21716 Media review - Fix alignment of recipient name and arrow. 2025-10-02 12:56:04 -04:00
jeffrey-signal
a37209d8ba Prevent infinite archive attachment reconciliation attempts after server storage quota disagreement. 2025-10-02 12:56:04 -04:00
andrew-signal
415021eedf Bump to libsignal v0.82.0 2025-10-02 12:56:04 -04:00
Alex Hart
ea6d512cc8 Do not reroute to main activity if launching in a bubble. 2025-10-02 12:56:04 -04:00
Alex Hart
fba6673907 Eliminate dependency material icons core. 2025-10-02 12:56:04 -04:00
jeffrey-signal
faba4682ed Fix indeterminate progress dialog animation. 2025-10-02 12:56:04 -04:00
Jeffrey Starke
71b92f03bc Fix DonationsService ServiceResponse to use exception body instead of message. 2025-10-02 12:56:04 -04:00
Alex Hart
d4a1cb0bfb Upgrade compose to latest stable. 2025-10-02 12:56:04 -04:00
Alex Hart
e16ca2b2d2 Several navhost behavioural updates to ensure the right pane is displayed at the right time. 2025-10-02 12:56:04 -04:00
Michelle Tang
77e678e05c Bump version to 7.58.2 2025-10-02 12:53:42 -04:00
Michelle Tang
efe0e3b816 Update translations and other static files. 2025-10-02 12:49:37 -04:00
andrew-signal
6c497e131a Remove android.libsignalWebSocketEnabled flag and always use LibSignalChatConnection. 2025-09-30 19:22:47 -04:00
Michelle Tang
ccb8c1b1b9 Bump version to 7.58.1 2025-09-29 16:18:06 -04:00
Michelle Tang
4aa965144d Update translations and other static files. 2025-09-29 16:09:49 -04:00
Cody Henthorne
786bcc3da7 Fix header case bugs in status code errors. 2025-09-26 12:54:18 -04:00
Cody Henthorne
4447b29e6c Fix upload to archive running while not on wifi. 2025-09-25 13:27:07 -04:00
Jeffrey Starke
3ebbb94a1a Bump version to 7.58.0 2025-09-24 16:39:40 -04:00
Jeffrey Starke
64a7cdafa8 Update translations and other static files. 2025-09-24 16:37:04 -04:00
Cody Henthorne
c3350c0bb0 Clear credentials in pre-restore state. 2025-09-24 16:29:57 -04:00
Cody Henthorne
e2be1e0c79 Prevent IMO from running before registration. 2025-09-24 16:29:57 -04:00
Alex Hart
228a993237 Ignore PNI messages for everything except server delivery receipts. 2025-09-24 16:29:57 -04:00
Alex Hart
04923487c4 Ignore mismatch state if FREE tier user has GPB sub.
Co-authored-by: jeffrey-signal <jeffrey@signal.org>
2025-09-24 16:29:57 -04:00
Alex Hart
9777aa411c Remove transitions from base NavHost. 2025-09-24 16:29:57 -04:00
Alex Hart
d0c1e93b3c Do not display a price if it's been zeroed. 2025-09-24 16:29:57 -04:00
Alex Hart
9b517a14cb Remove separate controllers and consolidate logic. 2025-09-24 16:29:57 -04:00
Alex Hart
369085e162 Add new log sections to backups. 2025-09-24 16:29:57 -04:00
Alex Hart
93815a0504 Add checks to skip check job if we have a pending or pre-pending transaction. 2025-09-24 16:29:57 -04:00
Alex Hart
b88097a6ae Utilize keepLonger throughout BillingApiImpl. 2025-09-24 16:29:57 -04:00
Alex Hart
120cc9c521 Fix padding on button when we have a current tier. 2025-09-24 16:29:57 -04:00
Cody Henthorne
58304a0fb6 Fix RTL ByteSize rendering. 2025-09-24 16:29:57 -04:00
Cody Henthorne
6e867d678c Fix de related crash and bug. 2025-09-24 16:29:57 -04:00
Cody Henthorne
8b2f58e0e7 Remove hard coded message backups remote config. 2025-09-24 16:29:57 -04:00
Cody Henthorne
6976ac7d44 Move v3 classes to base registration package. 2025-09-24 16:29:57 -04:00
Cody Henthorne
8dc2077ad0 Remove regv2. 2025-09-24 16:29:57 -04:00
jeffrey-signal
52fa86046b Fix backups UI scaling issues. 2025-09-24 16:29:57 -04:00
Alex Hart
3352ebaa06 Move large screen check to wrapper. 2025-09-24 16:29:57 -04:00
Cody Henthorne
cbfdc4b57a Improve free tier UX around media. 2025-09-24 16:29:57 -04:00
Greyson Parrelli
c5753b96ff Update BackupMediaSnapshot to be based on attachments in backup frames. 2025-09-24 16:29:57 -04:00
Alex Hart
f39ad24cc1 Increase desired width increment to aleviate situations where certain text would still flow to multiple lines. 2025-09-24 16:29:57 -04:00
Greyson Parrelli
6b6877bae7 Update username link logo.
Resolves #14258
2025-09-24 16:29:57 -04:00
andrew-signal
930254da7b Bump to libsignal v0.81.1. 2025-09-24 16:29:56 -04:00
Alex Hart
3df2fa53e8 Don't exit multiselect mode when swapping screens. 2025-09-24 16:29:56 -04:00
Alex Hart
c901639ce8 Add lint detection for System.out.println add kotlin.io.println usage. 2025-09-24 16:29:56 -04:00
Alex Hart
9e1cec7a60 Fix anchor offset when search or action mode is entered. 2025-09-24 16:29:56 -04:00
Alex Hart
9269c66d1e Add remote config support for large screen UI. 2025-09-24 16:29:56 -04:00
Alex Hart
fd999be41a Add new navigation and pane support. 2025-09-24 16:29:56 -04:00
Alex Hart
146a5f5701 Remove ParcelableGroupId. 2025-09-23 20:21:30 -04:00
Alex Hart
d49ef1dd7d Convert RecipientId to Kotlin. 2025-09-23 20:21:30 -04:00
Greyson Parrelli
49c5fead39 Catch ZK validation error in profile fetch. 2025-09-23 20:21:30 -04:00
Greyson Parrelli
9c705f3a45 Remove unnecessary SMS entrypoint.
Fixes #14213
2025-09-23 20:21:30 -04:00
Alex Hart
bea204ab82 Convert GroupId to Kotlin. 2025-09-23 20:21:29 -04:00
Jeffrey Starke
9350438866 Bump version to 7.57.2 2025-09-23 20:00:39 -04:00
Jeffrey Starke
4d827adc8b Update translations and other static files. 2025-09-23 19:50:47 -04:00
Cody Henthorne
9f839b75fb Improve restore error messaging and actual available restore method options. 2025-09-23 14:32:11 -04:00
Alex Hart
c0482e8247 Ensure api availability is properly loaded in checkout flow. 2025-09-23 15:12:37 -03:00
Greyson Parrelli
17f27f45fc Bump version to 7.57.1 2025-09-18 10:36:19 -04:00
Greyson Parrelli
2401e33222 Update translations and other static files. 2025-09-18 10:35:53 -04:00
Greyson Parrelli
4345179a1d Fix replying to non-media. 2025-09-18 10:10:56 -04:00
3327 changed files with 95632 additions and 26748 deletions

View File

@@ -28,7 +28,7 @@ jobs:
cache: gradle
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3
uses: gradle/actions/wrapper-validation@v5
- name: Build with Gradle
run: ./gradlew qa

View File

@@ -32,7 +32,7 @@ jobs:
run: echo "y" | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;${{ env.NDK_VERSION }}"
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/actions/wrapper-validation@v5
- name: Cache base apk
id: cache-base

1
.gitignore vendored
View File

@@ -32,3 +32,4 @@ maps.key
/local/
kls_database.db
.kotlin
lefthook-local.yml

View File

@@ -1 +1,2 @@
java openjdk-17.0.2
uv latest

View File

@@ -62,7 +62,7 @@ You will need to [sign our CLA](https://signal.org/cla/) before your pull reques
### Follow the Code Style Guidelines
Ensure that your code adheres to the [Code Style Guidelines](https://github.com/signalapp/Signal-Android/wiki/Code-Style-Guidelines) before submitting a pull request.
You can run `./gradlew format` to automatically check conformance with some of these guidelines.
You can run `./gradlew format` to automatically format your code. See `lefthook.yml` for instructions on how to run this as a git hook.
### Submit finished and well-tested pull requests
Please do not submit pull requests that are still a work in progress. Pull requests should be thoroughly tested and ready to merge before they are submitted.

View File

@@ -1,14 +1,18 @@
# Signal Android
Signal is a simple, powerful, and secure messenger.
Signal is a simple, powerful, and secure messenger that uses your phone's data connection (WiFi/3G/4G/5G) to communicate securely.
Signal uses your phone's data connection (WiFi/3G/4G/5G) to communicate securely. Millions of people use Signal every day for free and instantaneous communication anywhere in the world. Send and receive high-fidelity messages, participate in HD voice/video calls, and explore a growing set of new features that help you stay connected. Signals advanced privacy-preserving technology is always enabled, so you can focus on sharing the moments that matter with the people who matter to you.
Millions of people use Signal every day for free and instantaneous communication anywhere in the world. Send and receive high-fidelity messages, participate in HD voice/video calls, and explore a growing set of new features that help you stay connected.
Currently available on the Play Store and [signal.org](https://signal.org/android/apk/).
Signals advanced privacy-preserving technology is always enabled, so you can focus on sharing the moments that matter with the people who matter to you.
Currently available on the [Play Store](https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms) and [signal.org](https://signal.org/android/apk/).
<a href='https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height='80px'/></a>
## Contributing Bug reports
Also available on [iOS](https://github.com/signalapp/signal-ios) and [Desktop](https://github.com/signalapp/signal-desktop).
## Contributing Bug Reports
We use GitHub for bug tracking. Please search the existing issues for your bug and create a new one if the issue is not yet tracked!
https://github.com/signalapp/Signal-Android/issues
@@ -21,6 +25,11 @@ https://play.google.com/apps/testing/org.thoughtcrime.securesms
If you're interested in a life of peace and tranquility, stick with the standard releases.
## Contributing Translations
Interested in helping translate Signal? Contribute here:
https://community.signalusers.org/c/translation-feedback/
## Contributing Code
If you're new to the Signal codebase, we recommend going through our issues and picking out a simple bug to fix in order to get yourself familiar. Also please have a look at the [CONTRIBUTING.md](https://github.com/signalapp/Signal-Android/blob/main/CONTRIBUTING.md), that might answer some of your questions.

View File

@@ -1,10 +1,17 @@
@file:Suppress("UnstableApiUsage")
import com.android.build.api.dsl.ManagedVirtualDevice
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.ValueSource
import org.gradle.api.provider.ValueSourceParameters
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import java.io.FileInputStream
import java.text.SimpleDateFormat
import java.util.Date
import java.io.File
import java.util.Properties
plugins {
@@ -22,12 +29,25 @@ plugins {
apply(from = "static-ips.gradle.kts")
val canonicalVersionCode = 1589
val canonicalVersionName = "7.57.0"
val canonicalVersionCode = 1636
val canonicalVersionName = "7.69.2"
val currentHotfixVersion = 0
val maxHotfixVersions = 100
val keystores: Map<String, Properties?> = mapOf("debug" to loadKeystoreProperties("keystore.debug.properties"))
// We don't want versions to ever end in 0 so that they don't conflict with nightly versions
val possibleHotfixVersions = (0 until maxHotfixVersions).toList().filter { it % 10 != 0 }
val debugKeystorePropertiesProvider = providers.of(PropertiesFileValueSource::class.java) {
parameters.file.set(rootProject.layout.projectDirectory.file("keystore.debug.properties"))
}
val languagesProvider = providers.of(LanguageListValueSource::class.java) {
parameters.resDir.set(layout.projectDirectory.dir("src/main/res"))
}
val languagesForBuildConfigProvider = languagesProvider.map { languages ->
languages.joinToString(separator = ", ") { language -> "\"$language\"" }
}
val selectableVariants = listOf(
"nightlyBackupRelease",
@@ -53,14 +73,6 @@ val selectableVariants = listOf(
"websiteProdRelease"
)
val signalBuildToolsVersion: String by rootProject.extra
val signalCompileSdkVersion: String by rootProject.extra
val signalTargetSdkVersion: Int by rootProject.extra
val signalMinSdkVersion: Int by rootProject.extra
val signalNdkVersion: String by rootProject.extra
val signalJavaVersion: JavaVersion by rootProject.extra
val signalKotlinJvmTarget: String by rootProject.extra
wire {
kotlin {
javaInterop = true
@@ -71,22 +83,22 @@ wire {
}
protoPath {
srcDir("${project.rootDir}/libsignal-service/src/main/protowire")
srcDir("${project.rootDir}/lib/libsignal-service/src/main/protowire")
}
// Handled by libsignal
prune("signalservice.DecryptionErrorMessage")
}
ktlint {
version.set("1.2.1")
version.set("1.5.0")
}
android {
namespace = "org.thoughtcrime.securesms"
buildToolsVersion = signalBuildToolsVersion
compileSdkVersion = signalCompileSdkVersion
ndkVersion = signalNdkVersion
buildToolsVersion = libs.versions.buildTools.get()
compileSdkVersion = libs.versions.compileSdk.get()
ndkVersion = libs.versions.ndk.get()
flavorDimensions += listOf("distribution", "environment")
testBuildType = "instrumentation"
@@ -94,12 +106,12 @@ android {
android.bundle.language.enableSplit = false
kotlinOptions {
jvmTarget = signalKotlinJvmTarget
jvmTarget = libs.versions.kotlinJvmTarget.get()
freeCompilerArgs = listOf("-Xjvm-default=all")
suppressWarnings = true
}
keystores["debug"]?.let { properties ->
debugKeystorePropertiesProvider.orNull?.let { properties ->
signingConfigs.getByName("debug").apply {
storeFile = file("${project.rootDir}/${properties.getProperty("storeFile")}")
storePassword = properties.getProperty("storePassword")
@@ -139,8 +151,8 @@ android {
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = signalJavaVersion
targetCompatibility = signalJavaVersion
sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
}
packaging {
@@ -178,11 +190,14 @@ android {
}
defaultConfig {
versionCode = (canonicalVersionCode * maxHotfixVersions) + currentHotfixVersion
if (currentHotfixVersion >= maxHotfixVersions) {
throw AssertionError("Hotfix version offset is too large!")
}
versionCode = (canonicalVersionCode * maxHotfixVersions) + possibleHotfixVersions[currentHotfixVersion]
versionName = canonicalVersionName
minSdk = signalMinSdkVersion
targetSdk = signalTargetSdkVersion
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.targetSdk.get().toInt()
vectorDrawables.useSupportLibrary = true
project.ext.set("archivesBaseName", "Signal")
@@ -215,14 +230,13 @@ android {
buildConfigField("String[]", "SIGNAL_CDSI_IPS", rootProject.extra["cdsi_ips"] as String)
buildConfigField("String[]", "SIGNAL_SVR2_IPS", rootProject.extra["svr2_ips"] as String)
buildConfigField("String", "SIGNAL_AGENT", "\"OWA\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"093be9ea32405e85ae28dbb48eb668aebeb7dbe29517b9b86ad4bec4dfe0e6a6\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{ \"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\", \"BUkY0I+9+oPgDCn4+Ac6Iu813yvqkDr/ga8DzLxFxuk6\"}")
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X36nOoGPs54XsEGzPdEV+itQNGUFEjY6X9Uv+Acuks7NpyGvCoKxGwgKgE5XyJ+nNKlyHHOLb6N1NuHyBrZrgtY/JYJHRooo5CEqYKBqdFnmbTVGEkCvJKxLnjwKWf+fEPoWeQFj5ObDjcKMZf2Jm2Ae69x+ikU5gBXsRmoF94GXTLfN0/vLt98KDPnxwAQL9j5V1jGOY8jQl6MLxEs56cwXN0dqCnImzVH3TZT1cJ8SW1BRX6qIVxEzjsSGx3yxF3suAilPMqGRp4ffyopjMD1JXiKR2RwLKzizUe5e8XyGOy9fplzhw3jVzTRyUZTRSZKkMLWcQ/gv0E4aONNqs4P+NameAZYOD12qRkxosQQP5uux6B2nRyZ7sAV54DgFyLiRcq1FvwKw2EPQdk4HDoePrO/RNUbyNddnM/mMgj4FW65xCoT1LmjrIjsv/Ggdlx46ueczhMgtBunx1/w8k8V+l8LVZ8gAT6wkU5J+DPQalQguMg12Jzug3q4TbdHiGCmD9EunCwOmsLuLJkz6EcSYXtrlDEnAM+hicw7iergYLLlMXpfTdGxJCWJmP4zqUFeTTmsmhsjGBt7NiEB/9pFFEB3pSbf4iiUukw63Eo8Aqnf4iwob6X1QviCWuc8t0LUlT9vALgh/f2DPVOOmR0RW6bgRvc7DSF20V/omg+YBw==\"")
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN\"")
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AJwNSU55fsFCbgaxGRD11wO1juAs8Yr5GF8FPlGzzvdJJIKH5/4CC7ZJSOe3yL2vturVaRU2Cx0n751Vt8wkj1bozK3CBV1UokxV09GWf+hdVImLGjXGYLLhnI1J2TWEe7iWHyb553EEnRb5oxr9n3lUbNAJuRmFM7hrr0Al0F0wrDD4S8lo2mGaXe0MJCOM166F8oYRQqpFeEHfiLnxA1O8ZLh7vMdv4g9jI5phpRBTsJ5IjiJrWeP0zdIGHEssUeprDZ9OUJ14m0v61eYJMKsf59Bn+mAT2a7YfB+Don9O\"")
buildConfigField("String[]", "LANGUAGES", "new String[]{ ${languageList().map { "\"$it\"" }.joinToString(separator = ", ")} }")
buildConfigField("String[]", "LANGUAGES", "new String[]{ ${languagesForBuildConfigProvider.get()} }")
buildConfigField("int", "CANONICAL_VERSION_CODE", "$canonicalVersionCode")
buildConfigField("String", "DEFAULT_CURRENCIES", "\"EUR,AUD,GBP,CAD,CNY\"")
buildConfigField("String", "GIPHY_API_KEY", "\"3o6ZsYH6U6Eri53TXy\"")
@@ -238,8 +252,8 @@ android {
buildConfigField("String", "STRIPE_BASE_URL", "\"https://api.stripe.com/v1\"")
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_live_6cmGZopuTsV8novGgJJW9JpC00vLIgtQ1D\"")
buildConfigField("boolean", "TRACING_ENABLED", "false")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "false")
buildConfigField("boolean", "USE_STRING_ID", "true")
ndk {
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
@@ -261,7 +275,7 @@ android {
buildTypes {
getByName("debug") {
if (keystores["debug"] != null) {
if (debugKeystorePropertiesProvider.orNull != null) {
signingConfig = signingConfigs["debug"]
}
isDefault = true
@@ -294,6 +308,7 @@ android {
manifestPlaceholders["mapsKey"] = getMapsKey()
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Debug\"")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
getByName("release") {
@@ -319,7 +334,6 @@ android {
isMinifyEnabled = false
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Spinner\"")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
create("perf") {
@@ -368,18 +382,12 @@ android {
}
create("nightly") {
val apkUpdateManifestUrl = if (file("${project.rootDir}/nightly-url.txt").exists()) {
file("${project.rootDir}/nightly-url.txt").readText().trim()
} else {
"<unset>"
}
dimension = "distribution"
versionNameSuffix = "-nightly-untagged-${getDateSuffix()}"
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "\"${apkUpdateManifestUrl}\"")
versionNameSuffix = "-nightly-untagged-${getGitHash()}"
buildConfigField("boolean", "MANAGES_APP_UPDATES", "false")
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "null")
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"nightly\"")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
create("prod") {
@@ -403,7 +411,6 @@ android {
buildConfigField("String", "SIGNAL_CDN3_URL", "\"https://cdn3-staging.signal.org\"")
buildConfigField("String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"")
buildConfigField("String", "SIGNAL_SVR2_URL", "\"https://svr2.staging.signal.org\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"2e8cefe6e3f389d8426adb24e9b7fb7adf10902c96f06f7bbcee36277711ed91\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\", \"BYhU6tPjqP46KGZEzRs1OL4U39V5dlPJ/X09ha4rErkm\"}")
@@ -415,10 +422,10 @@ android {
buildConfigField("String", "RECAPTCHA_PROOF_URL", "\"https://signalcaptchas.org/staging/challenge/generate.html\"")
buildConfigField("org.signal.libsignal.net.Network.Environment", "LIBSIGNAL_NET_ENV", "org.signal.libsignal.net.Network.Environment.STAGING")
buildConfigField("int", "LIBSIGNAL_LOG_LEVEL", "org.signal.libsignal.protocol.logging.SignalProtocolLogger.DEBUG")
buildConfigField("boolean", "USE_STRING_ID", "false")
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Staging\"")
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_test_sngOd8FnXNkpce9nPXawKrJD00kIDngZkD\"")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
}
create("backup") {
@@ -430,7 +437,6 @@ android {
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Backup\"")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
}
}
@@ -443,40 +449,40 @@ android {
disable += "LintError"
}
applicationVariants.all {
outputs
.map { it as com.android.build.gradle.internal.api.ApkVariantOutputImpl }
.forEach { output ->
if (output.baseName.contains("nightly")) {
var tag = getCurrentGitTag()
if (!tag.isNullOrEmpty()) {
if (tag.startsWith("v")) {
tag = tag.substring(1)
}
output.versionNameOverride = tag
output.outputFileName = output.outputFileName.replace(".apk", "-${output.versionNameOverride}.apk")
} else {
output.outputFileName = output.outputFileName.replace(".apk", "-$versionName.apk")
}
} else {
output.outputFileName = output.outputFileName.replace(".apk", "-$versionName.apk")
if (currentHotfixVersion >= maxHotfixVersions) {
throw AssertionError("Hotfix version is too large!")
}
}
}
}
androidComponents {
beforeVariants { variant ->
variant.enable = variant.name in selectableVariants
}
onVariants { variant ->
onVariants(selector().all()) { variant: com.android.build.api.variant.ApplicationVariant ->
// Include the test-only library on debug builds.
if (variant.buildType != "instrumentation") {
variant.packaging.jniLibs.excludes.add("**/libsignal_jni_testing.so")
}
// Starting with minSdk 23, Android leaves native libraries uncompressed, which is fine for the Play Store, but not for our self-distributed APKs.
// This reverts it to the legacy behavior, compressing the native libraries, and drastically reducing the APK file size.
if (variant.name.contains("website", ignoreCase = true)) {
variant.packaging.jniLibs.useLegacyPackaging.set(true)
}
// Version overrides
if (variant.name.contains("nightly", ignoreCase = true)) {
var tag = getNightlyTagForCurrentCommit()
if (!tag.isNullOrEmpty()) {
if (tag.startsWith("v")) {
tag = tag.substring(1)
}
// We add a multiple of maxHotfixVersions to nightlies to ensure we're always at least that many versions ahead
val nightlyBuffer = (5 * maxHotfixVersions)
val nightlyVersionCode = (canonicalVersionCode * maxHotfixVersions) + (getNightlyBuildNumber(tag) * 10) + nightlyBuffer
variant.outputs.forEach { output ->
output.versionName.set(tag)
output.versionCode.set(nightlyVersionCode)
}
}
}
}
}
@@ -496,23 +502,23 @@ dependencies {
ktlintRuleset(libs.ktlint.twitter.compose)
coreLibraryDesugaring(libs.android.tools.desugar)
implementation(project(":libsignal-service"))
implementation(project(":paging"))
implementation(project(":core-util"))
implementation(project(":glide-config"))
implementation(project(":video"))
implementation(project(":device-transfer"))
implementation(project(":image-editor"))
implementation(project(":donations"))
implementation(project(":debuglogs-viewer"))
implementation(project(":contacts"))
implementation(project(":qr"))
implementation(project(":sticky-header-grid"))
implementation(project(":photoview"))
implementation(project(":core-ui"))
implementation(project(":lib:libsignal-service"))
implementation(project(":lib:paging"))
implementation(project(":core:util"))
implementation(project(":lib:glide-config"))
implementation(project(":lib:video"))
implementation(project(":lib:device-transfer"))
implementation(project(":lib:image-editor"))
implementation(project(":lib:donations"))
implementation(project(":lib:debuglogs-viewer"))
implementation(project(":lib:contacts"))
implementation(project(":lib:qr"))
implementation(project(":lib:sticky-header-grid"))
implementation(project(":lib:photoview"))
implementation(project(":core:ui"))
implementation(project(":core:models"))
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.fragment.compose)
implementation(libs.androidx.appcompat) {
version {
strictly("1.6.1")
@@ -610,9 +616,9 @@ dependencies {
implementation(libs.androidx.credentials.compat)
implementation(libs.kotlinx.serialization.json)
implementation(project(":billing"))
implementation(project(":lib:billing"))
"spinnerImplementation"(project(":spinner"))
"spinnerImplementation"(project(":lib:spinner"))
"canaryImplementation"(libs.square.leakcanary)
@@ -638,7 +644,7 @@ dependencies {
}
testImplementation(testLibs.conscrypt.openjdk.uber)
testImplementation(testLibs.mockk)
testImplementation(testFixtures(project(":libsignal-service")))
testImplementation(testFixtures(project(":lib:libsignal-service")))
testImplementation(testLibs.espresso.core)
testImplementation(testLibs.kotlinx.coroutines.test)
testImplementation(libs.androidx.compose.ui.test.junit4)
@@ -654,49 +660,11 @@ dependencies {
androidTestImplementation(testLibs.androidx.test.ext.junit.ktx)
androidTestImplementation(testLibs.assertk)
androidTestImplementation(testLibs.mockk.android)
androidTestImplementation(testLibs.square.okhttp.mockserver)
androidTestImplementation(testLibs.diff.utils)
androidTestUtil(testLibs.androidx.test.orchestrator)
}
fun assertIsGitRepo() {
if (!file("${project.rootDir}/.git").exists()) {
throw IllegalStateException("Must be a git repository to guarantee reproducible builds! (git hash is part of APK)")
}
}
fun getLastCommitTimestamp(): String {
assertIsGitRepo()
return providers.exec {
commandLine("git", "log", "-1", "--pretty=format:%ct")
}.standardOutput.asText.get() + "000"
}
fun getGitHash(): String {
assertIsGitRepo()
return providers.exec {
commandLine("git", "rev-parse", "HEAD")
}.standardOutput.asText.get().trim().substring(0, 12)
}
fun getCurrentGitTag(): String? {
assertIsGitRepo()
val output = providers.exec {
commandLine("git", "tag", "--points-at", "HEAD")
}.standardOutput.asText.get().trim()
return if (output.isNotEmpty()) {
val tags = output.split("\n").toList()
tags.firstOrNull { it.contains("nightly") } ?: tags[0]
} else {
null
}
}
tasks.withType<Test>().configureEach {
testLogging {
events("failed")
@@ -707,53 +675,94 @@ tasks.withType<Test>().configureEach {
}
}
gradle.taskGraph.whenReady {
if (gradle.startParameter.taskNames.any { it.contains("nightly", ignoreCase = true) }) {
if (!file("${project.rootDir}/nightly-url.txt").exists()) {
throw GradleException("Missing required file: nightly-url.txt")
}
}
fun getLastCommitTimestamp(): String {
return providers.exec {
commandLine("git", "log", "-1", "--pretty=format:%ct")
}.standardOutput.asText.get() + "000"
}
fun loadKeystoreProperties(filename: String): Properties? {
val keystorePropertiesFile = file("${project.rootDir}/$filename")
fun getGitHash(): String {
return providers.exec {
commandLine("git", "rev-parse", "HEAD")
}.standardOutput.asText.get().trim().substring(0, 12)
}
return if (keystorePropertiesFile.exists()) {
val keystoreProperties = Properties()
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
keystoreProperties
fun getNightlyTagForCurrentCommit(): String? {
val output = providers.exec {
commandLine("git", "tag", "--points-at", "HEAD")
}.standardOutput.asText.get().trim()
return if (output.isNotEmpty()) {
val tags = output.split("\n").toList()
tags.firstOrNull { it.contains("nightly") } ?: tags[0]
} else {
null
}
}
fun getDateSuffix(): String {
return SimpleDateFormat("yyyy-MM-dd-HH:mm").format(Date())
fun getNightlyBuildNumber(tag: String?): Int {
if (tag == null) {
return 0
}
val match = Regex("-(\\d{3})$").find(tag)
return match?.groupValues?.get(1)?.toIntOrNull() ?: 0
}
fun getMapsKey(): String {
val mapKey = file("${project.rootDir}/maps.key")
return providers
.gradleProperty("mapsKey")
.orElse(providers.environmentVariable("MAPS_KEY"))
.orElse("AIzaSyCSx9xea86GwDKGznCAULE9Y5a8b-TfN9U")
.get()
}
return if (mapKey.exists()) {
mapKey.readLines()[0]
} else {
"AIzaSyCSx9xea86GwDKGznCAULE9Y5a8b-TfN9U"
abstract class LanguageListValueSource : ValueSource<List<String>, LanguageListValueSource.Params> {
interface Params : ValueSourceParameters {
@get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE)
val resDir: DirectoryProperty
}
override fun obtain(): List<String> {
// In API 35, language codes for Hebrew and Indonesian now use the ISO 639-1 code ("he" and "id").
// However, the value resources still only support the outdated code ("iw" and "in") so we have
// to manually indicate that we support these languages.
val updatedLanguageCodes = listOf("he", "id")
val resRoot = parameters.resDir.asFile.get()
val languages = resRoot
.walkTopDown()
.filter { it.isFile && it.name == "strings.xml" }
.mapNotNull { stringFile -> stringFile.parentFile?.name }
.map { valuesFolderName -> valuesFolderName.removePrefix("values-") }
.filter { valuesFolderName -> valuesFolderName != "values" }
.map { languageCode -> languageCode.replace("-r", "_") }
.toList()
.distinct()
.sorted()
return languages + updatedLanguageCodes + "en"
}
}
fun Project.languageList(): List<String> {
// In API 35, language codes for Hebrew and Indonesian now use the ISO 639-1 code ("he" and "id").
// However, the value resources still only support the outdated code ("iw" and "in") so we have
// to manually indicate that we support these languages.
val updatedLanguageCodes = listOf("he", "id")
abstract class PropertiesFileValueSource : ValueSource<Properties?, PropertiesFileValueSource.Params> {
interface Params : ValueSourceParameters {
@get:InputFile
@get:Optional
@get:PathSensitive(PathSensitivity.RELATIVE)
val file: RegularFileProperty
}
return fileTree("src/main/res") { include("**/strings.xml") }
.map { stringFile -> stringFile.parentFile.name }
.map { valuesFolderName -> valuesFolderName.replace("values-", "") }
.filter { valuesFolderName -> valuesFolderName != "values" }
.map { languageCode -> languageCode.replace("-r", "_") }
.distinct()
.sorted() + updatedLanguageCodes + "en"
override fun obtain(): Properties? {
val f: File = parameters.file.asFile.get()
if (!f.exists()) return null
return Properties().apply {
f.inputStream().use { load(it) }
}
}
}
fun String.capitalize(): String {

Some files were not shown because too many files have changed in this diff Show More