Compare commits

...

1905 Commits

Author SHA1 Message Date
jeffrey-signal
bc6114f6e0 Bump version to 7.73.1 2026-02-06 19:10:12 -05:00
jeffrey-signal
21d91bb2cf Update translations and other static files. 2026-02-06 19:06:27 -05:00
Greyson Parrelli
bda9664cb9 Check audio permission before enabling audio in video recording. 2026-02-06 16:11:09 -05:00
Greyson Parrelli
9c055a35a9 Increase flash toggle button hitbox in new camera. 2026-02-06 15:59:18 -05:00
Greyson Parrelli
bf794c41da Maximize screen brightness during selfie flash in new camera. 2026-02-06 15:59:18 -05:00
Greyson Parrelli
de698c8a1a Enable torch during video recording in new camera. 2026-02-06 15:59:17 -05:00
Greyson Parrelli
f972382f5e Fix tap-to-focus using wrong coordinate space in new camera.
We were using raw coordinates. Now we transform them appropriately
to the correct coordinate space.
2026-02-06 15:35:47 -05:00
Greyson Parrelli
73b0331884 Fix video recording zoom starting at ultrawide instead of 1x. 2026-02-06 15:29:36 -05:00
Greyson Parrelli
2248abb749 Persist camera lens selection across sessions. 2026-02-06 15:18:50 -05:00
Greyson Parrelli
13435c0b54 Add double-tap gesture on viewfinder to switch cameras. 2026-02-06 15:17:08 -05:00
Greyson Parrelli
5575f75118 Block camera switching during video recording. 2026-02-06 15:17:04 -05:00
jeffrey-signal
4ce3c2309c Bump version to 7.73.0 2026-02-04 15:07:07 -05:00
jeffrey-signal
cd7ee1a042 Update translations and other static files. 2026-02-04 15:07:01 -05:00
Greyson Parrelli
cd087113e3 Ensure that notification heuristics are calculated in the background. 2026-02-04 12:28:01 -05:00
Alex Hart
36b6122b0f Move several Permissions dependencies to core. 2026-02-04 13:17:29 -04:00
Alex Hart
a74651d915 Move text styles to core UI. 2026-02-04 13:13:49 -04:00
Alex Hart
c274805eb0 Utilze localized description for calculating badge line count. 2026-02-04 11:39:01 -04:00
Jim Gustafson
d86d88f313 Update to RingRTC v2.64.1 2026-02-03 16:41:36 -05:00
Cody Henthorne
265e875a78 Fix baseline profile generation and update it. 2026-02-03 16:40:30 -05:00
Cody Henthorne
8353ad4962 Improve performance of first send to large group. 2026-02-03 15:26:27 -05:00
Alex Hart
9369cafd38 Update translations to support multiple modules. 2026-02-03 16:15:52 -04:00
Michelle Tang
989cda6662 Add internal setting to run KT. 2026-02-03 15:14:38 -05:00
Michelle Tang
0570aaeb6e Add more checks when doing KT. 2026-02-03 12:55:37 -05:00
Alex Hart
5a19117850 Move lru and bottomsheet util to core modules. 2026-02-03 13:23:43 -04:00
jeffrey-signal
ff726ec4d2 Don't send group update messages when member labels are changed. 2026-02-03 12:20:33 -05:00
Alex Hart
0cd93986bd Add media send feature module. 2026-02-03 11:25:57 -04:00
andrew-signal
bc7ba5f2c6 Bump to libsignal v0.87.0 2026-02-03 09:57:32 -05:00
Michelle Tang
1ddde6ab92 Enable key transparency for internal users. 2026-02-02 17:46:19 -05:00
Greyson Parrelli
e9f2580bb8 Rotate the cameraXModelBlocklist.
We think the new camera could solve all or most of our issues, so let's
start fresh.
2026-02-02 15:37:22 -05:00
Michelle Tang
b9dc2d3969 Add animations to key transparency. 2026-02-02 15:00:07 -05:00
Michelle Tang
7e27203bd8 Add KT to backups. 2026-02-02 14:55:32 -05:00
Alex Hart
5a582c12d8 Remove unused dependency in Util. 2026-02-02 15:22:39 -04:00
Michelle Tang
cd925d5f53 Self-check key transparency. 2026-02-02 14:12:16 -05:00
Alex Hart
853a37920c Cycle view focus if keyboard fails to open. 2026-02-02 12:59:40 -04:00
Alex Hart
2aa0b3700f Move blurhash to its own module. 2026-02-02 12:17:16 -04:00
BarbossHack
35190ebb63 Fix type comparison in reproducible script.
Resolves #14571
2026-02-02 10:19:44 -05:00
BarbossHack
d74350b708 Do not stop reproducible comparison at the first mismatch.
Resolves #14570
2026-02-02 10:14:20 -05:00
BarbossHack
bd3e4f9f87 Fix memory usage in reproducible-build GitHub workflow.
Resolves #14574
2026-02-02 10:10:04 -05:00
BarbossHack
7370756344 Fix type and type annotations issues in reproducible script.
Resolves #14573
2026-02-02 10:06:27 -05:00
Greyson Parrelli
7894377d1d Add a github distribution variant. 2026-02-02 09:56:01 -05:00
Greyson Parrelli
6416df241f Add basic re-reg support to regV5. 2026-01-31 22:21:41 -05:00
Alex Hart
85408f2b12 Convert PartUriParser into Kotlin. 2026-01-31 22:21:41 -05:00
Alex Hart
b698daa4cf Convert SentMediaQuality to kotlin. 2026-01-31 22:21:41 -05:00
Alex Hart
3a035a1b33 Fix crash when user local can't resolve to a currency in post-restore job. 2026-01-31 22:21:41 -05:00
Michelle Tang
a11888ff71 Allow opting out of key transparency. 2026-01-31 22:21:41 -05:00
Michelle Tang
423b8c942c Add key transparency backend support. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
26739491a5 Fix instrumentation test compilation. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
6bf39c5102 Fix attachment downloads stuck after call ending. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
daac3bd143 Attempt to remove an android datatransport service.
Relates to #14556
2026-01-31 22:21:41 -05:00
jeffrey-signal
028242826e Rename Groups.proto modifyMemberLabel field to modifyMemberLabels. 2026-01-31 22:21:41 -05:00
jeffrey-signal
99d9c670b6 Add group member label editing screen. 2026-01-31 22:21:41 -05:00
Alex Hart
bc592cc4e2 Fix broken exoplayer pool test. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
04707b00e7 Switch to using SurfaceView for ExoPlayer. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
d44abfaeac Update exoplayer version to 1.9.1 2026-01-31 22:21:41 -05:00
Alex Hart
6c30f3d573 Local backups upgrade UI. 2026-01-31 22:21:41 -05:00
Greyson Parrelli
2e70ed14dd Fix benchmark compilation error. 2026-01-31 22:21:41 -05:00
Alex Hart
7823d4f49f Move UriGlideRenderer to lib:image-editor. 2026-01-31 22:21:41 -05:00
Alex Hart
7bd3482367 Move the org.signal.glide code inside signal-android into lib/glide. 2026-01-31 22:21:40 -05:00
Jim Gustafson
709adf05aa Update to RingRTC v2.63.0
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-01-31 22:21:40 -05:00
andrew-signal
524736c5b2 Bump to libsignal v0.86.15 2026-01-31 22:21:40 -05:00
Greyson Parrelli
f53ae66fc9 Rebuild CameraXFragment to use a brand new camera. 2026-01-31 22:21:40 -05:00
Greyson Parrelli
0c102b061c Bump version to 7.72.2 2026-01-30 20:46:41 -05:00
Greyson Parrelli
ee198e47c8 Update translations and other static files. 2026-01-30 20:46:21 -05:00
Alex Hart
75c2931c8d Ensure placeables are only measured once in call elements screen. 2026-01-30 10:03:05 -04:00
Greyson Parrelli
2bb4edecd7 Bump version to 7.72.1 2026-01-29 19:49:29 -05:00
Greyson Parrelli
b79d9af7ae Update translations and other static files. 2026-01-29 19:44:21 -05:00
Greyson Parrelli
5c50372021 Move theme colors to core-ui. 2026-01-29 19:44:11 -05:00
Greyson Parrelli
d0d32c8f33 Limit gallery to most recent 5k items for now. 2026-01-29 16:44:32 -05:00
Greyson Parrelli
2aaaa1791e Fix issue where invalid videos get stuck in the send flow. 2026-01-29 11:09:17 -05:00
Greyson Parrelli
6ed63a67cd Bump version to 7.72.0 2026-01-28 16:28:45 -05:00
Greyson Parrelli
b858955243 Update translations and other static files. 2026-01-28 16:28:21 -05:00
Rémi Chauchadis
63a676b0ef Add Mi 9T Pro voice note sample rate special handling.
Fixes #14452
Resolves #14523
2026-01-28 16:17:12 -05:00
jeffrey-signal
155b59d71f Move clearable text field to core module. 2026-01-28 16:17:12 -05:00
Greyson Parrelli
d9dba89781 Use both envelope.type and ciphertextMessageType in the validator. 2026-01-28 16:17:12 -05:00
jeffrey-signal
0a572153f0 Add send and receive support for group member labels. 2026-01-28 16:17:12 -05:00
jeffrey-signal
ce46c44b5d Centralize common icons into SignalIcons. 2026-01-28 16:17:11 -05:00
Alex Hart
e6918b592e Move MediaFolder to core-model. 2026-01-28 16:17:11 -05:00
Michelle Tang
ddbbb4c21a Fix alarms being set for pinned messages. 2026-01-28 16:17:11 -05:00
Greyson Parrelli
d23290107b Fix document download UI not updating on first click. 2026-01-28 16:17:11 -05:00
Michelle Tang
69f4c89f84 Add key transparency UI. 2026-01-28 16:17:11 -05:00
Michelle Tang
279f9578cc Remove old safety number code. 2026-01-28 16:17:11 -05:00
Greyson Parrelli
af7989839f Do not include large P2P group changes. 2026-01-28 16:17:11 -05:00
Greyson Parrelli
01fb0c0eb6 Migrate to new SVR2 enclave. 2026-01-28 16:17:11 -05:00
Greyson Parrelli
dab47828c6 Add additional oversized message logging. 2026-01-28 16:17:11 -05:00
andrew-signal
c070743723 Bump libsignal to v0.86.14 2026-01-28 16:17:11 -05:00
Greyson Parrelli
9bbd9b56e7 Update a bunch of strings to include nonprofit labeling. 2026-01-28 09:58:55 -04:00
Alex Hart
311793ac33 Utilize fallback navbar height if the returned value is zero on Android10 and less. 2026-01-28 09:58:54 -04:00
Greyson Parrelli
986923ea6c Move GlideImage into the glide module. 2026-01-28 09:58:54 -04:00
Greyson Parrelli
2f6baf8743 Show upload progress for the first backup on the chat list. 2026-01-28 09:58:54 -04:00
jeffrey-signal
4c43bf2228 Replace categorical window size classes with breakpoint-based checks. 2026-01-28 09:58:54 -04:00
Greyson Parrelli
585bd5f24c Fix width of dropdown menu items and add preview. 2026-01-28 09:58:54 -04:00
Alex Hart
d420c0332b Bump version to 7.71.2 2026-01-23 18:13:59 -04:00
Alex Hart
e32df5d247 Update translations and other static files. 2026-01-23 16:41:53 -04:00
Alex Hart
19a8ec02cb Fix issue with screen guard while in ongoing call. 2026-01-23 14:36:32 -04:00
Alex Hart
798d4b90c3 Bump version to 7.71.1 2026-01-22 16:25:41 -04:00
Alex Hart
206f1f3775 Update translations and other static files. 2026-01-22 16:20:32 -04:00
Alex Hart
96273bb724 Disable call audio toggle while the switch is processing. 2026-01-22 16:11:59 -04:00
Michelle Tang
c0d9efc930 Improve scheduling of the expiration of pinned messages. 2026-01-22 14:38:53 -05:00
Michelle Tang
6722d9d15d Remove delivery indicator for pinned messages. 2026-01-22 13:40:02 -05:00
Alex Hart
52c2c58988 Adjust padding measurement to prevent text from touching footer. 2026-01-22 14:25:00 -04:00
Alex Hart
e3efc53b64 Squelch resize calls while in a resize loop. 2026-01-22 11:29:58 -04:00
Alex Hart
9a18f5ef6b Dismiss active context menu in on-destroy-view to prevent long-press crash. 2026-01-22 10:19:55 -04:00
Alex Hart
ce8d545d6f Bump version to 7.71.0 2026-01-21 16:39:21 -04:00
Alex Hart
f875a0c882 Update translations and other static files. 2026-01-21 16:31:05 -04:00
Jim Gustafson
4bbddf736c Add more AudioManager logging 2026-01-21 11:57:48 -08:00
Alex Hart
c1da17df48 Fix console crash with competing animations / layout. 2026-01-21 12:55:00 -04:00
Alex Hart
f6fa8166d2 Re-register if we lose registration in pip mode. 2026-01-21 12:42:29 -04:00
Alex Hart
20016adef1 Display self-pip above raise hands bar if it is present. 2026-01-21 12:38:49 -04:00
Greyson Parrelli
265bb29626 Include footerPinned in media message footer width calculation. 2026-01-21 11:21:49 -05:00
Alex Hart
d16be8c4d7 Fix issue where archival progress dialog never dismisses. 2026-01-21 12:19:15 -04:00
Michelle Tang
791a38a181 Rotate send pin config. 2026-01-21 10:31:40 -05:00
Greyson Parrelli
d1010eb886 Move internal backup details down further on the screen. 2026-01-20 14:44:42 -05:00
Alex Hart
471b214b4a Extract Media and TransformProperties to core/util/models. 2026-01-20 15:21:27 -04:00
benediktjohannes
f505d48d80 Update strings comment.
Resolves #14534
2026-01-20 15:04:02 -04:00
Greyson Parrelli
6d9a2d4787 Fix apk file names. 2026-01-20 15:04:02 -04:00
Greyson Parrelli
a36e2408f7 Add more internal logging around failed debuglogs uploads. 2026-01-20 15:04:02 -04:00
Greyson Parrelli
9012a2afc0 Prompt users to backup during quick restore. 2026-01-20 15:04:02 -04:00
Alex Hart
4921198cd8 Launch main activity directly from share. 2026-01-20 15:04:02 -04:00
Alex Hart
530b57644f Add displaySheet reset. 2026-01-20 15:04:01 -04:00
Alex Hart
921415632b Add log entry line for remote backup subscription source. 2026-01-20 15:04:01 -04:00
Greyson Parrelli
c723b2c6bf Fix issue where backfilled dupes may get different mediaIds. 2026-01-20 15:04:01 -04:00
Alex Hart
17d338f7af New system PiP treatment. 2026-01-20 15:04:01 -04:00
Greyson Parrelli
3d9e12e4c1 Update to libsignal v0.86.12 2026-01-20 15:04:01 -04:00
Jim Gustafson
4ca849c151 Update to RingRTC v2.62.0 2026-01-20 15:04:01 -04:00
Alex Hart
3e6145aed0 Bump version to 7.70.1 2026-01-20 15:02:44 -04:00
Alex Hart
c960f29e38 Update translations and other static files. 2026-01-20 14:52:10 -04:00
Alex Hart
c230eb179b Back camera mirror fix. 2026-01-20 13:44:41 -04:00
Alex Hart
05e77b1d33 Filter out participants without ServiceId when leaving group call.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-01-20 13:37:57 -04:00
Michelle Tang
a2bdea5df2 Fix missing windows dependency. 2026-01-15 13:58:36 -05:00
Michelle Tang
b2b2860a48 Bump version to 7.70.0 2026-01-14 15:49:42 -05:00
Michelle Tang
f71c1d0c5d Update translations and other static files. 2026-01-14 15:41:40 -05:00
Greyson Parrelli
43607edc1c Improve reconciliation logging and handling. 2026-01-14 13:53:57 -05:00
Greyson Parrelli
08beb7ff43 Properly tag account wallpapers as such during export. 2026-01-14 13:49:28 -05:00
Greyson Parrelli
b24c4e3302 Poke upload progress when viewing settings. 2026-01-14 12:21:19 -05:00
Greyson Parrelli
06a6f0ea0b Rotate backups beta megaphone flag. 2026-01-14 10:53:19 -05:00
Greyson Parrelli
bd38c4f5d2 Update Groups.proto to match shared spec. 2026-01-13 14:01:46 -05:00
Michelle Tang
2e4665e5c4 Fix missing UUID crash in storage service. 2026-01-13 12:20:29 -05:00
andrew-signal
1b250300c7 Bump to libsignal v0.86.11 2026-01-13 12:20:29 -05:00
Alex Hart
7f3966ff07 Remove call length checks from CallQuality trigger. 2026-01-13 12:20:29 -05:00
Alex Hart
1f7e9df7ff Clean up old calling code. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
fd32ec9598 Improve internal logging for reconciliation errors. 2026-01-13 12:20:29 -05:00
Alex Hart
ed12a7691d Add the call quality diagnostics fragment. 2026-01-13 12:20:29 -05:00
Michelle Tang
5759609a11 Add education sheet for key transparency. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
6a423cb18b Fetch abandoned attachment files in a transaction.
Not likely to affect anything because of the existin protected file
system, more just a defense-and-depth style thing.
2026-01-13 12:20:29 -05:00
Greyson Parrelli
c727f93534 Fix conversation list not updating when disappearing message expires
When a disappearing message expired while the user was on the chat list,
the message preview would persist until the user navigated into that
conversation or restarted the app.

The issue was that deleteMessage() only called notifyConversationListeners(threadId)
which notifies observers watching a specific thread, but not
notifyConversationListListeners() which notifies the conversation list UI.
Other similar operations (like bulk deletes at line 3639) correctly call both.
2026-01-13 12:20:29 -05:00
Greyson Parrelli
623d2f2659 Add vertical scrolling to Change Number screen for accessibility.
The Change Number intro screen was not scrollable, making the Continue
button inaccessible when users have larger font or display sizes
configured on their device. Added verticalScroll modifier to the Column
to allow scrolling when content overflows.
2026-01-13 12:20:29 -05:00
Greyson Parrelli
4dede65e32 Remove some bad thumbnails from archive reconciliation. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
1c5f4da20f Potential fix for flakey name collision test. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
33d9840a78 Fix bad attachment table test. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
3e89e07ad3 Fix case where wallpapers may not be uploaded. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
99c3e043e7 Include more debug information for debuglog upload failures. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
3858024116 Fix log typo. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
b06f0bba61 Do not run reconciliation while there are still uploads in progress. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
73ea50d162 Make logging more accurate. 2026-01-13 12:20:29 -05:00
jeffrey-signal
98580e6a6b Move sticker preview classes to preview subpackage. 2026-01-13 12:20:29 -05:00
jeffrey-signal
2f0a63774f Move StickerManagementScreen to its own file. 2026-01-13 12:20:29 -05:00
Greyson Parrelli
3d8f364d59 Update to AGP 8.13.2 2026-01-13 12:20:29 -05:00
jeffrey-signal
2d93b31469 Update username link logo.
Resolves signalapp/Signal-Android#14258
2026-01-13 12:20:28 -05:00
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
Greyson Parrelli
5aa6fc78ee Bump version to 7.57.0 2025-09-17 14:37:30 -04:00
Greyson Parrelli
e0a86ead58 Update translations and other static files. 2025-09-17 14:36:54 -04:00
Alex Hart
169d0fa964 Convert Media to kotlin. 2025-09-17 14:21:43 -04:00
Greyson Parrelli
c5397bc7d2 Fix potential crash in story send.
Fixes #14331
2025-09-17 14:21:43 -04:00
Greyson Parrelli
43f6e0ad8e Fix restore error string formatting. 2025-09-17 14:21:43 -04:00
Alex Hart
736811393f Upgrade Kotlin, AGP, Gradle versions and bring in kotlinx-serialization for use with navigation-compose. 2025-09-17 14:21:43 -04:00
andrew-signal
957ddc82b5 Switch lookupUsernameHash to use libsignal's typed API wrapper. 2025-09-17 14:21:43 -04:00
andrew-signal
16d6e98355 Pass all android.libsignal.* prefixed remote configs down automatically. 2025-09-17 14:21:43 -04:00
Alex Hart
2a90809ba3 Add Billing API and Google API availability error dialogs. 2025-09-17 14:21:43 -04:00
andrew-signal
0713a88ddb Bump to libsignal v0.81.0 2025-09-17 14:21:43 -04:00
Greyson Parrelli
c78b47fbe3 Make max envelope size remote configurable. 2025-09-17 14:21:43 -04:00
jeffrey-signal
5807cbc9e9 Disable autofill for PIN entry fields. 2025-09-17 14:21:43 -04:00
Cody Henthorne
6d90330e86 Improve restore complete dialog for old device. 2025-09-17 14:21:43 -04:00
Michelle Tang
862bab55af Add more logging around notification profile overrides. 2025-09-17 14:21:43 -04:00
jeffrey-signal
7235a3730c Fix crash when opening the change number registration lock screen. 2025-09-17 14:21:43 -04:00
jeffrey-signal
c24993960d Fix inconsistent default PIN keyboard type. 2025-09-17 14:21:43 -04:00
Greyson Parrelli
7f429dc769 Bring back proper archive delete reconciliation. 2025-09-17 14:21:43 -04:00
Michelle Tang
a575626abb Add logging around overrides in notification profiles. 2025-09-17 14:21:43 -04:00
moiseev-signal
0b71b1837c Upgrade to libsignal 0.80.3 and add a new trust root for sealed sender. 2025-09-17 14:21:43 -04:00
jeffrey-signal
f0df1b99e5 Always include english translations for emoji search.
Updates the `emoji_search` table by including English emoji labels alongside existing localized labels, enabling users to search for emojis in both their preferred language and English.
2025-09-17 14:21:43 -04:00
Alex Hart
23b7ea90a1 Add fixes for primary choice when returning to chats. 2025-09-17 14:21:43 -04:00
Alex Hart
53a6b0c719 Fix navigator to ensure we don't end up with a weird backstack. 2025-09-17 14:21:43 -04:00
Alex Hart
bf3135b2d0 Fix various issues in main activity display. 2025-09-17 14:21:43 -04:00
Alex Hart
897461b594 Expand the detail anchor if we select a conversation while the list is maximized. 2025-09-17 14:21:43 -04:00
Alex Hart
63800306a0 Pre-seed navigation when intent is processed before navigator is set. 2025-09-17 14:21:43 -04:00
Greyson Parrelli
b649b8c943 Hide some error states for unregistered users. 2025-09-17 14:21:42 -04:00
andrew-signal
2c0aa40c61 Disable vector drawable rasterization in donations library. 2025-09-17 14:21:42 -04:00
Alex Hart
2eb4f650d8 Convert NotificationsSettingsFragment to compose. 2025-09-17 14:21:42 -04:00
Ehren Kret
7af811eb3f Accept legacy call links. 2025-09-17 14:21:42 -04:00
Alex Hart
d7f43c436e Mark decision state during instrumentation testing. 2025-09-17 14:21:42 -04:00
Cody Henthorne
2792b9e676 Add prompt to re-enable local backups post restore. 2025-09-17 14:21:42 -04:00
Cody Henthorne
bdf2ef5a05 Allow for multiple captchas to be solved during registration. 2025-09-17 14:21:42 -04:00
Alex Hart
23b5a3dcb0 Start conversion from Fragment Nav Framework to utilizing a centralized AppSettingsRouter. 2025-09-17 14:21:42 -04:00
Alex Hart
909ea6b925 Add MainActivity scaffold anchoring. 2025-09-17 14:21:42 -04:00
Greyson Parrelli
a5922c31b1 Fix debuglog spacing. 2025-09-17 14:21:42 -04:00
Greyson Parrelli
d8758bcc4e Add data seeding playground. 2025-09-17 14:21:42 -04:00
Jim Gustafson
f88181cc82 Update to RingRTC v2.57.1 2025-09-17 14:21:42 -04:00
Michelle Tang
c3f1036686 Always fetch remote configs on app update. 2025-09-17 14:21:42 -04:00
Greyson Parrelli
96292cd4a1 Bump version to 7.56.9 2025-09-17 14:20:05 -04:00
Greyson Parrelli
81f6035027 Update translations and other static files. 2025-09-17 14:03:43 -04:00
Greyson Parrelli
52005cf62c Fix bug when replying with a voice note. 2025-09-17 13:30:02 -04:00
Greyson Parrelli
f5effa5be9 Bump version to 7.56.8 2025-09-16 10:48:51 -04:00
Greyson Parrelli
cae7906f04 Mark some archive logs as keep longer. 2025-09-16 10:48:29 -04:00
Greyson Parrelli
7ea8cc6b0a Fix database migrations post-backup-restore. 2025-09-16 09:44:49 -04:00
Greyson Parrelli
8669a3d6e0 Bump version to 7.56.7 2025-09-15 20:42:16 -04:00
Greyson Parrelli
cb3bc91865 Update translations and other static files. 2025-09-15 20:41:54 -04:00
Cody Henthorne
1a0c4b8135 Fix crash with media restore progress banner. 2025-09-15 20:33:58 -04:00
Cody Henthorne
6a456a288d Fix signal backup daily schedule bug. 2025-09-15 20:33:58 -04:00
Cody Henthorne
901a81fb74 Add edit proxy ability to quick restore flow. 2025-09-15 20:33:58 -04:00
Cody Henthorne
b1b99855b2 Improve understanding of last signal backup time in main backup settings screen. 2025-09-15 12:51:41 -04:00
Alex Hart
c6f0b4cf83 Remove frequency row. 2025-09-15 13:20:29 -03:00
Cody Henthorne
1a5dede780 Bump version to 7.56.6 2025-09-12 15:35:19 -04:00
Cody Henthorne
2c8b1c6acb Update translations and other static files. 2025-09-12 15:29:44 -04:00
Greyson Parrelli
d7da56b82f Temporarily disable reconciliation deletes. 2025-09-12 15:21:27 -04:00
Cody Henthorne
d9cfdd1b32 Update backups all set bottom sheet. 2025-09-12 15:21:27 -04:00
Greyson Parrelli
b3b3a4bebf Put invisible marker for keepLonger logs to improve log viewing. 2025-09-12 15:21:27 -04:00
Greyson Parrelli
9021883baa Improve debug logging for reconciliation. 2025-09-12 15:21:27 -04:00
Cody Henthorne
c19017f037 Update svr as part of remote restore. 2025-09-12 14:54:35 -04:00
Alex Hart
bff40ff60b If subscription will cancel at end of period, then show the cancelled state. 2025-09-12 12:24:57 -03:00
Greyson Parrelli
299445d5f9 Fix query for enqueuing thumbnail jobs. 2025-09-12 10:50:19 -04:00
Alex Hart
b2e3d7ba20 Move pending payment check above subscription checks. 2025-09-12 11:17:47 -03:00
Greyson Parrelli
60df7502ee Fix configuration. 2025-09-11 15:49:19 -04:00
Cody Henthorne
28ea4dbc16 Fix stale backup time on backup setting screen. 2025-09-11 15:32:36 -04:00
Cody Henthorne
c4d9942f0e Fix crash when remote key is missing but not null. 2025-09-11 15:14:36 -04:00
Greyson Parrelli
3e50d2318f Try to fix phone numbers if we hit a dupe recipient during archive export. 2025-09-11 13:55:53 -04:00
Greyson Parrelli
040881e5a6 Fix a chat update validation error. 2025-09-11 11:37:27 -04:00
Cody Henthorne
681234ace3 Make failure to trigger backup id a warning log. 2025-09-11 11:00:52 -04:00
Greyson Parrelli
98e9694b35 Support backup4 and backup5 capabilities for linked devices. 2025-09-11 10:44:38 -04:00
andrew-signal
95c46b9d82 Bump libsignal to v0.80.2 2025-09-11 10:04:26 -04:00
andrew-signal
76dfa5d7fe Bump libsignal to v0.80.1 2025-09-11 10:03:42 -04:00
Cody Henthorne
b39d562d56 Include last proto size in internal settion of backups settings. 2025-09-10 16:28:53 -04:00
Cody Henthorne
148cf63a92 Fix bugs around showing 0 bytes for backup size. 2025-09-10 16:05:12 -04:00
Greyson Parrelli
c155b4e025 Update legacy app icons. 2025-09-10 15:54:54 -04:00
Greyson Parrelli
90ae9e1636 Reduce max envelope size for internal users. 2025-09-10 15:33:10 -04:00
jeffrey-signal
79ee14826d Disable keyboard suggestions when typing PIN.
Converts `PinKeyboardType` to Kotlin and introduces methods to consistently configure PIN entry fields throughout the app, including a fix to disable keyboard suggestions.
2025-09-10 14:20:46 -04:00
Greyson Parrelli
179bb6e1da Add mitigation for mentions with unknown recipients.
Relates to #14310
2025-09-10 14:17:23 -04:00
Greyson Parrelli
c393d65ce6 Do not include scheduled messages in the archive. 2025-09-10 14:16:36 -04:00
Alex Hart
eeb8164c18 Always display paid tier but stick a dialog in front of it for non-GPS devices. 2025-09-10 15:12:35 -03:00
Cody Henthorne
ea772cbf55 Fix reglock setting incorrect during backup restore. 2025-09-10 12:57:25 -04:00
Cody Henthorne
dd67398a70 Fix upload media progress bar not showing after backup create. 2025-09-10 11:49:38 -04:00
Greyson Parrelli
d44bed0379 Fix archive handling of mixed error send statuses, add more tests. 2025-09-10 11:42:43 -04:00
Greyson Parrelli
236c79bfbb Update beta labeling string. 2025-09-10 10:22:54 -04:00
Cody Henthorne
7dfee7e315 Bump version to 7.56.5 2025-09-09 16:50:31 -04:00
Cody Henthorne
6600849cc4 Update translations and other static files. 2025-09-09 16:31:03 -04:00
Cody Henthorne
c4255157ac Fix benchmark test. 2025-09-09 16:23:22 -04:00
Cody Henthorne
3bb6a0a560 Fix daily backups being incorrectly scheduled for multiple days away. 2025-09-09 15:55:11 -04:00
Greyson Parrelli
a05d5ff5e6 Fix some issues with BackupMediaSnapshots. 2025-09-09 15:12:02 -04:00
Alex Hart
da6ad2b629 Add fallback biometric handling for older api versions. 2025-09-09 12:48:49 -03:00
Cody Henthorne
09a05c9f4c Fix dangling progress state prior to progress status determination. 2025-09-09 11:48:15 -04:00
Greyson Parrelli
57319d3189 Perform additional APNG validations.
Special thank you to Stanislav Fort of Aisle Research (stanislav.fort@aisle.com)
for finding this issue, bringing it to our attention, and offering a solution!
2025-09-09 11:45:04 -04:00
Alex Hart
40ba967192 Don't fail backup redemption pipeline after 24hrs. 2025-09-09 11:46:59 -03:00
Greyson Parrelli
3c7534f7fa Add some job logging improvements. 2025-09-09 10:38:02 -04:00
Greyson Parrelli
79ec47f901 Fix archive tests around optimize storage. 2025-09-08 16:21:57 -04:00
Greyson Parrelli
6108b5ab77 Another attempt to fix validation errors around invalid long text attachments. 2025-09-08 16:18:21 -04:00
Michelle Tang
49417bdf9d Update edit text fields for pins. 2025-09-08 14:28:04 -04:00
Alex Hart
d2fcb191b6 Add new text label for when backups are off. 2025-09-08 14:59:59 -03:00
Alex Hart
dca876e40d Don't mark deletion failure if we are in an IDLE state. 2025-09-08 14:50:12 -03:00
Alex Hart
5e35c209c2 Fix backup state observation and expand logging. 2025-09-08 14:29:46 -03:00
Greyson Parrelli
22382bc8a3 Keep some message backup logs for longer. 2025-09-08 13:22:27 -04:00
Greyson Parrelli
bf9e75d983 Ensure that permanent thumbnail failures can be properly marked as such. 2025-09-08 11:05:06 -04:00
Greyson Parrelli
f96e29c9c9 Fix thumbnail query in debug attachment stats. 2025-09-08 11:05:06 -04:00
Greyson Parrelli
0bf2f9aca7 Add extra buttons to the Backup Playground. 2025-09-08 11:05:06 -04:00
Greyson Parrelli
2ba427e3dd Do not attempt archive restore when data hash is null. 2025-09-08 11:05:06 -04:00
Greyson Parrelli
624ae32a0e Bump version to 7.56.4 2025-09-06 00:02:21 -04:00
Greyson Parrelli
1339c44892 Fix potential crash when backing up attachment. 2025-09-05 23:38:57 -04:00
Greyson Parrelli
8499402831 Remove unnecessary BackupSubscriptionJob tests cases. 2025-09-05 19:37:38 -04:00
Greyson Parrelli
4df6b87c13 Fix attachment table archive eligibility tests. 2025-09-05 19:33:50 -04:00
Greyson Parrelli
7d16e857d4 Fix unit tests around quote deduping. 2025-09-05 16:56:52 -04:00
Greyson Parrelli
a6c215801b Delay the first archive reconciliation. 2025-09-05 16:42:07 -04:00
andrew-signal
b3a9b92717 Bump libsignal to v0.80.0 2025-09-05 16:14:56 -04:00
Alex Hart
071496e0c1 Bump version to 7.56.2 2025-09-05 16:23:00 -03:00
Alex Hart
af36b9adbd Update translations and other static files. 2025-09-05 16:22:42 -03:00
Greyson Parrelli
630f998ea4 Add some better debug info around backup state. 2025-09-05 15:00:00 -04:00
Greyson Parrelli
9058f7ed55 Ignore invalid long text attachment pointers. 2025-09-05 14:31:14 -04:00
Alex Hart
0dac6344ab Access configuration via cache layer when evaluating state. 2025-09-05 14:44:49 -03:00
Greyson Parrelli
8adb16912f Update string describing backup frequency. 2025-09-05 11:02:25 -04:00
Alex Hart
21868878cf Bump version to 7.56.1 2025-09-05 10:42:15 -03:00
Alex Hart
51e0142f10 Update translations and other static files. 2025-09-05 10:42:03 -03:00
Alex Hart
e8e851dbe0 Remove billing factory override from website variant. 2025-09-05 10:23:26 -03:00
Greyson Parrelli
8809b8f77c Bump version to 7.56.0 2025-09-04 17:00:43 -04:00
Greyson Parrelli
f8aa3644aa Update translations and other static files. 2025-09-04 17:00:20 -04:00
Greyson Parrelli
e1e41b6f7f Revert "Add logging when registration can't be completed."
This reverts commit 2c47cd2422.
2025-09-04 17:00:20 -04:00
jeffrey-signal
b1f067536b Disable saving PIN to password manager.
We haven't found a reliable way to make the auto-fill framework differentiate between the PIN and backup key, so we are disabling prompts to save Signal PINs to password managers to avoid accidentally overwriting a saved backup key with a PIN value.

Co-authored-by: Michelle Tang <mtang@signal.org>
2025-09-04 17:00:20 -04:00
Cody Henthorne
217a6187c2 Add run restore media job to internal settings. 2025-09-04 17:00:20 -04:00
Cody Henthorne
1d1f0c0b3a Fix wallpaper attachments not being restored. 2025-09-04 17:00:20 -04:00
Greyson Parrelli
ba3c30f768 Enable Signal Secure Backups for external users. 2025-09-04 17:00:20 -04:00
Greyson Parrelli
bc85552ded Fix possible crash during restore. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
ccf1be2359 Add failsafe for clearing abandoned backup progress. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
0d3727f08b Handle thumbnail generation failing more gracefully. 2025-09-04 16:35:06 -04:00
Cody Henthorne
94b464e37c Call mark registration complete in more places. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
ca2cc722d4 Add separate column to track archive thumbnail status. 2025-09-04 16:35:06 -04:00
Alex Hart
2c47cd2422 Add logging when registration can't be completed. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
1c9d68a932 Fix thumbnail job precondition. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
807d10837b Do not include view-once or long text in the media snapshot table. 2025-09-04 16:35:06 -04:00
Cody Henthorne
6e5c569f7e Update various registration related logs as keep-longer. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
4179592ae7 Disable the 'optimize storage' feature for production users. 2025-09-04 16:35:06 -04:00
Cody Henthorne
1f40c7ab7e Improve archive restore progress tracking and UX. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
89a0541574 Ensure we don't archive thumbnails or stories. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
5294bd8a1a Show 'calculating' while loading backup size. 2025-09-04 16:35:06 -04:00
Alex Hart
2d9c572c01 Fix several backup related problems. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
8520108bb2 Limit quote bodies to 2kib on export. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
2572dac8a7 Remove backup frequency setting. 2025-09-04 16:35:06 -04:00
andrew-signal
54b31514ba Bump libsignal to v0.79.1 2025-09-04 16:35:06 -04:00
Greyson Parrelli
1166b99d01 Add backupVersion to RegistrationProvisioning.proto 2025-09-04 16:35:06 -04:00
Greyson Parrelli
b44cd5d4c4 Clear some tooltips after restore, remove some legacy ones entirely. 2025-09-04 16:35:06 -04:00
Greyson Parrelli
08a8c56d5c Only allow archive tier overrides on staging. 2025-09-04 16:35:05 -04:00
Michelle Tang
33645c302b Update backup related strings. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
a7ac138ea3 Add quote reconstruction job for free-tier restores. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
06b85cc3cb Improve quote deletion, remove file deletes from transactions. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
662404d335 Migrate quotes to have a separate quoteTargetContentType. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
631b51baf2 Add a migration to generate thumbnails for existing quotes. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
c29d77d4a5 Do not generate archive thumbnails for quotes. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
d4c1c39179 Generate thumbnails for quote attachments. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
71dd1d9d8b Add backstop for ensuring attachment archive jobs are enqueued. 2025-09-04 16:35:05 -04:00
Michelle Tang
3b715bc461 Catch foreground service not allowed exceptions. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
712616e569 Do not prompt prod users to enable backups. 2025-09-04 16:35:05 -04:00
Michelle Tang
c18cb6a926 Set remote fetch time for remote config v2. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
b975e2ed69 Ensure that memory-only jobs do not get lost due to cache eviction. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
b87a060251 Use more sensible numberings for JobRunner ids. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
c493fc1c4c Fix name of thread dump log sections. 2025-09-04 16:35:05 -04:00
Alex Hart
e083076e40 Add additional information to entitlement level log-line of context job. 2025-09-04 16:35:05 -04:00
Greyson Parrelli
a5c4c3b54a Small JobManager tweaks to scale more often and improve debugging info. 2025-09-04 16:35:05 -04:00
Cody Henthorne
3bcfb5ab61 Fix received stickers for installed packs without a data_hash_end. 2025-08-28 12:04:43 -04:00
Cody Henthorne
8ce17e3e2d Remove set pin after aep reg megaphone. 2025-08-28 11:30:23 -04:00
Greyson Parrelli
460b097a71 Ensure that all SignalValues are having the correct overrides called. 2025-08-28 09:50:02 -04:00
Michelle Tang
8e9dc78957 Bump version to 7.55.0 2025-08-27 16:09:44 -04:00
Michelle Tang
1ee5d32322 Update translations and other static files. 2025-08-27 15:59:54 -04:00
Michelle Tang
42905b5bb8 Remove phantom restore media notification. 2025-08-27 15:55:18 -04:00
Cody Henthorne
b8c25a4d78 Re-enable large image loading. 2025-08-27 15:55:18 -04:00
Cody Henthorne
cdbe2c1c71 Revert "Disable all fixes for large image loading."
This reverts commit a16ac3394c.
2025-08-27 15:55:18 -04:00
Michelle Tang
d4f08e6d46 Update unsupported message UI. 2025-08-27 15:55:18 -04:00
Michelle Tang
8322bf3ecc Choose manual profile over scheduled profile if active. 2025-08-27 15:55:18 -04:00
Cody Henthorne
21363f085e Add sticker specific restore flow and fix archive related sticker bugs. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
9903a664d4 Allow NEEDS_RESTORE attachments to be considered as 'couldBeOnArchiveCdn'. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
1a1ddbfa39 Add additional logging around JobRunners. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
23bbe704ab Add a reserved runner for attachment operations. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
0dda3d54c9 Add SendDeliveryReceiptJob to the reserved runner. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
dde1d9b2c8 Ensure that debuglog search queries are escaped.
Thank you to Aref Alotaibi <arefalotaibi.cs@gmail.com> for discovering
and reporting this issue!
2025-08-27 15:55:18 -04:00
Cody Henthorne
7bb0b513e8 Don't set archive states when importing from no-media backup. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
2046b44fce Clear incrementalMac if we discover it's bad during playback. 2025-08-27 15:55:18 -04:00
Alex Hart
45c64f825d Migrate DataAndStorageFragment to compose. 2025-08-27 15:55:18 -04:00
Jim Gustafson
94ed0650dc Calling: Remove unnecessary hangups 2025-08-27 15:55:18 -04:00
Cody Henthorne
0d390769d4 Add key reuse to create keys operation in backup job. 2025-08-27 15:55:18 -04:00
Alex Hart
2872020c1f Convert ChatsSettings screen to compose. 2025-08-27 15:55:18 -04:00
Michelle Tang
8723fd9a24 Check remaining attachment size before launching service. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
9a9661149b Run unit tests in parallel. 2025-08-27 15:55:18 -04:00
Michelle Tang
5dfbfccc08 Add media restore tier to debuglogs. 2025-08-27 15:55:18 -04:00
Alex Hart
a344618c63 Update logging of timestamps in Remote Backups section. 2025-08-27 15:55:18 -04:00
Alex Hart
24b93fb517 Fix IAP insertion timestamp. 2025-08-27 15:55:18 -04:00
Greyson Parrelli
f052b1fd90 Ignore expensive AttachmentCipherTests.
They can take up to 15 seconds to run, and they've already proven
their usefulness. We can un-ignore them temporarily if we ever need
to make changes.
2025-08-27 15:55:18 -04:00
Greyson Parrelli
a234896438 Ensure that we clear incrementalMac's that will be invalidated during archive. 2025-08-27 15:55:18 -04:00
Alex Hart
bed718347c Fix navigation bar gap when opening keyboard in split pane view. 2025-08-27 15:55:18 -04:00
Cody Henthorne
53f2049c48 Use same cipher version for registration and linking provisioning messages. 2025-08-27 15:55:18 -04:00
andrew-signal
00d425356d Bump to libsignal v0.79.0 2025-08-27 15:55:18 -04:00
Cody Henthorne
6c42ce411b Add JUnit-based database consistency test. 2025-08-27 15:55:18 -04:00
Alex Hart
1833248c96 Don't bother with the empty item if we are on the new calling UI. 2025-08-27 15:55:18 -04:00
Cody Henthorne
f5b1857866 Fix various attachment reuse bugs causing archive issues. 2025-08-27 15:55:18 -04:00
Alex Hart
114524adc6 Add support for resizing pane on main activity. 2025-08-25 18:01:22 -04:00
Michelle Tang
47fb0deca4 Add foreground service when restoring backup media. 2025-08-25 18:01:22 -04:00
Michelle Tang
98f4baa7b2 Bump version to 7.54.1 2025-08-25 16:27:56 -04:00
Michelle Tang
e051939adb Update translations and other static files. 2025-08-25 16:24:12 -04:00
Cody Henthorne
a16ac3394c Disable all fixes for large image loading. 2025-08-25 14:49:44 -04:00
Jeffrey Starke
62fdf3d1aa Bump version to 7.54.0 2025-08-21 15:09:51 -04:00
Jeffrey Starke
9969b10c02 Update baseline profile. 2025-08-21 15:06:08 -04:00
Jeffrey Starke
ac656e4cb5 Update translations and other static files. 2025-08-21 15:01:36 -04:00
Greyson Parrelli
b3d2e31bae Add dynamic scaling to our JobRunner system. 2025-08-21 14:52:34 -04:00
Alex Hart
c117082f23 Update self-pip placement in compose screen. 2025-08-21 14:52:34 -04:00
Alex Hart
3c02ff0894 Fix background corners on Foldables / Tablet layout. 2025-08-21 14:52:34 -04:00
gram-signal
e917d39a8e Add 'spqr' capability to uploaded AppCapabilities. 2025-08-21 14:52:34 -04:00
Alex Hart
38bb15ed44 Fix participant overflow sizing on tablets. 2025-08-21 14:52:34 -04:00
Alex Hart
2db87c36a3 Convert AppearanceSettingsFragment to compose. 2025-08-21 14:52:34 -04:00
Alex Hart
92d31ee6ff Convert AppUpdatesSettingsFragment to compose. 2025-08-21 14:52:34 -04:00
Alex Hart
d92286297f Convert AdvancedPrivacySettingsFragment to compose. 2025-08-21 14:52:34 -04:00
Michelle Tang
7d35cf1374 Use remote config v2. 2025-08-21 14:52:34 -04:00
Alex Hart
dcce8ea35a Convert AccountSettingsFragment from DSL to Compose. 2025-08-21 14:52:34 -04:00
Alex Hart
71c34e17eb Various backup strings updates. 2025-08-21 14:52:34 -04:00
Alex Hart
ecddf34083 Convert AddAllowedMembersFragment to compose. 2025-08-21 14:52:34 -04:00
Michelle Tang
958dde0f6e Fix bugs for chat folders in storage sync. 2025-08-21 14:52:34 -04:00
Greyson Parrelli
d636ef8ec9 Add debug logging for attachment restore speeds. 2025-08-21 14:52:34 -04:00
Greyson Parrelli
eb4abf2a9e Allow RestoreAttachmentJob to be retried multiple times. 2025-08-21 14:52:34 -04:00
Jordan Rose
3a06f604fd Remove direct uses of libsignal internals 2025-08-21 14:52:34 -04:00
Alex Hart
8992ed047d Remove restriction on proximity lock in landscape calling. 2025-08-21 14:52:34 -04:00
Greyson Parrelli
dfdadc9d7a Update SVRB error handling. 2025-08-21 14:52:34 -04:00
Greyson Parrelli
03c6094ea3 Bump libsignal to v0.78.2 2025-08-21 14:52:34 -04:00
Rishabh Bhatia
ccd36f199a Fixes a significant memory leak in the sticker keyboard, which caused UI lag and system slowdowns, particularly on lower-end devices.
Closes signalapp/Signal-Android#14283
Fixes signalapp/Signal-Android#13770
2025-08-21 14:52:34 -04:00
Alex Hart
7c7f2ff2aa Fix unresponsiveness of calling screen when in landscape. 2025-08-21 14:52:33 -04:00
jeffrey-signal
47508495ed Improve organization of glide packages.
Generic image processing classes were scattered alongside Signal-specific Glide code across multiple packages: `org.signal.glide`, `org.thoughtcrime.securesms.glide` and `org.thoughtcrime.securesms.mms`.

This change provides a clearer separation of concerns:
- `org.signal.glide` contains generic image loading components
- `org.thoughtcrime.securesms.glide` contains Signal-specific Glide integrations
- Feature-specific loaders are moved to their respective domain packages (e.g. `.badges`, `.contacts`)
2025-08-21 14:52:33 -04:00
Greyson Parrelli
cc43add7af Add in extra check for serviceId in send job. 2025-08-21 14:52:33 -04:00
Jim Gustafson
19b3d6d1d3 Update to RingRTC v2.57.0 2025-08-21 14:52:33 -04:00
Greyson Parrelli
1c7f6a68e4 Inline deleteSync and SSREv2 capabilities. 2025-08-21 14:52:33 -04:00
Greyson Parrelli
8df8cdf28d Fix potential crash in notification message generation. 2025-08-21 14:52:33 -04:00
Alex Hart
dd01cd15ca Fix full-screen mode for compose call screen. 2025-08-21 14:52:33 -04:00
Alex Hart
1e2b1a8b78 Fix state restoration when switching between inner and outer screens. 2025-08-21 14:52:33 -04:00
Cody Henthorne
734aa485ce Fix restore progress bar not clearing after cancel. 2025-08-21 14:52:33 -04:00
Cody Henthorne
2b56e00e89 Prevent potential deadlock when canceling jobs. 2025-08-21 14:52:33 -04:00
Greyson Parrelli
6f051ce4c2 Add progress log for dummy message inserts. 2025-08-21 14:52:33 -04:00
Alex Hart
f7bd2ee020 Upgrade compose to BOM 2025.08.00 2025-08-21 14:52:33 -04:00
Greyson Parrelli
a542b65f51 Add support for OutgoingMessageDetails.dateReceived. 2025-08-21 14:52:33 -04:00
Greyson Parrelli
4c59a746a5 Update to latest backup tests. 2025-08-21 14:52:33 -04:00
Greyson Parrelli
73ad6221a6 Add performance metrics for archive uploads. 2025-08-21 14:52:33 -04:00
Cody Henthorne
9ccdbb8e40 Rotate profile key when learning of a block by a linked device. 2025-08-21 14:52:33 -04:00
jeffrey-signal
cd26929d39 Prevent password managers from overwriting backup key with Signal PIN.
Adding a hidden username field provides additional context for the autofill service, so it knows the username associated with the confirmed PIN should be "Signal PIN" rather than "Signal backup key".
2025-08-21 14:52:33 -04:00
Cody Henthorne
d7714a2067 Do not archive view-once media. 2025-08-21 14:52:33 -04:00
Alex Hart
1056e79361 Enable edgeToEdge support for compose CallScreen. 2025-08-21 14:52:33 -04:00
Alex Hart
515f3dd43f Add proper picture in picture support to compose CallScreen component. 2025-08-21 14:52:33 -04:00
Jeffrey Starke
affe97a060 Bump version to 7.53.4 2025-08-21 14:50:05 -04:00
Jeffrey Starke
ad57b7a2db Update baseline profile. 2025-08-21 12:42:06 -04:00
Jeffrey Starke
91cd4641f2 Update translations and other static files. 2025-08-21 12:37:41 -04:00
Jeffrey Starke
f919961cb2 StreamFactoryApngDecoder handles PNG types. 2025-08-21 12:18:49 -04:00
Jeffrey Starke
9dd1f0d17d Bump version to 7.53.3 2025-08-19 20:39:21 -04:00
Jeffrey Starke
286ad3873f Update baseline profile. 2025-08-19 20:37:05 -04:00
Jeffrey Starke
748b94e6ba Update translations and other static files. 2025-08-19 20:33:30 -04:00
jeffrey-signal
d983538122 Fix broken animations for some sticker packs.
Makes a few tweaks to the APNG handling to make sure images of that type are properly identified and decoded by the StreamFactoryApngDecoder.
2025-08-19 20:12:25 -04:00
Jeffrey Starke
50ed455717 Bump version to 7.53.2 2025-08-18 19:41:09 -04:00
Jeffrey Starke
f23622d498 Update baseline profile. 2025-08-18 19:35:48 -04:00
Jeffrey Starke
625941e2e2 Update translations and other static files. 2025-08-18 19:32:30 -04:00
jeffrey-signal
a2444ffa69 Fix GIF animations.
`StreamBitmapDecoder` was handling GIF images and rendering them as static bitmaps. This change fixes that by adding a `StreamBitmapDecoder` wrapper that returns `handles=false` for images of type GIF and APNG, to enable `StreamFactoryGifDecoder` to decode GIF images.

- Resolves signalapp/Signal-Android#14300
2025-08-18 18:19:29 -04:00
Greyson Parrelli
ff708eb4ee Bump version to 7.53.1 2025-08-15 16:22:02 -04:00
Greyson Parrelli
4f3f48aa2f Update baseline profile. 2025-08-15 16:21:37 -04:00
Greyson Parrelli
b93937e866 Avoid flashing white when opening debuglog in dark theme. 2025-08-15 09:44:53 -04:00
Greyson Parrelli
0ed4785935 Detect priority-related unsatisfiable dependencies in jobs. 2025-08-14 16:56:10 -04:00
Greyson Parrelli
939dcc9295 Jump to search result while typing in debuglog viewer. 2025-08-14 16:11:19 -04:00
Greyson Parrelli
0d596af187 Hide mobile context menu in debug log viewer. 2025-08-14 15:54:05 -04:00
Greyson Parrelli
1944b5c61e Bump version to 7.53.0 2025-08-13 23:24:12 -04:00
Greyson Parrelli
b823e0a9af Update baseline profile. 2025-08-13 23:24:12 -04:00
Greyson Parrelli
117baf7b65 Update translations and other static files. 2025-08-13 23:24:12 -04:00
Greyson Parrelli
33f7fdedfa Fix race condition where not all logs would be added to the viewer. 2025-08-13 23:24:11 -04:00
Greyson Parrelli
a34ccd8ce7 Ensure uploaded logs match debug log viewer. 2025-08-13 21:44:24 -04:00
Cody Henthorne
fc1cd6d262 Fix edit message import data bugs. 2025-08-13 21:44:24 -04:00
Alex Hart
859bb02c86 Implement BackupSubscriptionCheckJob integration tests. 2025-08-13 21:44:24 -04:00
Alex Hart
638f718d7c Rework MainActivity navigation to properly suppor empty state. 2025-08-13 21:44:24 -04:00
Alex Hart
58d2fbc94e Fix proximity locking during voice calls. 2025-08-13 12:39:02 -03:00
Cody Henthorne
0bbbee645d Improve link device good citizenship with backups. 2025-08-12 14:33:47 -04:00
Greyson Parrelli
2190a4a58d Fix issue where we could enqueue unsatisfiable jobs during registration. 2025-08-12 13:00:35 -04:00
Michelle Tang
b1feffa627 Sync deletion of profiles with storage service. 2025-08-12 10:36:34 -04:00
Cody Henthorne
150e98bbc1 Fix attachment reconciliation bugs stemming from incorrect base64 encoded remote_key. 2025-08-12 09:57:29 -04:00
jeffrey-signal
709ff90d35 Fix PNG animations.
Adds an `InputStreamFactory` APNG decoder so images animate correctly when loaded via the new `DecryptableUriStreamLoader`.
2025-08-12 09:56:46 -04:00
Michelle Tang
ee657cb075 Fix notification profile override crash. 2025-08-11 15:55:06 -04:00
Greyson Parrelli
86ef32cd4c Do not load entire log into memory. 2025-08-11 13:02:13 -04:00
Alex Hart
2988e22612 Add logging when we display different alert sheets via the delegate. 2025-08-11 13:02:13 -04:00
Michelle Tang
be41c2e8cb Remove old manual overrides for notification profiles. 2025-08-11 13:02:13 -04:00
Greyson Parrelli
f518862dc3 Add debug info for archive upload progress. 2025-08-11 13:02:13 -04:00
Greyson Parrelli
3995608fd8 Fix a race condition with debuglogs viewing. 2025-08-11 13:02:13 -04:00
Alex Hart
9f7a78bf3c Update remote backup size display to indicate loading while accessing data. 2025-08-11 13:02:13 -04:00
Greyson Parrelli
71a588da39 Do not retry thumbnails on terminal status codes. 2025-08-11 13:02:13 -04:00
Greyson Parrelli
17b42f76a2 Ensure long text is excluded from pending archive size calculation. 2025-08-11 13:02:13 -04:00
lisa-signal
5e8d72e19e Fix potential ANR in debug log viewer. 2025-08-11 13:02:13 -04:00
Alex Hart
308f4c817f Perform zk check in check job. 2025-08-11 13:02:13 -04:00
lisa-signal
75df8c0e2a Allow back button to remove debug log filter. 2025-08-11 13:02:13 -04:00
jeffrey-signal
1edc94d5ad Dynamically calculate Glide stream mark limit based on device memory.
Replaces the hardcoded `InputStreamRewinder.MARK_READ_LIMIT` with a value that is calculated dynamically based on the device's RAM (scaling the mark read limit linearly between 5 to 8 MB).

A larger limit will avoid unnecessary fail & retries on high-end devices and improve performance.
2025-08-11 13:02:13 -04:00
lisa-signal
c0f826808b Add filter by log level feature in debug log screen. 2025-08-11 13:02:13 -04:00
Alex Hart
e93f889115 BackupDeleteJob integration tests. 2025-08-11 13:02:13 -04:00
Alex Hart
995215be2a Skip media restoration if we're on the free tier. 2025-08-11 13:02:13 -04:00
jeffrey-signal
784a64c353 Fix large image file loading failures.
Replaces `DecryptableStreamUriLoader` with `DecryptableUriStreamLoader`, which addresses `InvalidMarkException` errors that were occurring when loading large image files with Glide. This new model loader provides a more robust approach via multiple fallback mechanisms to try to recover gracefully from errors related to displaying large images.
2025-08-11 13:02:13 -04:00
Greyson Parrelli
a549fff6fa Add parallelization options for archive attachment restoration. 2025-08-11 13:02:13 -04:00
Greyson Parrelli
7b88b07170 Increase parallelization of attachment archive uploads. 2025-08-11 13:02:12 -04:00
Greyson Parrelli
3273787a05 Do not make all instrumentation tests internal users. 2025-08-11 13:02:12 -04:00
Cody Henthorne
27ddc97ea4 Use server rereg flag to show post reg restore flows. 2025-08-11 13:02:12 -04:00
Greyson Parrelli
f255160c4a Default the number of JobRunners to 8. 2025-08-11 13:02:12 -04:00
Greyson Parrelli
7cf170ab3d Fix debug tool to insert messages with attachments. 2025-08-11 13:02:12 -04:00
Cody Henthorne
8e6664f41c Fix backup instrumentation tests. 2025-08-11 13:02:12 -04:00
Michelle Tang
2ced30b557 Add notification profile size to local metrics. 2025-08-11 13:02:12 -04:00
Greyson Parrelli
1a531548e8 Ensure various log database indexes are used. 2025-08-11 13:02:12 -04:00
Alex Bakon
d0b53f21bd Use correct index when deleting old log lines. 2025-08-11 13:02:12 -04:00
Greyson Parrelli
3772df146a Bump version to 7.52.2 2025-08-11 12:59:34 -04:00
Greyson Parrelli
9a1a6e5c5d Update translations and other static files. 2025-08-11 12:59:12 -04:00
emir-signal
c4c9fd9f65 Make epoch optional in backups and storage service. 2025-08-11 12:40:40 -04:00
Cody Henthorne
47faefaff7 Bump version to 7.52.1 2025-08-08 12:51:46 -04:00
Cody Henthorne
a09cd7a432 Update baseline profile. 2025-08-08 12:46:37 -04:00
Cody Henthorne
9d69a123d9 Update translations and other static files. 2025-08-08 12:41:15 -04:00
andrew-signal
afcc13c8be Bump libsignal to v0.78.1. 2025-08-07 09:45:06 -04:00
Cody Henthorne
4339187ab6 Bump version to 7.52.0 2025-08-06 16:16:00 -04:00
Cody Henthorne
453781cd6d Update translations and other static files. 2025-08-06 16:04:06 -04:00
andrew-signal
303174c864 Add remote config to split libsignal-net support for standard vs proxied. 2025-08-06 15:51:27 -04:00
Cody Henthorne
95ff2886cd Add more linked device checks to various jobs. 2025-08-06 15:50:16 -04:00
Alex Hart
0df5ec458b Utilize the correct method for converting signal service amount to fiat money. 2025-08-06 15:50:16 -04:00
jeffrey-signal
7d35e685b2 Add Glide Downsampler. 2025-08-06 15:50:16 -04:00
Cody Henthorne
7ca1ac4efb Add rudimentary link+sync support. 2025-08-06 15:50:16 -04:00
Alex Hart
1a68b8768d Fix redemption error details. 2025-08-06 15:50:16 -04:00
Alex Hart
53a80589e3 Add Out of Remote Storage sheet. 2025-08-06 15:50:16 -04:00
Verryx-02
50d809029e Save media attachments to Signal subdirectories.
Closes #14277
2025-08-06 15:50:16 -04:00
Michelle Tang
eb7012b7ae Remove plaintext device creation timestamp. 2025-08-06 15:50:16 -04:00
Greyson Parrelli
9dcc704a9e Add specific registration error cases for SVRB. 2025-08-06 15:50:16 -04:00
Jordan Rose
0726c29528 Swap between two log buffers to save on copying 2025-08-06 15:50:16 -04:00
Jordan Rose
7074684474 Avoid reallocation inserting logs into database 2025-08-06 15:50:16 -04:00
lisa-signal
57454a2661 Add filter functionality to debug log screen. 2025-08-06 15:50:16 -04:00
Cody Henthorne
f8b18b6ea9 Add missing unmockk calls in various unit tests. 2025-08-06 15:50:16 -04:00
Greyson Parrelli
949bc8fb95 Add additional logging around JobManager memory state. 2025-08-06 15:50:14 -04:00
Cody Henthorne
6379f9f453 Cancel may have messages notification from FcmJobService. 2025-08-06 15:49:25 -04:00
Greyson Parrelli
26df14124b Make our loggers singletons. 2025-08-06 15:49:22 -04:00
Greyson Parrelli
ec7a2f734a Update to latest backup tests. 2025-08-06 15:48:22 -04:00
Sagar
418ce68a97 Add unit tests for FindByViewModel.
Closes #14145
2025-08-06 15:48:22 -04:00
Greyson Parrelli
92e1f68c6d Remove legacy attachment fields from Backup.proto 2025-08-05 11:00:54 -04:00
Greyson Parrelli
5aeca1deb1 Add initial SVRB support. 2025-08-05 11:00:54 -04:00
Cody Henthorne
f6ab408fc8 Add developer only crude link device UX. 2025-08-05 11:00:54 -04:00
Cody Henthorne
e29abdea91 Add device linking infrastructure. 2025-08-05 11:00:54 -04:00
Cody Henthorne
e6e869e074 Fix identity key update failure when profile key verification failed. 2025-08-05 11:00:54 -04:00
Alex Hart
a60f3a26fb Disable current tier from being selected. 2025-08-05 11:00:54 -04:00
lisa-signal
5e0aa830bf Add search functionality to debug log screen. 2025-08-05 11:00:54 -04:00
Alex Hart
962375e422 Clear auth credentials post restore and when a user disables backups. 2025-08-05 11:00:54 -04:00
Cody Henthorne
9fd9760264 Bump version to 7.51.2 2025-08-05 10:55:46 -04:00
Cody Henthorne
d2a9d201dd Update baseline profile. 2025-08-05 10:49:20 -04:00
Cody Henthorne
35c6392d16 Update translations and other static files. 2025-08-05 10:39:30 -04:00
Michelle Tang
87af103012 Add additional foreground service timeout check. 2025-08-05 10:20:20 -04:00
Alex Hart
2ace1e75e1 Bump version to 7.51.1 2025-08-02 20:55:46 -03:00
Alex Hart
8e6408a90c Update translations and other static files. 2025-08-02 20:50:50 -03:00
Alex Hart
386744fa72 Fix crash when launching app for non-internal users. 2025-08-02 20:46:43 -03:00
Greyson Parrelli
aebda41fdc Fix long message sends in groups. 2025-08-01 10:29:59 -04:00
Alex Hart
68fa3b5f95 Bump version to 7.51.0 2025-07-31 15:21:46 -03:00
Alex Hart
4b6940e2ef Update translations and other static files. 2025-07-31 15:18:21 -03:00
Michelle Tang
d0d44ed7ce Update target SDK to 35. 2025-07-31 13:55:48 -04:00
Alex Hart
87a694c87c Implement io-free state update and fallback mechanism for backups state. 2025-07-31 14:16:56 -03:00
Alex Hart
bdeb5aa96a Retry deletion job on verification failure. 2025-07-31 13:11:36 -03:00
jeffrey-signal
b37bbcaaa5 Convert DecryptableUri to Kotlin. 2025-07-31 08:29:54 -04:00
lisa-signal
02420fce2a View debug log screen through WebView through a module. 2025-07-30 14:47:50 -04:00
Alex Hart
1f243bca74 Add job after registration to try to redeem subscription data. 2025-07-30 13:26:06 -03:00
Greyson Parrelli
65e114e55f Handle 400 errors for message backup uploads. 2025-07-30 11:51:48 -04:00
Greyson Parrelli
9204c9a1b8 Fix handling of resumable upload errors in archive uploads. 2025-07-30 11:46:54 -04:00
Greyson Parrelli
1ee606de9e Register backupIds for all users. 2025-07-30 10:55:53 -04:00
Greyson Parrelli
90c381f0ba Rotate MRBK when rotating AEP. 2025-07-30 09:59:16 -04:00
andrew-signal
faecbf5ea9 Bump libsignal to v0.77.1 2025-07-30 09:58:02 -04:00
andrew-signal
e87946141e Add debug logging for network capabilities. 2025-07-29 12:01:36 -04:00
Alex Hart
b8300f373d Polish various bits of backups UI. 2025-07-29 11:09:53 -03:00
Alex Hart
ab458a5bb8 Add several state presentation fixes in the delete / enable cycle. 2025-07-28 15:31:18 -03:00
Alex Hart
d3030e143b Fix E2E happy path tests for backups. 2025-07-28 12:18:17 -03:00
Greyson Parrelli
42ee5267c9 Ensure that contact cursors used for size calculations are closed. 2025-07-25 14:26:22 -04:00
Greyson Parrelli
149ee5ad36 Fix bug where editing the message body pauses video playback. 2025-07-25 14:21:28 -04:00
Greyson Parrelli
6af3f2ce42 Do not upload long text attachments to the archive. 2025-07-25 13:30:45 -04:00
Greyson Parrelli
7295787e08 Fix and update archive tests. 2025-07-25 13:04:31 -04:00
Cody Henthorne
3b028d49a5 Initial pass to properly check multi-device environment in various spots. 2025-07-25 12:19:59 -04:00
Alex Hart
e458a5fdb3 Add check for proper backup entitlement level. 2025-07-25 13:09:07 -03:00
Greyson Parrelli
00e740ee14 Add migration to fix FREE tier setting. 2025-07-25 12:08:51 -04:00
Greyson Parrelli
e8bea19927 Rename /v2/backup to /v2/svr. 2025-07-25 11:33:33 -04:00
Alex Hart
53ee0648c0 Fix backups deletion pipeline. 2025-07-25 11:02:47 -04:00
Jim Gustafson
3bb2ab3a0c Update to RingRTC v2.56.0 2025-07-25 11:02:47 -04:00
Greyson Parrelli
759a746e46 Mark some archive reconciliation logs as keepLonger. 2025-07-25 11:02:47 -04:00
Cody Henthorne
7499bd77b4 Clean up GSE usage and remove combined-UAK fallback for multi-recipient send. 2025-07-25 11:02:47 -04:00
Alex Hart
99fb70c20c Remove unused string. 2025-07-25 11:02:46 -04:00
Cody Henthorne
2da3ac5b20 Update link device provisioning proto. 2025-07-25 11:02:46 -04:00
Alex Hart
5a1bb0c231 Filter subscriber record from backup data if user is on the free tier to avoid validation error. 2025-07-25 11:02:46 -04:00
Michelle Tang
dac649ceed Bump version to 7.50.1 2025-07-25 10:26:57 -04:00
Michelle Tang
8785a9f591 Update translations and other static files. 2025-07-25 10:20:08 -04:00
lisa-signal
3cbb2ffd3f Revert using WebView for debug log screen. 2025-07-24 12:27:01 -04:00
Greyson Parrelli
a249fbb38f Migrate to new SVR2 enclave. 2025-07-24 12:13:13 -04:00
Greyson Parrelli
a19cdc923c Bump libsignal-client to v0.76.7 2025-07-24 12:12:58 -04:00
Michelle Tang
109715e64c Bump version to 7.50.0 2025-07-23 15:38:12 -04:00
Michelle Tang
502ef7da7d Update translations and other static files. 2025-07-23 15:28:25 -04:00
Alex Hart
b9cd128b1b Fix shadowed variable warning. 2025-07-23 15:22:26 -04:00
Alex Hart
dd79348b6a Update how our check job handles mismatched tokens. 2025-07-23 15:22:26 -04:00
Michelle Tang
8a61f464ab Fix cut off linking text. 2025-07-23 15:22:26 -04:00
Alex Hart
8ed34fb4a0 Increase log coverage for processing backup refresh and credential submission. 2025-07-23 15:22:26 -04:00
Alex Hart
16776ad843 Filter messages that will expire within 24hrs from including attachments in backups. 2025-07-23 15:22:26 -04:00
Cody Henthorne
635aa8791f Respect rate limit in send jobs. 2025-07-23 15:22:26 -04:00
Cody Henthorne
d1c02ac454 Add server message to group patch exception. 2025-07-23 15:22:26 -04:00
Greyson Parrelli
eca75ca3fb Include backup size when fetching archive upload form. 2025-07-21 13:02:42 -04:00
Alex Hart
b95a3a2554 Don't show x on complete. 2025-07-21 13:33:28 -03:00
Henry Holtzman
bf4b09bdc4 Update to MobileCoin enclave measurements. 2025-07-21 08:20:05 -04:00
jeffrey-signal
8a057168ae Improve conversation scroll performance.
Fixes a performance bottleneck in `ConversationFragment` caused by expensive calculations in `ConversationItemDecorations.hasHeader()`. This method is invoked in `RecyclerView.ItemDecoration.getItemOffsets()`, which runs on every layout pass and happens frequently during scrolling.

The most expensive calculation in `hasHeader()` is `toEpochDay()`. That method calls `Long.toLocalDate()`, which clones a `TimeZone` object on each call. Upon opening one conversation (without scrolling), I observed that `toEpochDay()` was called over 1000 times in less than a second, rapidly allocating memory and causing garbage collection pressure that potentially leads to ANRs.

We only need to calculate `hasHeader()` once for each conversation element, so caching the result of that method will eliminate the unnecessary calculations and improve the memory usage of `ConversationFragment`.
2025-07-18 16:36:17 -04:00
Greyson Parrelli
1cef53d82e Truncate message length based on utf8-byte size. 2025-07-18 16:27:41 -04:00
Alex Hart
84c6719d03 Attempt to heal if we have everything we need but no entitlement. 2025-07-18 16:58:24 -03:00
Cody Henthorne
e0df5e6df0 Exclude disappearing attachments from archive size estimation. 2025-07-18 15:57:35 -04:00
Michelle Tang
eae0b43858 Generalize device authentication education sheet for backups. 2025-07-18 13:03:49 -04:00
Alex Hart
b188c45cd9 Do not include view-once media in regular message backups. 2025-07-18 12:10:11 -03:00
Alex Hart
36de1284c7 Allow user to rotate AEP. 2025-07-18 10:36:49 -03:00
Greyson Parrelli
a9455b95ac Inline long text attachments into backup files. 2025-07-17 16:50:22 -04:00
Miriam Zimmerman
6553c416f8 Revert attempts to fix broken camera issue 2025-07-17 15:30:06 -04:00
Jim Gustafson
b0d89ccc97 Update to RingRTC v2.55.0 2025-07-17 14:53:06 -04:00
Alex Hart
a6761127ac Do not refresh on concurrent matching upload states. 2025-07-17 13:49:00 -03:00
Alex Hart
7918c3dabd Add log lines for state refresh. 2025-07-17 13:47:06 -03:00
Michelle Tang
85ff27d830 Fix missing chat folder crash. 2025-07-16 14:34:50 -04:00
Cody Henthorne
8ee80b0d27 Fix backup message job cancel and start bugs. 2025-07-16 14:21:59 -04:00
Michelle Tang
141faf3fb6 Avoid uploading story-only media to backups. 2025-07-16 13:10:32 -04:00
lisa-signal
559539dc3b Create search functionality for debug log page. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
ded98c0d50 Fix rules for link+syncing expiring messages. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
4b75b9f1d6 Improve reconciliation task to reduce possible churn. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
cfa96f4737 Remove internal-only crash during archive status reset. 2025-07-16 12:42:36 -04:00
Cody Henthorne
2148eb8760 Prevent IMO retries when network unavailable. 2025-07-16 12:42:36 -04:00
Cody Henthorne
269d5752c4 Fix add 1000 messages copy/paste error during compose conversion. 2025-07-16 12:42:36 -04:00
Cody Henthorne
9180917b7c Adjust domain scrubbing. 2025-07-16 12:42:36 -04:00
Cody Henthorne
1a1e1ea631 Select first backup subscription if selection is unavailable. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
015a34f8d6 Only enqueue attachment archive syncing jobs if the user backs up media. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
e6aed8534a Use libsignal for deriving thumbnail transit keys. 2025-07-16 12:42:36 -04:00
AnonAlly
f7d14c77b1 Migrate ChangeNumberFragment to compose. 2025-07-16 12:42:36 -04:00
Greyson Parrelli
3c07a731c4 Add additional checks for serviceId during sending flow. 2025-07-16 12:42:36 -04:00
Alex Hart
049e9460a0 Ensure we are restoring media per spec with full media and thumbnail rules. 2025-07-16 12:42:36 -04:00
jeffrey-signal
1137bbd8a5 Fix missing prompt to save PIN to password manager on Android < 14.
On Android versions older than 14, users were not prompted to save their PIN to their device password manager due to an autofill session conflict.

The `CreateSvrPinFragment.input` field triggered an autofill session, so when `ConfirmSvrPinFragment` later attempted to save the PIN using `CredentialManager`, the system incorrectly assumed the credential had already been saved by autofill and skipped the save prompt.
2025-07-16 12:42:36 -04:00
lisa-signal
24360a41ff Change debug log from RecyclerView to WebView. 2025-07-16 12:42:36 -04:00
Alex Hart
b45fb28dbe Wire in NetworkResult for Types. 2025-07-16 12:42:36 -04:00
Michelle Tang
7753aadbf0 Adjust turn on backups megaphone schedule. 2025-07-16 12:42:36 -04:00
Michelle Tang
359f473b59 Add verify key megaphone. 2025-07-16 12:42:35 -04:00
FineFindus
c6afa17330 Preserve text when toggling view once.
Fixes an issue, where the written text would be lost if a user toggled view
once in the `AddMessageDialogFragment`. This is unexpected, as when toggling
view once from the `MediaReviewFragment` the previously written text is
preserved.
2025-07-16 12:42:35 -04:00
Alex Hart
11d6234d91 Do not run subscription check if override is set. 2025-07-16 12:42:35 -04:00
Jeffrey Starke
dbd79cd0a5 Bump version to 7.49.1 2025-07-15 18:08:38 -04:00
Jeffrey Starke
70698c7b23 Update baseline profile. 2025-07-15 18:04:23 -04:00
Jeffrey Starke
ffd57ca591 Update translations and other static files. 2025-07-15 18:00:57 -04:00
Jeffrey Starke
00781e34f8 Update translations and other static files. 2025-07-15 17:51:03 -04:00
Michelle Tang
661fc9dd9e Add check before running backup jobs. 2025-07-15 17:45:30 -04:00
gram-signal
0dbfdaa4a6 Use non-global remote config for usePqRatchet. 2025-07-11 11:48:42 -07:00
Alex Hart
c41d7c672d Bump version to 7.49.0 2025-07-10 09:26:25 -03:00
Alex Hart
43f11015c4 Update translations and other static files. 2025-07-10 09:20:40 -03:00
Alex Hart
f0335f0385 Print active session count while attempting APK Upgrade. 2025-07-10 09:12:48 -03:00
jeffrey-signal
a88394ffe4 Fix crash when attempting to clear pending GlideImage loads.
Hold a reference to the Glide RequestManager instead of creating a new instance when attempting to clear pending loads and free resources for the target.
2025-07-10 09:12:48 -03:00
Alex Hart
e6ca41c0f9 Avoid crash when not connected to the network. 2025-07-10 09:12:48 -03:00
jeffrey-signal
6d58e89c18 Prompt to save PIN to device password manager.
Fixes an issue where the system auto-fill could overwrite the Signal backup key saved to the device password manager with the Signal PIN. The PIN confirmation screen now explicitly uses `CredentialManager` to save the `Signal PIN` under a separate username from the `Signal Backups` key, allowing both credentials to be stored and auto-filled correctly.

- Add `com.google.android.libraries.identity.googleid` dependency so `CredentialManager` works on Android < 14.
- Prompt to save Signal PIN to credential manager after PIN is created/edited.
2025-07-10 09:12:48 -03:00
jeffrey-signal
ef874c4091 Show settings button in backup key save error dialog only when password manager settings are accessible.
To prevent crashes when the "go to settings" button is clicked in the backup key save to password manager error dialog, the "go to settings" button will only be displayed in cases where the intent resolves successfully.
2025-07-10 09:12:48 -03:00
Michelle Tang
177504a897 Fix database consistency test. 2025-07-10 09:12:48 -03:00
Michelle Tang
7d7c6c5130 Ensure story attachment data is deleted after expiration. 2025-07-10 09:12:48 -03:00
emir-signal
b42dcece48 Add support for call link epochs. 2025-07-10 09:12:48 -03:00
Greyson Parrelli
5d0f71e02c Fix duplicate numbers, remove shortcodes entirely. 2025-07-10 09:12:48 -03:00
Alex Hart
1ba34bb685 Remove trailing space from backup key transform. 2025-07-10 09:12:48 -03:00
adel-signal
06fda21143 Update to ringrtc 2.54.0 2025-07-10 09:12:48 -03:00
Alex Hart
06f90c73a9 Add view settings button to backup settings screen. 2025-07-10 09:12:48 -03:00
Cody Henthorne
5ce5326721 Migrate away from placeholder revision to support exporting pending approval groups. 2025-07-10 09:12:48 -03:00
Greyson Parrelli
dc8e93a9d3 Add additional debug info for the backups alpha. 2025-07-10 09:12:48 -03:00
Abdullah Emad
869b5aa3d5 Highlight all the message search matches.
It is expected that when a user search for a message, that all the
matches within the same messages are highlighted (if there are more than
one match) not just the first match. This is also consistent with how
the search in the desktop app is implemented.

Resolves #13960
2025-07-10 09:12:48 -03:00
Cody Henthorne
dfdb8f699a Fix group update item bugs caused by backup support changes. 2025-07-10 09:12:48 -03:00
Cody Henthorne
347005bec6 Fix benchmark test setup. 2025-07-10 09:12:48 -03:00
Alex Hart
a88fcd6e0b Close all previous activities when launching into the main activitiy from restore backups. 2025-07-10 09:12:48 -03:00
Alex Hart
943c1b0ac3 Bump version to 7.48.1 2025-07-10 09:11:15 -03:00
Alex Hart
4c604475e5 Update translations and other static files. 2025-07-10 09:10:32 -03:00
andrew-signal
a384bf5e35 Add REST fallback to RemoteConfig fetch. 2025-07-03 13:34:52 -04:00
Greyson Parrelli
45d8dbc35c Bump version to 7.48.0 2025-07-02 16:03:33 -04:00
Greyson Parrelli
78e6aa3021 Update translations and other static files. 2025-07-02 15:51:31 -04:00
Cody Henthorne
8b094de4bd Fix wrapping long buttons on registrationv3 screens. 2025-07-02 15:35:33 -04:00
Cody Henthorne
253c8ff2ff Fix db test leak warning. 2025-07-02 15:16:11 -04:00
Cody Henthorne
437b1a3d98 Restore timestamp instead of tier during manual registration remote backup restore flow. 2025-07-02 11:24:36 -04:00
andrew-signal
ec8bb17bff Rotate libsignal-net remote config flag name in anticipation of scale up. 2025-07-02 09:45:13 -04:00
andrew-signal
1bddd2815a Bump libsignal to v0.76.3. 2025-07-02 09:44:49 -04:00
Greyson Parrelli
f68c344c4b Clean up additional data when viewing view-once messages. 2025-07-01 17:00:49 -04:00
Greyson Parrelli
82fd8cf282 Fix lint. 2025-07-01 16:25:29 -04:00
Cody Henthorne
f540886bb8 Attempt to resend pending messages if job creation failed. 2025-07-01 13:02:03 -04:00
gram-signal
173983a1ab Use RemoteConfig for UsePqRatchet.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2025-07-01 13:02:03 -04:00
Greyson Parrelli
f6b74ad2a0 Replace MissingAddressError with more specific variants. 2025-07-01 13:02:03 -04:00
Greyson Parrelli
9317491321 Fix androidTest issue with deviceId generation. 2025-07-01 13:02:03 -04:00
Jordan Rose
1ce6aacec6 Add link preview support for raw images. 2025-07-01 13:02:03 -04:00
lisa-signal
3b0878f493 Prevent system from displaying -1 other groups in common when there is 0 group in common. 2025-07-01 13:02:03 -04:00
andrew-signal
b98e09aedd Revert "Rotate libsignal-net remote config." 2025-07-01 13:02:03 -04:00
Alex Hart
1732567128 Hide optimize storage if billing not available. 2025-07-01 13:02:03 -04:00
Alex Hart
64f854c29d Flow beta tag to next row if there isn't enough room. 2025-07-01 13:02:02 -04:00
jeffrey-signal
fdf1238905 Improve backup key password manager save error handling.
- Add "go to settings" button to missing credential manager error dialog.
- Add handling for disabled password manager save prompt on Android API <= 33.
2025-07-01 13:02:02 -04:00
andrew-signal
0a17cd1c99 Rotate libsignal-net remote config. 2025-07-01 13:02:02 -04:00
Alex Hart
f1ac2282ff Ensure proper thread snippet restore. 2025-07-01 13:02:02 -04:00
Alex Hart
7a0b7c045e Only display failure sheet if there is actually a failure reported. 2025-07-01 13:02:02 -04:00
Alex Hart
9725d98c4a Hide paragraph if not during manual restore. 2025-07-01 13:02:02 -04:00
Greyson Parrelli
68d3103e4c Bump version to 7.47.2 2025-07-01 13:01:42 -04:00
Greyson Parrelli
6064943b47 Update translations and other static files. 2025-07-01 13:00:31 -04:00
Cody Henthorne
6aab622c96 Fix edit messages showing as new notifications bug. 2025-07-01 12:57:44 -04:00
Greyson Parrelli
939f2f82b1 Fix crash when skipping in BetterCipherInputStream. 2025-07-01 12:50:16 -04:00
Greyson Parrelli
516b505059 Fix crash with missing sessions.
We were excluding prekey bundles if they were missing EC prekeys, but
that's a valid state to be in -- those aren't required, and we shouldn't
have been excluding them.
2025-07-01 12:49:31 -04:00
Cody Henthorne
4b9cac43a8 Bump version to 7.47.1 2025-06-26 15:25:02 -04:00
Cody Henthorne
25669fae4f Update translations and other static files. 2025-06-26 15:14:03 -04:00
Greyson Parrelli
fdd9e07918 Add internal tool to reset sender key state. 2025-06-26 15:07:39 -04:00
Greyson Parrelli
0f16be81b0 Bump libsignal to 0.76.0 2025-06-26 15:07:39 -04:00
Alex Hart
bc10cd0d03 Add check for <= 0 time duration for Never case. 2025-06-26 14:26:18 -03:00
Alex Hart
c75cafd5f5 Add click handling to choose backup type learn more. 2025-06-26 14:14:28 -03:00
Cody Henthorne
0947d5b7b5 Fix deadlock/ANR in IncomingMessageObserver and SignalWebSOcket. 2025-06-26 10:32:16 -04:00
Cody Henthorne
5126b76214 Bump version to 7.47.0 2025-06-25 16:33:26 -04:00
Cody Henthorne
5e6d69b6fb Update baseline profile. 2025-06-25 16:26:36 -04:00
Cody Henthorne
3381d37086 Update translations and other static files. 2025-06-25 16:21:32 -04:00
Greyson Parrelli
1c596490c9 Add link+sync support for the backup4 capability. 2025-06-25 16:14:32 -04:00
Cody Henthorne
a043b4e573 Try to run IncomingMessageObserver more aggressively. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
c0340be3ce Fix archive thumbnail decryption. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
b1063f69f9 Remove archive_transfer_file column. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
03dc014c08 Add the backup alpha build flavor. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
7b7e153281 Populate legacy locatorInfo fields. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
ec5452744d Allow normal attachments to be validated with plaintextHashes. 2025-06-25 16:14:32 -04:00
Greyson Parrelli
607b83d65b Validate plaintext hashes for archived attachments. 2025-06-25 16:14:31 -04:00
Greyson Parrelli
38c8f852bf Do most of the proto and database groundwork for the new mediaName. 2025-06-25 16:14:31 -04:00
Alex Hart
e705495638 Add 30 day reminder for manual backups.
Co-authored-by: Michelle Tang <mtang@signal.org>
2025-06-25 16:14:31 -04:00
Alex Hart
82531630c7 Add megaphone to prompt user to enable backups. 2025-06-25 16:14:31 -04:00
Alex Hart
322a9cd97a Suppress backup messaging if device is unregistered. 2025-06-25 09:47:59 -03:00
Alex Hart
63f038873b Add module dependency verification entries to support AS Narwhal stable release. 2025-06-25 09:45:55 -03:00
jeffrey-signal
143b8a6356 Fix crash when saving backup key to credential manager on Android 13 and earlier. 2025-06-24 17:03:20 -04:00
Alex Hart
6e0faee30f Remove launchMode from MainActivity. 2025-06-24 14:22:43 -03:00
Alex Hart
ccc4acdef9 Prevent "Free" tier from being upgraded in the background. 2025-06-24 11:11:32 -03:00
Cody Henthorne
1719122f5e Move restore messages out of durable job. 2025-06-24 08:49:31 -04:00
Greyson Parrelli
93161aa425 Only delete archived media from CDN 3. 2025-06-23 15:57:36 -04:00
Cody Henthorne
a181b35e8d Remove notification state cleanup based on displayed notifications. 2025-06-23 15:57:36 -04:00
jeffrey-signal
79de5f733f Prevent backup from being triggered while a restore is in progress. 2025-06-23 15:57:36 -04:00
Alex Hart
18f7a88d66 Add support filter after backup export failure. 2025-06-23 15:57:36 -04:00
jeffrey-signal
eeae9579d9 Fix progress bar stuck at 100% after successful backup restore. 2025-06-23 15:57:36 -04:00
jeffrey-signal
3b9dec5d42 Reset backup restore state after media restoration completes.
Fixes an issue where the SignalStore.backup.restoreState is never updated from RESTORING_MEDIA after completion of the media restoration.
2025-06-23 15:57:35 -04:00
andrew-signal
bbec0f5f48 Stop STOPPED typing indicator timers on message send. 2025-06-23 15:57:35 -04:00
Cody Henthorne
2723ea7975 Bump version to 7.46.1 2025-06-23 15:55:36 -04:00
Cody Henthorne
550ad7b56c Update baseline profile. 2025-06-23 15:47:24 -04:00
Cody Henthorne
3e4364ede7 Update translations and other static files. 2025-06-23 15:40:59 -04:00
Greyson Parrelli
abbcdbc6b9 Fix bug where network sink would sometimes be closed early. 2025-06-23 12:05:51 -04:00
Michelle Tang
c3ba07e5d7 Bump version to 7.46.0 2025-06-18 17:04:58 -04:00
Michelle Tang
1d239f7b56 Update translations and other static files. 2025-06-18 16:49:19 -04:00
Michelle Tang
f21edf7e3c Adjust iDEAL string. 2025-06-18 16:45:42 -04:00
Cody Henthorne
be45bdb562 Fix legacy restore options in new restore flows. 2025-06-18 16:45:42 -04:00
Michelle Tang
3ea2c01c15 Fix alignment in group title. 2025-06-18 16:45:42 -04:00
Michelle Tang
c75a6c9715 Sync backup tier to account record. 2025-06-18 16:45:42 -04:00
Alex Hart
fc1ed8934c Add custom 404 retry logic. 2025-06-18 16:45:42 -04:00
Cody Henthorne
5f603cd57a Improve message notification determination. 2025-06-18 16:45:42 -04:00
lisa-signal
b826352ce7 Add deprecation notification when build expires. 2025-06-18 16:45:42 -04:00
Greyson Parrelli
4f6a5de227 Refactor AttachmentCipherInputStream. 2025-06-18 16:45:41 -04:00
Cody Henthorne
9798f5cc7c Fix contact receive desugar crash on Android 6. 2025-06-18 16:45:41 -04:00
Miriam Zimmerman
5fd4ac0a06 Add logging to debug flipping from broken camera 2025-06-18 16:45:41 -04:00
Greyson Parrelli
ee0ee98cb6 Convert AttachmentCipherInputStream to kotlin. 2025-06-18 16:45:41 -04:00
Greyson Parrelli
2e79e257a3 Convert AttachmentCipherOutputStream to kotlin. 2025-06-17 16:26:20 -04:00
Greyson Parrelli
381c0e186f Move some cipher finalization into close() instead of flush(). 2025-06-17 16:26:20 -04:00
Michelle Tang
2c752ab5ba Avoid uploading onboarding story media during restore. 2025-06-17 16:26:20 -04:00
Alex Hart
b35b1db4bc Add wiring and notification for out of remote space error. 2025-06-17 16:26:20 -04:00
lisa-signal
fed6a0db5e Add enable contact permission banner when adding members to groups. 2025-06-17 16:26:20 -04:00
lisa-signal
e4d34c1cb6 Show verified safety number users in New Chat selection screen. 2025-06-17 16:26:20 -04:00
Greyson Parrelli
3571e22a79 Use different icon for 'fetching messages'.
Relates to #12904
2025-06-17 16:26:20 -04:00
Cody Henthorne
f051ec43d4 Update okhttp mockserver to 5.0.0-alpha.16 2025-06-17 16:26:20 -04:00
lisa-signal
f3857ed933 Prevent notification sound when voice recording. 2025-06-17 16:26:20 -04:00
lisa-signal
e7140a14a3 Show credit card input as LTR even for RTL languages. 2025-06-17 16:26:20 -04:00
Alex Hart
76e8695000 Convert AdvancedPinPreferencesFragment to compose. 2025-06-17 16:26:20 -04:00
lisa-signal
e62f14b6d3 Don't keep screen on for voice calls. 2025-06-17 16:26:20 -04:00
Alex Hart
c0dfe9bd53 Utilize ImageVector instead of Painter in SettingsScaffold. 2025-06-17 16:26:20 -04:00
Alex Hart
297c712c0f Change re-enable button color to Tonal. 2025-06-17 16:26:20 -04:00
lisa-signal
2f514622e0 Prevent trailing whitespace from being considered an edit. 2025-06-17 16:26:20 -04:00
Alex Hart
e6ea66f9c5 Add proper turn off backups string for paid tier. 2025-06-17 16:26:20 -04:00
Alex Hart
a5ff92b831 Add additional backup screen states. 2025-06-17 16:26:20 -04:00
Cody Henthorne
9bde632c6d Keep screen on and hold wake lock during important parts of backup restore. 2025-06-17 16:26:20 -04:00
Alex Hart
88f17e29aa Improve display of backup details when upload is in progress. 2025-06-17 16:26:19 -04:00
jeffrey-signal
eb620374e2 Fix resource leaks when uploading backup attachments. 2025-06-17 16:26:19 -04:00
Alex Hart
4a1baa75a8 Do not check if purchase was within last month. 2025-06-17 16:26:19 -04:00
jeffrey-signal
0ab77e159d Update notification message for large backup attachment uploads. 2025-06-17 16:26:19 -04:00
Alex Hart
a5496c692f Allow different accounts on same Google account to subscribe to backups. 2025-06-17 16:26:19 -04:00
Alex Hart
5c61832d82 Use now for watermarking. 2025-06-17 16:26:19 -04:00
Michelle Tang
f82b5eb72d Bump version to 7.45.3 2025-06-17 15:31:15 -04:00
Michelle Tang
f4d482c6ee Update translations and other static files. 2025-06-17 15:27:35 -04:00
Cody Henthorne
3c4f27f3f4 Fix profile fetch debounce bug when profile key changes. 2025-06-17 14:38:25 -04:00
Michelle Tang
01c106fd3e Bump version to 7.45.2 2025-06-16 12:53:57 -04:00
Michelle Tang
1e46c23cb9 Update translations and other static files. 2025-06-16 12:45:06 -04:00
Cody Henthorne
f245fc2b57 Force okhttp usage regardless of remote config. 2025-06-16 10:08:59 -04:00
Cody Henthorne
f9ea7be65f Bump version to 7.45.1 2025-06-13 15:30:10 -04:00
Cody Henthorne
96033c701b Update baseline profile. 2025-06-13 15:19:09 -04:00
Cody Henthorne
d42a276bc2 Update translations and other static files. 2025-06-13 15:14:11 -04:00
Cody Henthorne
5ff795b25d Bump to okhttp 5.0.0-alpha.16 2025-06-13 12:35:07 -04:00
Cody Henthorne
ca6a7baace Revert "Do not send app level keep-alives for unauth WebSocket."
This reverts commit 54a2628797.
2025-06-13 11:30:09 -04:00
Cody Henthorne
4df6f89fcf Fix potential crash in RemoteDeleteSendJob. 2025-06-12 10:54:18 -04:00
Greyson Parrelli
f4af90d3c5 Bump version to 7.45.0 2025-06-11 12:59:42 -04:00
Greyson Parrelli
09fd22d5c6 Update baseline profile. 2025-06-11 12:59:16 -04:00
Greyson Parrelli
e72c78be68 Update translations and other static files. 2025-06-11 12:49:13 -04:00
jeffrey-signal
cd18db613a Upload large backup attachments using a foreground service. 2025-06-11 12:02:23 -04:00
Greyson Parrelli
f8d8558cdb Convert AttachmentCipherTest to kotlin. 2025-06-11 11:58:40 -04:00
Michelle Tang
a46e1a451f Add foreign key reference to notification profile members. 2025-06-11 10:40:13 -04:00
Greyson Parrelli
f80d5d54ca Log inserted messageIds. 2025-06-10 16:51:57 -04:00
Cody Henthorne
2394972620 Add archive state indicator to media chat items. 2025-06-10 15:24:18 -04:00
Greyson Parrelli
536b599449 Remove deprecated PNI initialization job. 2025-06-10 14:35:48 -04:00
Alex Hart
9361acd72f Add check before setting downgrade flag. 2025-06-10 14:33:09 -03:00
Alex Hart
c4da61cd93 Add backup alert fragment tag to prevent concurrent opens. 2025-06-10 14:06:05 -03:00
Alex Hart
faa12bf377 Do not run subscription check if backups are disabled. 2025-06-10 13:51:50 -03:00
Alex Hart
8446c8d60f Show entire create backup sheet. 2025-06-10 13:44:33 -03:00
lisa-signal
844d511b72 Update edit message timestamp. 2025-06-10 12:14:42 -04:00
Cody Henthorne
178c468436 Prevent viewing backup key when unregistered. 2025-06-10 11:04:01 -04:00
Cody Henthorne
fa9229779e Fix copy for no backup key bottom sheet. 2025-06-10 10:53:30 -04:00
Cody Henthorne
38adb519e3 Improve speed/feedback of final steps of backup restore. 2025-06-10 10:32:45 -04:00
Alex Hart
37c3578329 Fix crash when accessing backup settings without being logged into Google. 2025-06-10 11:32:31 -03:00
Alex Hart
0c98439070 Add proper media ttl to restore screen. 2025-06-10 11:29:35 -03:00
Greyson Parrelli
5fe114c0eb Update archiveReconciliationSyncInterval to use global config. 2025-06-10 08:23:56 -04:00
Alex Hart
3588d646d2 Don't skip cancelled google purchase when checking subscription state in check job. 2025-06-09 20:21:06 -04:00
Alex Hart
dd5941b884 Add UX for out of remote storage space error presentation. 2025-06-09 20:21:06 -04:00
Alex Hart
1424dd6892 Add new dialog and sheet for handling offloaded media after a subscription is canceled or expires. 2025-06-09 20:21:06 -04:00
Cody Henthorne
18b5354944 Fix backup receipt crash. 2025-06-09 20:21:06 -04:00
Michelle Tang
bf4049d002 Fix lint. 2025-06-09 20:21:06 -04:00
Michelle Tang
59b747ee63 Add insufficient storage error message to link+sync. 2025-06-09 20:21:06 -04:00
Michelle Tang
e0726ce62f Fix missing profile avatars on restore. 2025-06-09 20:21:06 -04:00
Greyson Parrelli
828fa238c5 Update optimize media threshold to 7 days. 2025-06-09 20:21:06 -04:00
Greyson Parrelli
c8f389028e Ensure that we have the latest recipient copy after refreshing serviceIds.
Fixes #14163
2025-06-09 20:21:06 -04:00
lisa-signal
e2c32c1172 Fix multiselect to make in memory messages unselectable. 2025-06-09 20:21:06 -04:00
Michelle Tang
d20abec813 Update remove from group copy. 2025-06-09 20:21:06 -04:00
Greyson Parrelli
6edfcfdc4e Properly order attachment archive copies. 2025-06-09 20:21:06 -04:00
Greyson Parrelli
9860b990e5 Split archive deletes and reconciliations into separate jobs. 2025-06-09 20:21:06 -04:00
Greyson Parrelli
e7115a3a71 Switch the snapshot table to use incrementing versions. 2025-06-09 20:21:06 -04:00
lisa-signal
8c1e221afd Fix chat folder test. 2025-06-09 20:21:06 -04:00
lisa-signal
64ddc24720 Add test case for folder without chat. 2025-06-09 20:21:06 -04:00
Alex Hart
f9ee222d5d Add logging to check purchase information on RemoteBackupsSettings screen. 2025-06-09 20:21:06 -04:00
Alex Hart
23d8969015 Allow staging users to utilize internal backup switch. 2025-06-09 20:21:06 -04:00
Cody Henthorne
882a11c420 Calculate remote backup media quota usage locally. 2025-06-09 20:21:06 -04:00
Cody Henthorne
efa9dd6ec3 Fix path escaping issues.
Acknowledgment to Mouad & Ostorlab team for bringing this to our attention.
2025-06-09 20:21:06 -04:00
gram-signal
2767e298c4 API changes associated with update to libsignal 0.74.0 2025-06-09 20:21:06 -04:00
Michelle Tang
cc7b26d342 Fix read calls being shown as unread in backups. 2025-06-09 20:21:06 -04:00
jeffrey-signal
bf0c9ec1c7 Fix story reactions rendering improperly after restoring a backup. 2025-06-09 20:21:06 -04:00
Jim Gustafson
a9475ef153 Update to RingRTC v2.53.0 2025-06-09 20:21:05 -04:00
Michelle Tang
6b6980811b Use config to determine deletion lifespan in storage service. 2025-06-09 20:21:05 -04:00
Cody Henthorne
df2e88eaac Reset backup auth credentials on verification failure. 2025-06-09 20:21:05 -04:00
Alex Hart
297bca4c0f Fix archive export tests. 2025-06-09 20:21:05 -04:00
Alex Hart
b40c7d0e06 Add crossfade to action-mode toolbar. 2025-06-09 20:21:05 -04:00
Greyson Parrelli
9f54de8b39 Bump version to 7.44.2 2025-06-09 20:19:31 -04:00
Greyson Parrelli
976d3670c9 Update translations and other static files. 2025-06-09 20:19:00 -04:00
Greyson Parrelli
ef797f6ed8 Fix possible crash in story send. 2025-06-09 20:08:47 -04:00
Michelle Tang
59cc8c636d Ignore non-existing recipients in notification profiles storage sync. 2025-06-09 14:59:28 -04:00
Cody Henthorne
e147d4762d Bump version to 7.44.1 2025-06-06 13:57:51 -04:00
Cody Henthorne
d3b7219352 Update baseline profile. 2025-06-06 13:33:50 -04:00
Cody Henthorne
6abf55dc55 Update translations and other static files. 2025-06-06 13:29:01 -04:00
andrew-signal
7bd52e661d Refactor LibSignalChatConnection to use an explicit queue sendRequest handling while CONNECTING. 2025-06-06 08:14:20 -04:00
Cody Henthorne
89944d778b Bump version to 7.44.0 2025-06-04 15:42:03 -04:00
Cody Henthorne
357f82809a Update baseline profile. 2025-06-04 15:34:00 -04:00
Cody Henthorne
4222c70b4a Update translations and other static files. 2025-06-04 15:28:35 -04:00
lisa-signal
a66031cfce Fix chat folder to not show mute option if there isn't any chat. 2025-06-04 15:17:37 -04:00
Alex Hart
cf0dfdceb1 Display resume over cellular only if awaiting wifi. 2025-06-04 15:17:37 -04:00
Cody Henthorne
26b6019b28 Add internal backup stats tab. 2025-06-04 15:17:37 -04:00
Cody Henthorne
be4af1d560 Use dynamic quality and webp for archive thumbnail generation. 2025-06-04 15:17:37 -04:00
Michelle Tang
e3ee3d3dba Add notification profiles to storage service. 2025-06-04 15:17:37 -04:00
lisa-signal
07d961fc09 Fix cut off string in stories. 2025-06-04 15:17:37 -04:00
andrew-signal
7bcb3fa4d9 Make .tool-versions more specific. 2025-06-04 15:17:37 -04:00
Alex Hart
5e07e428c0 Fix instrumentation tests for message backups checkout flow. 2025-06-04 15:17:37 -04:00
Alex Hart
a85b8c49d9 Rework billing client integration. 2025-06-04 15:17:37 -04:00
Alex Hart
c3dcdd2010 Check network tier on export. 2025-06-04 15:17:37 -04:00
lisa-signal
74d9195d94 Fix action mode to use our own action mode toolbar instead of the built in androidx one. 2025-06-04 15:17:37 -04:00
lisa-signal
4db60ac63f Fix select all count in conversation list to be accurate. 2025-06-04 15:17:37 -04:00
jeffrey-signal
17bfb118d8 Update missing password manager dialog copy.
Updates the copy of the dialog that shows when attempting to save a backup key, but there is no credential manager configured on the device that supports saving passwords.
2025-06-04 15:17:37 -04:00
Alex Hart
d6dd2cc633 Polish backup type selection UI. 2025-06-04 15:17:37 -04:00
Alex Hart
dd2e219272 Add additional method tracing. 2025-06-04 15:17:37 -04:00
Alex Hart
88ec96bf2d Ensure connection status logs are kept for monitoring in debug logs. 2025-06-04 15:17:37 -04:00
Alex Hart
e17a4c80b2 Various UI polish items for backups. 2025-06-04 15:17:37 -04:00
Alex Hart
c0f3189a5b Add restore type check and download specific messaging. 2025-06-04 15:17:36 -04:00
Alex Hart
ac9f6c0b4a Fix spelling error. 2025-06-04 15:17:36 -04:00
Alex Hart
5903551cdb When we move to awaiting download state, display dialog. 2025-06-04 15:17:36 -04:00
Cody Henthorne
54a2628797 Do not send app level keep-alives for unauth WebSocket. 2025-06-04 15:17:36 -04:00
Cody Henthorne
0f2a066a30 Increase WebSocket idle delayed disconnect timings. 2025-06-04 15:17:36 -04:00
Alex Hart
2ff0df9ef6 Add skip dialog for during deletion. 2025-06-04 15:17:36 -04:00
Alex Hart
ad652dbaf2 Backup delete resub flow state fix. 2025-06-04 15:17:36 -04:00
lisa-signal
109d37c0d2 Fix audio duck due to MP4 gif. 2025-06-04 15:17:36 -04:00
jeffrey-signal
015fc9be2c Add ability to save remote backup key to device password manager.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-06-04 15:17:36 -04:00
Alex Hart
7616ec1fd2 Add rememberRecipientField composable function for reading live recipient fields. 2025-06-04 15:17:36 -04:00
Alex Hart
df170dac32 Polish deletion UX. 2025-06-04 15:17:36 -04:00
andrew-signal
ccce37d023 Bump to libsignal v0.73.2; revert ProGuard workaround. 2025-06-04 15:17:36 -04:00
Cody Henthorne
13ddd067ef Update to latest backup protos; Bump to libsignal v0.73.1 2025-06-04 15:17:36 -04:00
Miriam Zimmerman
340b94f849 Improve handling of missing camera during calls. 2025-06-04 15:17:36 -04:00
Greyson Parrelli
faf0b630c1 Move profile fetches to ProfileApi. 2025-06-04 15:17:36 -04:00
Cody Henthorne
b2f1867787 Exclude remote megaphones from local backups. 2025-06-04 15:17:36 -04:00
Greyson Parrelli
3bd4e39093 Add more backup cancellation checks. 2025-06-04 15:17:36 -04:00
Alex Hart
98e06081af Fix advanced pin settings routing. 2025-06-04 15:17:36 -04:00
Alex Hart
0d51faf618 Fix rendering after rotation. 2025-06-04 15:17:36 -04:00
Cody Henthorne
21e53e360e Remove Media tab from backup playground. 2025-06-04 15:17:36 -04:00
andrew-signal
9083359b33 Silence noisy double stack trace when a LibSignalChatConnection connect() is canceled. 2025-05-29 11:57:30 -04:00
Cody Henthorne
7b30ac1524 Fix various archive related attachment bugs.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2025-05-29 11:34:09 -04:00
andrew-signal
4b41d7afaa Only fetch profiles if we haven't fetched them in the last five minutes. 2025-05-29 11:00:15 -04:00
Alex Hart
38a9452de0 Cache product pricing for 24hrs. 2025-05-29 11:10:23 -03:00
Alex Hart
1bd638be46 Allow badge to update in toolbar when user changes their featured badge. 2025-05-28 16:26:39 -03:00
Cody Henthorne
e912bf3bc8 Attempt to fix reproducible build issue caused by EditProxyFragment. 2025-05-28 14:52:25 -04:00
Greyson Parrelli
13d7bc54d3 Re-run the e164 formatting application migration. 2025-05-28 13:33:58 -04:00
Greyson Parrelli
5bdf10b1bd Fix crash in storage sync validation. 2025-05-28 12:26:16 -04:00
Alex Hart
6a40f4a4f4 Perform backup deletion in a durable job. 2025-05-28 13:07:09 -03:00
lisa-signal
8900721064 Fix scheduled message logo from Signal logo to Calendar logo. 2025-05-28 09:59:53 -04:00
lisa-signal
7738e6bc9a Fix backtrack symbol to change from ic_arrow_left_24 to symbol_arrow_start_24. 2025-05-28 09:39:12 -04:00
Alex Hart
7c7833263a Fix possible crash in conversation activity. 2025-05-27 14:33:47 -03:00
Alex Hart
96d6a0e68d Launch checkout flow on renew press. 2025-05-27 13:20:08 -03:00
Greyson Parrelli
7c04b56a32 Fix validation errors around bad e164s in SSE's and merge events. 2025-05-27 10:29:13 -04:00
Jim Gustafson
5009e86d56 Update to RingRTC v2.52.3 2025-05-27 10:03:11 -04:00
Alex Hart
daa3e5d95a Convert InternalConversationSettings to compose. 2025-05-27 10:48:34 -03:00
Michelle Tang
6879778f4b Fix missing avatars in notifications. 2025-05-22 14:32:11 -04:00
Jeffrey Starke
de12691cfe Add new sticker pack preview screen.
Adds a new jetpack compose and kotlin implementation of the sticker pack preview screen, which will soon replace `StickerPackPreviewActivity.java` and `StickerPackPreviewViewModel.java`.
2025-05-22 11:23:23 -04:00
lisa-signal
dce883bcf5 Fix clear filter position. 2025-05-22 11:23:23 -04:00
Michelle Tang
be02c1bc0a Update editorconfig with new ktlint rules. 2025-05-22 11:23:23 -04:00
Cody Henthorne
52c7a9a214 Add copy media backup id to backup playground. 2025-05-22 11:23:23 -04:00
Alex Bakon
ea0b8fc594 Remove unused code. 2025-05-22 11:23:23 -04:00
Jeffrey Starke
15aa941436 Limit delete archived media requests to 1000 items at a time.
Fixes an error that occurs when attempting to delete all archived media caused by exceeding the API's 1000 item limit.
2025-05-22 11:23:23 -04:00
Alex Hart
8e92ddbd53 Fix skipping subsequent call links. 2025-05-21 15:49:20 -04:00
Michelle Tang
23669c3c37 Bump version to 7.43.1 2025-05-21 15:20:18 -04:00
Michelle Tang
ea970c1936 Update translations and other static files. 2025-05-21 15:17:26 -04:00
Cody Henthorne
52ffe4408d Fix NoSuchMethodError on CompletableFuture crash. 2025-05-21 15:14:03 -04:00
Michelle Tang
b753990ee3 Bump version to 7.43.0 2025-05-21 12:20:12 -04:00
Michelle Tang
9642e19d53 Update translations and other static files. 2025-05-21 12:02:05 -04:00
Michelle Tang
7dc4cb4ce7 Ensure default chat folder exists. 2025-05-21 11:33:13 -04:00
andrew-signal
4f6bedf323 Rotate key for libsignalWebSocket RemoteConfig. 2025-05-21 11:28:08 -04:00
Cody Henthorne
ca16d0e6f8 Fix decryption errors post remote restore. 2025-05-21 09:24:33 -04:00
Cody Henthorne
690b171d57 Default remote backups to daily. 2025-05-21 08:58:17 -04:00
Alex Bakon
2254b7f680 Remove unused CdsiSocket class. 2025-05-21 07:49:04 -04:00
andrew-signal
a6540880c9 Cancel chatConnectionFuture when we get disconnect() while CONNECTING. 2025-05-21 07:43:18 -04:00
andrew-signal
e7e59d9481 Bump to libsignal v0.73.0 2025-05-21 07:41:02 -04:00
lisa-signal
b5b71c6464 Fix ability to remove link preview without changing message text. 2025-05-20 15:47:07 -04:00
lisa-signal
437a1755ce Fixed color of Get started text. 2025-05-20 15:33:19 -04:00
Cody Henthorne
14dbaa7d05 Prevent safety number changes during quick restore flow. 2025-05-20 15:14:29 -04:00
Alex Hart
58e462de06 Fix scrolling highlight on backups checkout page. 2025-05-20 16:10:43 -03:00
Alex Hart
b6b6f7a527 Allow free tier subscription if Google Play Billing is not available. 2025-05-20 16:09:43 -03:00
Alex Hart
09e47dba3a Add support for cancelling an in-progress archive upload.
Co-authored-by: Jeffrey Starke <jeffrey@signal.org>
2025-05-20 15:46:24 -03:00
Cody Henthorne
3751052697 Force new auth WebSocket during various IMO recovery flows. 2025-05-20 14:42:54 -04:00
Cody Henthorne
da639d086f Attempt to fix duplicate e164s due to short codes. 2025-05-19 14:45:34 -04:00
Sagar
59a9a38c1f Fix country code filtering by removing "+" prefix handling.
Closes #14137
2025-05-19 14:45:34 -04:00
Alex Hart
dd634343d7 Change button size on backups management screen. 2025-05-19 14:45:34 -04:00
Alex Hart
7ee1b1386b Backups ui polish. 2025-05-19 14:45:34 -04:00
Alex Hart
0e4c09224c Ensure all billing states are emitted. 2025-05-19 14:45:34 -04:00
Alex Hart
fc5aae34f3 Add cancellation support and renew support for canceled subscriptions. 2025-05-19 14:45:34 -04:00
Alex Hart
1aa2c85edd Fix alignment of progress spinner when waiting for network.: 2025-05-19 14:45:34 -04:00
Alex Hart
a6bfeebb24 Add UI for when the user's grace period expires or while they are in the grace period. 2025-05-19 14:45:34 -04:00
Alex Bakon
5e9824a180 Update test client prekey usage to include kyber keys. 2025-05-19 14:45:34 -04:00
Cody Henthorne
3644466263 Bump version to 7.42.2 2025-05-19 14:44:07 -04:00
Cody Henthorne
e9b43e7c25 Update baseline profile. 2025-05-19 14:43:05 -04:00
Cody Henthorne
e9e53d6d84 Update translations and other static files. 2025-05-19 14:38:15 -04:00
Cody Henthorne
03f2feb335 Fix megaphone missing asset crash. 2025-05-19 14:31:48 -04:00
Cody Henthorne
3b657ea7bd Bump version to 7.42.1 2025-05-16 13:32:56 -04:00
Cody Henthorne
2635ffcbc9 Update baseline profile. 2025-05-16 13:29:24 -04:00
Cody Henthorne
927c079cc4 Update translations and other static files. 2025-05-16 13:23:44 -04:00
Cody Henthorne
a2f7afcb68 Detect and recycle WebSockets stuck in connecting state. 2025-05-16 13:13:32 -04:00
Alex Hart
b6c033b075 Fix timer updating on chats list. 2025-05-15 13:52:18 -03:00
Jeffrey Starke
31d0b81624 Sticker Management v2 - Exit multi select mode after all items are deselected.
To match the behavior of the conversations and messages screens.
2025-05-15 11:08:08 -04:00
Cody Henthorne
96ece3f424 Allow REST fallback via remote config. 2025-05-15 10:52:36 -04:00
Alex Hart
2bc9926d97 Fix crash when backing out of archive. 2025-05-15 11:40:00 -03:00
Alex Hart
f1537cb8a9 Fix rationale dialog height on small devices. 2025-05-15 11:30:23 -03:00
andrew-signal
af8dee9c38 Bump to libsignal v0.71.1 2025-05-15 10:28:45 -04:00
Cody Henthorne
39f78273c0 Async start network and message retrieval. 2025-05-15 09:22:46 -04:00
Michelle Tang
d66a0f618d Bump version to 7.42.0 2025-05-14 17:35:09 -04:00
Michelle Tang
497a8188fd Update translations and other static files. 2025-05-14 17:20:57 -04:00
Jeffrey Starke
f3a475d0c8 Sticker management v2 – Improve list animations and state transitions.
- Uninstall selected packs in a single database transaction to avoid UI flickering.
- Add section header keys to prevent them from animating wildly while scrolling.
2025-05-14 17:10:41 -04:00
Michelle Tang
8b828677de Rotate libsignal net config flag. 2025-05-14 16:43:17 -04:00
Alex Hart
a050b37f3a Remove bank selection from iDEAL. 2025-05-14 16:43:17 -04:00
Doug Melton
c865ed0cdc Improve handling of 12/24 hour timestamps on configuration change.
This fixes an edge case seen on ConversationFragment, where if the
device time format is switched between 12/24 hour format while the app
is running, the old time format will still be displayed when the app
is resumed.

This is due to a design flaw in `DateTimeFormatter.ofLocalizedTime`,
where the time format is statically cached and not updated upon
configuration change. The `LocalTime.formatHours()` extension method
was updated to no longer rely on the misbehaving `ofLocalTime` method.

In addition, `ConversationMessaageComputeWorkers.recomputeFormattedDate`
was designed to skip recomputing non-relative timestamps. This works
in most cases but not this specific edge case. A `force: Boolean` flag
was added to force all items to be updated. And the `force = true` flag
was passed upon `onResume` of the fragment.

Closes #14121
2025-05-14 16:43:17 -04:00
Alex Hart
918b792d83 Fix filter display when returning to conversation list from another tab. 2025-05-14 16:43:17 -04:00
Alex Hart
28ecb37103 Add additional logging for stopped processing. 2025-05-14 16:43:17 -04:00
Alex Hart
7c43462771 Disconnect groupCall object when network is unavailable. 2025-05-14 16:43:17 -04:00
Cody Henthorne
7e00739240 Remove MMS related encryption error messaging. 2025-05-14 16:43:17 -04:00
Cody Henthorne
feae417af5 Flag username for restore on re-register. 2025-05-14 16:43:17 -04:00
Michelle Tang
e5d55418ac Restore chat colors after backup. 2025-05-14 16:43:17 -04:00
Cody Henthorne
5d8e0e370d Fix pnp settings not properly syncing or dynamically updating. 2025-05-14 16:43:17 -04:00
Michelle Tang
e2bffd0fd3 Fix mentions being displayed as obj. 2025-05-14 16:43:17 -04:00
Alex Hart
8d2979d8ce Fix camera rotation / phone orientation syncing. 2025-05-14 16:43:17 -04:00
Jeffrey Starke
288eda5bb1 Add support for animated images to GlideImage.
Our GlideImage implementation doesn't support animated images, because it loads them as bitmaps and therefore only displays the first image frame as a static image. This change works around that issue by having GlideImage wrap an ImageView to handle cases where we need to display animated images.
2025-05-14 16:43:17 -04:00
Cody Henthorne
fb111619d7 Downgrade notify of key warning to info. 2025-05-14 16:43:17 -04:00
Alex Hart
fb68f3fed1 Work around off-by-one error causing thin line to display when it shouldn't. 2025-05-14 16:43:17 -04:00
Alex Hart
791f1677fa Update RecyclerView to 1.4.0 2025-05-14 16:43:17 -04:00
Alex Hart
632b76081a Fix tab scroll-to-top on click. 2025-05-14 16:43:16 -04:00
Alex Hart
a474666ea7 Hide create call link button while in multiselect mode. 2025-05-14 16:43:16 -04:00
Greyson Parrelli
b3c9ec9691 Migrate to new SVR2 enclave.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-05-14 16:43:16 -04:00
Cody Henthorne
778db277c8 Update retrieve profile job. 2025-05-14 16:43:16 -04:00
Michelle Tang
1800507604 Add beta label to backups. 2025-05-14 16:43:16 -04:00
Alex Hart
b0aee1db05 Add proper title to expiration sheet. 2025-05-14 16:43:16 -04:00
Alex Hart
919cbbd7ca Use dispatch queue and join to ensure single-threaded requests. 2025-05-14 16:43:16 -04:00
Cody Henthorne
93403a0d2c Implement stop/resume media restore and update restore over cellular. 2025-05-14 16:43:16 -04:00
Jeffrey Starke
9867fa3f50 Add round checkbox composable.
Adds `RoundCheckbox` composable, which is styled to match the appearance of the other view checkboxes used in the app.
2025-05-14 16:43:16 -04:00
Michelle Tang
b79ec79644 Fix backups not being scheduled. 2025-05-14 16:43:16 -04:00
Cody Henthorne
961e9fd4b9 Fix shortcut update job crash for old installs without an aci. 2025-05-14 16:43:16 -04:00
Alex Hart
6d04c8ba42 Remove MainListHostFragment and rescope list vms to the activity. 2025-05-14 16:43:16 -04:00
andrew-signal
bc94a92f68 Remove pendingResponses; libsignal-net now completes futures with disconnectReason. 2025-05-14 16:43:16 -04:00
andrew-signal
9b9888565b Bump to libsignal v0.71.0. 2025-05-14 16:43:16 -04:00
Alex Hart
a2a3dd28ee Remove activity override in favour of alias down the road. 2025-05-14 16:43:16 -04:00
Jeffrey Starke
844dec06b1 Delete old/unused sticker management v1 code.
Deletes the old code related to sticker management v1 and removes the v2 prefix from the new classes.
2025-05-14 16:43:16 -04:00
Sagar
5306a9dd7a Fix system emoji not showing in video call reactions. 2025-05-14 16:43:16 -04:00
Sagar
cdd595432b Update header on recipient change. 2025-05-14 16:43:00 -04:00
Alex Hart
fabec719ab Prevent multiple activity instances and fix strange launch behavior. 2025-05-06 17:58:48 -04:00
Jeffrey Starke
04c14a82be Sticker management v2 - Implement remaining functionality.
- Fix bottom action bar shadow clipping during visibility animations.
- Show snackbar after installing/uninstalling sticker packs.
- Navigate to sticker preview on row click.
- Add top app bar menu to enable multi-select mode.
- Start StickerManagementActivityV2 instead of the old StickerManagementActivity
2025-05-06 17:58:48 -04:00
Sagar
51851fa5fe Fix crash for leave gv1. 2025-05-06 17:58:48 -04:00
Jeffrey Starke
3c77a3d7aa Sticker management v2 - Implement multi-delete. 2025-05-06 17:58:48 -04:00
andrew-signal
7c9bab421a Pass down RemoteConfig for TLS minimum version enforcement to libsignal. 2025-05-06 17:58:48 -04:00
Michelle Tang
9d1960f065 Clear aep from clipboard after 60 seconds. 2025-05-06 17:58:48 -04:00
Sagar
ae4c0d1242 Add paging for getArchivedRecipients. 2025-05-06 17:58:48 -04:00
Alex Hart
df3396633b Add nav spacing to action bar in compact mode. 2025-05-06 17:58:48 -04:00
Michelle Tang
9aea264305 Fix backup dialog color. 2025-05-06 17:58:48 -04:00
Michelle Tang
866c232045 Convert InviteActivity to a fragment. 2025-05-06 17:58:48 -04:00
Alex Hart
524ffd9d79 Save search query to savedinstancestate. 2025-05-06 17:58:48 -04:00
Alex Hart
46ca979e59 Fix navigation bar offset. 2025-05-06 17:58:48 -04:00
Jeffrey Starke
c8bfc88bed Sticker management v2 - Implement multi-select. 2025-05-06 17:58:48 -04:00
Sagar
030678b029 Fix UI update on non-UI thread exception. 2025-05-06 17:58:48 -04:00
Sagar
e4b99e5cef Reapply query after contact refresh. 2025-05-06 17:58:48 -04:00
andrew-signal
367c0d0a8d Rotate libsignal-net trial RemoteConfig. 2025-05-06 17:58:48 -04:00
Sagar
6dfe3b9c33 Fix color resource linking in SignalSymbols. 2025-05-06 17:58:48 -04:00
Michelle Tang
3aa4e75ef3 Remove wrapped fragments from settings. 2025-05-06 17:58:48 -04:00
Jim Gustafson
570a475229 Add new remote config support for calling audio configuration. 2025-05-06 17:58:48 -04:00
Cody Henthorne
2421bbdabb Fix invalid constraint handling sql when calling update. 2025-05-06 17:58:48 -04:00
Sagar
39756fd0d4 Avoid recording empty voice messages during an ongoing call. 2025-05-06 17:58:48 -04:00
Sagar
7a69c96746 Add accessibility label on buttons. 2025-05-06 17:58:48 -04:00
Sagar
f0acc39829 Hide camera toggle button in PIP mode. 2025-05-06 17:58:48 -04:00
Sagar
a27daddb70 Fix media player incorrect state when switching videos in album. 2025-05-06 17:58:48 -04:00
Jeffrey Starke
fd47d28026 Sticker management v2 - Implement context menus.
Adds the context menus that appear when long pressing available or installed sticker pack list items.
2025-05-06 17:58:48 -04:00
Jeffrey Starke
fe853f7b65 Add missing long press haptic feedback to composables.
As recommended by https://developer.android.com/develop/ui/compose/touch-input/pointer-input/tap-and-press

> As a best practice, you should include haptic feedback when the user long-presses elements.
2025-05-06 17:58:48 -04:00
Cody Henthorne
c89fbbe49f Fix unread count asserts in read sync tests. 2025-05-06 17:58:48 -04:00
Cody Henthorne
5453f101ff Fix BackupRestoreMediaJob not correctly paging through attachments. 2025-05-06 17:58:48 -04:00
Cody Henthorne
87cbe305f0 Support accounts without pins in AEP restore flows. 2025-05-06 17:58:48 -04:00
Jeffrey Starke
b298cb6f89 Prevent sending sticker attachments with a blank contentType. 2025-05-06 17:58:48 -04:00
Sagar
65e1ffaed4 Do not play a media item if it was deleted. 2025-05-06 17:58:47 -04:00
Sagar
43b5cb0641 Fix crash when leaving group. 2025-05-06 17:58:47 -04:00
Greyson Parrelli
f73d929feb Add additional CDN reconciliations to BackupMediaSnapshotSyncJob.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-05-06 17:58:47 -04:00
andrew-signal
85647f1258 Bump to libsignal v0.70.1 2025-05-06 17:58:47 -04:00
Sagar
9164668b8b Duck and recover external audio on video play. 2025-05-06 17:58:47 -04:00
Sagar
76aaf22429 Duck and recover external audio on voice note play. 2025-05-06 17:58:47 -04:00
Miriam Zimmerman
3d7162cdd3 Implement remote mute receive; Update to RingRTC v2.52.0
Co-authored-by: Alex Hart <alex@signal.org>
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-05-06 17:58:47 -04:00
Alex Hart
ed9a945f05 Fix issue where a test user could have a tier but no subscriber. 2025-05-06 17:58:47 -04:00
Cody Henthorne
f8d7c27583 Bump version to 7.41.3 2025-05-06 17:58:08 -04:00
Cody Henthorne
4e1072b8da Update baseline profile. 2025-05-06 16:53:06 -04:00
Cody Henthorne
057715226f Update translations and other static files. 2025-05-06 16:48:07 -04:00
Cody Henthorne
0f8fdda884 Revert "Remove message send REST fallback."
This reverts commit 7bdfec77ca.
2025-05-06 16:39:43 -04:00
Michelle Tang
393b88fb1f Bump version to 7.41.2 2025-04-30 15:55:00 -04:00
Michelle Tang
639c3ef883 Update translations and other static files. 2025-04-30 15:44:25 -04:00
Sagar
ad4142db1a Fix class cast crash for banners. 2025-04-30 15:38:41 -04:00
Cody Henthorne
5182987735 Fix cds crash by translating libsignal-net CDS protocol exception to IOException. 2025-04-30 15:37:47 -04:00
Michelle Tang
7f5bfc210b Fix story text previews. 2025-04-30 15:25:14 -04:00
Michelle Tang
daf87915d6 Bump version to 7.41.1 2025-04-28 16:49:36 -04:00
Michelle Tang
06996540cd Update translations and other static files. 2025-04-28 16:43:54 -04:00
andrew-signal
58ad3c746a Don't call single.onError with IOException in LibSignalChatConnection::sendRequest. 2025-04-28 12:46:52 -06:00
Sagar
a7ebe41570 Fix MediaSelectionViewModel crash. 2025-04-28 19:30:58 +05:30
Michelle Tang
b6cc702107 Add more logging for chat folders during storage sync. 2025-04-25 16:11:21 -04:00
Greyson Parrelli
9163c0ca4d Improve envelope timestamp validation. 2025-04-24 16:45:26 -04:00
Cody Henthorne
18290c1301 Bump version to 7.41.0 2025-04-24 16:15:11 -04:00
Cody Henthorne
347abe14ae Update baseline profile. 2025-04-24 16:09:51 -04:00
Cody Henthorne
eba55755ff Update translations and other static files. 2025-04-24 16:04:38 -04:00
Michelle Tang
7043558657 Add fixes for streamable videos. 2025-04-24 15:55:40 -04:00
Alex Hart
3aefd3bdc6 Prevent search state from clearing if user did not send a message. 2025-04-24 15:55:40 -04:00
Sagar
d6eb675fd0 Trim text before performing username search. 2025-04-24 15:55:40 -04:00
Alex Hart
ae90b2ecd9 Add support for conversation intent routing to MainActivity. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
9d593bcaff Fix chat folders flickering during drag and drop.
Fixes the UI flickering that occurs when reordering chat folders. The issue was caused by the ViewModel updating the database each time a list item position changes when we were already updating list order in the UI state manually at the same time.
2025-04-24 15:55:39 -04:00
Jeffrey Starke
62ed823e42 Sticker management v2 - Implement drag and drop.
Adds the ability to use drag and drop to rearrange installed sticker packs.
2025-04-24 15:55:39 -04:00
Cody Henthorne
a53479e50d Do not process messages while pending restore decision. 2025-04-24 15:55:39 -04:00
Cody Henthorne
91140c41fd Revert "Depend on libsignal-net's connection backoff instead of duplicating at app-level."
This reverts commit 1aed82d5b7.
2025-04-24 15:55:39 -04:00
Cody Henthorne
68f567b0b7 Fix a few random crashes when using libsignal-net. 2025-04-24 15:55:39 -04:00
Cody Henthorne
501e169210 Make e164 formatter more leinent with + prefix. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
09b818b048 Limit work that happens in LiveRecipientCache lock. 2025-04-24 15:55:39 -04:00
Sagar
7b3897cac6 Fix incorrect span indices for normalised search text. 2025-04-24 15:55:39 -04:00
Alex Hart
64239962fc Implement activated state for conversation list items. 2025-04-24 15:55:39 -04:00
Alex Hart
dac3a332d7 Remove main-thread usage of Recipient.self. 2025-04-24 15:55:39 -04:00
Sagar
83bbcd0618 Avoid message click listeners in Scheduled messages sheet. 2025-04-24 15:55:39 -04:00
andrew-signal
c7c0374c11 Add remote config for libsignal-net rollout. 2025-04-24 15:55:39 -04:00
Sagar
847f3bf08c Pause and play video correctly on TimeBar scrub drag. 2025-04-24 15:55:39 -04:00
Cody Henthorne
d02c610237 Fix unreads for new unread count scheme. 2025-04-24 15:55:39 -04:00
Cody Henthorne
8007045ca8 Convert change number back to WebSocket. 2025-04-24 15:55:39 -04:00
Sagar
901b4b469d Show correct time for Story view item. 2025-04-24 15:55:39 -04:00
Sagar
fa50696815 Ensure story viewed list in proper alphabetical order. 2025-04-24 15:55:39 -04:00
Alex Hart
be035456f7 Ensures chat folder is remembered when we leave page. 2025-04-24 15:55:39 -04:00
Sagar
252a4afa79 Update banner message for debug log. 2025-04-24 15:55:39 -04:00
Sagar
f5f56536bc Fix unread count for edited messages.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-04-24 15:55:39 -04:00
Michelle Tang
9e89d688f1 Send error message after cancelling a link+sync. 2025-04-24 15:55:39 -04:00
Sagar
2bb94089f7 Move to quoted message on quote preview click. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
3fc386d4a3 Add StickerPackId and StickerPackKey value classes. 2025-04-24 15:55:39 -04:00
Sagar
3779dfd290 Open keyboard for a Draft message. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
a5f766a333 Sticker management v2 - Implement sticker pack installation.
Adds the ability to install sticker packs using `StickerManagementActivityV2`.

When the install button is clicked, it will morph into an indeterminate progress bar, which will then animate into a checkmark once the installation completes successfully. Then a couple seconds later, the sticker pack row will be removed from the available sticker packs list.
2025-04-24 15:55:39 -04:00
Sagar
9f40bfc645 Replace glyphs in group update messages. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
919f03522a Upgrade to mobilecoin to 6.1.2 for 16kb alignment. 2025-04-24 15:55:39 -04:00
Cody Henthorne
8aa6d0bbca Include AEP in link device provisioning message. 2025-04-24 15:55:39 -04:00
Cody Henthorne
4304ae2a96 Add notification profile id for backupsv2. 2025-04-24 15:55:39 -04:00
Sagar
b4a9189068 Add close icon in search toolbar. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
ec6448bd1b Address possible invalid e164's in storage service splits. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
8c5811581e Add additional logging around storage batch sizes. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
4b4d3d33b1 Add additional safeguards around storage sync types. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
dd6c39f7eb Update TransferProgressIndicator to support indeterminate progress.
Showing exact progress for sticker pack downloads is more complicated than necessary. This PR updates `TransferProgressIndicator` to support displaying indeterminate progress.

#### Changeset
- Display indeterminate progress when installing a sticker pack.
- Remove cancel button from `AvailableStickerPackRow`.
- Decrease progress indicator size to match updated design.
2025-04-24 15:55:39 -04:00
Sagar
b246e62504 Avoid setting blank folder name. 2025-04-24 15:55:39 -04:00
Sagar
ba08399d35 Add accessibility labels for MainToolbar. 2025-04-24 15:55:39 -04:00
Sagar
3f1bb7eac7 Improve choose chats save button enabled state. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
a2a10fb0c1 Filter out bad E164s from GV1 groups. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
e45eabc714 Convert avatar migration to just be a force push. 2025-04-24 15:55:39 -04:00
Alex Hart
138dae0484 Align pin reminder skip behavior with iOS. 2025-04-24 15:55:39 -04:00
Alex Hart
893725e304 Dynamic split pane support via internal setting. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
2cfe321274 Convert StickerManagementRepository to kotlin.
Converts `StickerManagementRepository` to kotlin, so `getStickerPacks()` can return a `Flow` that emits updates after the database is changed.

This change simplifies the implementation of `StickerManagmentViewModelV2`, since `StickerManagementRepository.getStickerPacks()` will now automatically register and unregister the database observer.
2025-04-24 15:55:39 -04:00
Sagar
050dcb3eb1 Show correct message for empty archived screen. 2025-04-24 15:55:39 -04:00
Alex Hart
6ce01c6b0e Return an empty list instead of crashing when calling participantAcis. 2025-04-24 15:55:39 -04:00
Sagar
d2f44fee87 Avoid opening Media preview for not sent media. 2025-04-24 15:55:39 -04:00
Sagar
1228da8665 Fix transfer controls logic for checking isUpload. 2025-04-24 15:55:39 -04:00
Sagar
479632d6a8 Fix message info screen updates. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
619d2997f6 Add additional local metrics around storage service writes/reads. 2025-04-24 15:55:39 -04:00
Alex Hart
c5e795b176 Wire up nav rail fabs and fix animation playing on leaving a tab. 2025-04-24 15:55:39 -04:00
andrew-signal
8b7b184224 Tweak Network.transformAndSetRemoteConfig to match changes to libsignal's RemoteConfig spec. 2025-04-24 15:55:39 -04:00
Jeffrey Starke
48d26beb77 Add TransferProgressIndicator composable.
Adds a composable version of `TransferProgressView`.
2025-04-24 15:55:39 -04:00
Jeffrey Starke
3d1895500c Sticker management v2 - Display available and installed stickers. 2025-04-24 15:55:39 -04:00
Alex Hart
e442c27555 Separate sheet that requires payment flow. 2025-04-24 15:55:39 -04:00
Alex Hart
c3d61bece1 Add MainContentLayoutData object and proper scaffolding directive. 2025-04-24 15:55:39 -04:00
Alex Hart
49853b2cca Move background color selection into theme. 2025-04-24 15:55:39 -04:00
Sagar
cd838c4bee Fix Video call screen bottom sheet weird animation and height. 2025-04-24 15:55:39 -04:00
Greyson Parrelli
2e50699a2d Make system keyboard sticker detection more reliable. 2025-04-24 15:55:39 -04:00
Michelle Tang
fe97c969ae Ensure keystore operations happen on the same thread. 2025-04-24 15:55:39 -04:00
Alex Hart
c70a8d48a8 Hide keyboard when navigating back to chat list via toolbar. 2025-04-24 15:55:39 -04:00
Alex Hart
322ea97377 Add logging to BackupsSettingsViewModel to help track down data loading race. 2025-04-24 15:55:39 -04:00
Sagar
e3a402394f Avoid message failed notification when bubble thread is visible. 2025-04-24 15:55:39 -04:00
Sagar
16b4b3b6b7 Fix SearchView loosing focus. 2025-04-24 15:55:39 -04:00
Jim Gustafson
cd98ccbf00 Update to RingRTC v2.50.6 2025-04-24 15:55:39 -04:00
Sagar
eecb18b436 Add correct dialog message while blocking group. 2025-04-24 15:55:39 -04:00
Sagar
d13a803dcd Fix resend button visibility logic. 2025-04-24 15:55:39 -04:00
Alex Hart
bd03f21cdf Allow specification of whether we utilize windowTypes to lay out inset guidelines. 2025-04-24 15:55:39 -04:00
Alex Hart
b46d891183 Dialog color fixes. 2025-04-24 15:55:38 -04:00
Alex Hart
54191433e0 Remove ConversationTabs* and migrate to MainActivity. 2025-04-24 15:55:38 -04:00
Sagar
462fcdce16 Add glyph icons and SignalSymbol methods. 2025-04-24 15:55:38 -04:00
Greyson Parrelli
f68bb2dc88 Add storage service optimization to avoid manifest reads. 2025-04-24 15:55:38 -04:00
andrew-signal
fe70637140 Bump to libsignal v0.70.0 2025-04-24 15:55:38 -04:00
Greyson Parrelli
1028d293a0 Temporarily remove bad assertion in MessageBackupsFlowViewModel. 2025-04-24 15:55:38 -04:00
andrew-signal
74c6e76808 Add system HTTP proxy support to libsignal-net.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-04-24 15:55:38 -04:00
Greyson Parrelli
8e880fe117 Fix another syncing crash when no archived media exists. 2025-04-24 15:55:38 -04:00
Greyson Parrelli
6525662071 Fix syncing crash when no archived media exists. 2025-04-24 15:55:38 -04:00
Alex Hart
94d07f7012 Decouple InlineQueryViewModelV2 instance from activity, parent to fragment instead. 2025-04-24 15:55:38 -04:00
Sagar
e3297ab593 Add accessibility labels for GIF categories and correct emoji labels. 2025-04-24 15:55:38 -04:00
Sagar
3ff7f89ef6 Support hiding image caption with press and hold. 2025-04-24 15:55:38 -04:00
Sagar
ac1165c8fd Avoid blocking yourself. 2025-04-24 15:55:38 -04:00
Sagar
69153cf339 Support drag multi-selection for media gallery. 2025-04-16 11:22:23 -03:00
Sagar
852541c361 Avoid setting blank custom story name. 2025-04-16 11:22:23 -03:00
Sagar
399a613c25 Avoid sending blank story. 2025-04-16 11:22:23 -03:00
Sagar
003c1082a9 Avoid setting blank group names. 2025-04-16 11:22:23 -03:00
Jeffrey Starke
885588db86 Create new sticker management screen with tabbed interface.
Adds a skeleton implementation of `StickerManagementActivityV2`. This new activity is not currently connected to anything, but once complete it will replace `StickerManagementActivity`.
2025-04-16 11:22:23 -03:00
Milan Stevanovic
90a356b29d Fix incorrect embedded druation in certain MP4 files.
The root cause:
- some MP4 files come with H.264/H.265 streams which explicitly
  state their timescale. In such cases, it is wise that MP4 muxer
  adopts these values
- unfortunately, the recent trend has been that such values coming
  from video stream SPS (vui_parameters/timing info) are exorbitantly
  high - instead of being FPS *1000, they tend to be FPS * 100,000,000
- when trying to express the duration of the movie, the MP4 muxer
  normally tries to find the adequate timescale value which will
  fit both audio and video timescaling domains. The most suitable
  approach is that the LCM (least common multiplier) value is taken
  which mathematically will be the least disruptive.

HOWEVER:
- in cases when video and timescale numeric values are mutually 'odd',
  say 30*100,000,000 and 44100, the LCM ends up being a huge number,
  which outgrows the 32-bit storage capacity granted by the ISO MP4
  spec (MVHD box).

Problem solution:
1) identifying when the LCM timescale exceeds 32-bit storage space
2) scaling down its value by nearest larger 10X factor, which will
   guarantee its value fitting the 32-bit space. Given the afore
   mentioned video timescale factors, dividing by 10X is harmless
3) rescaling the duration 64-bit value based on the new timescale
2025-04-16 11:22:23 -03:00
Greyson Parrelli
597623d23a Update conscrypt to 2.5.3 2025-04-16 11:22:23 -03:00
Greyson Parrelli
2028afc941 Update aesgcmprovider to 0.0.4 2025-04-16 11:22:23 -03:00
Greyson Parrelli
915580ddd3 Enable backups v2 for internal users. 2025-04-16 11:22:23 -03:00
Greyson Parrelli
9432cca14a Fix some media not appearing in the gallery picker.
Works around the glide issue by using the straight URI when possible,
which allows glide to not have to keep a buffer. However, as soon as you
select it, it'll be an encrypted file, and we'll run into this same
issue where glide needs to keep a buffer for the input stream.

Related to #11014
2025-04-16 11:22:23 -03:00
Sagar
4e07ac0300 Fix InputAwareLayout incorrectly overriding height in bubble mode. 2025-04-16 11:22:23 -03:00
Sagar
ad21c349cd Update quote icon for scheduled send. 2025-04-16 11:22:23 -03:00
Greyson Parrelli
383da335d8 Do not send sync messages if we have no linked devices. 2025-04-16 11:22:23 -03:00
Jim Gustafson
ebdffc171e Update to RingRTC v2.50.5 2025-04-16 11:22:23 -03:00
Cody Henthorne
721b70b7b7 Fallback to local reglock data if available when registering a previously verified session. 2025-04-16 11:22:23 -03:00
Greyson Parrelli
556bcda58a Bump version to 7.40.2 2025-04-15 17:20:29 -04:00
Greyson Parrelli
4cb5bd9edd Fix potential bad state with change numbers. 2025-04-15 17:20:29 -04:00
Cody Henthorne
193f6460b0 Convert change number back to REST. 2025-04-15 17:05:19 -04:00
Alex Hart
f8d8c8af2d Add internal preference for large screen UI. 2025-04-15 15:29:37 -03:00
Alex Hart
efac6990c8 Apply display cutout for chat list. 2025-04-15 15:24:09 -03:00
Alex Hart
250ac481c8 Move cancel and retry to bg thread. 2025-04-15 13:15:16 -03:00
Michelle Tang
44bfa514a5 Fix member count description. 2025-04-15 11:05:58 -04:00
Alex Hart
74cedf99d8 Fix snackbar vertical offset on archive screen. 2025-04-15 11:33:11 -03:00
Alex Hart
4c81c321be Utilize root window insets for grabbing system bar sizes. 2025-04-15 11:14:16 -03:00
Alex Hart
d00fbcd886 Fix snackbar dismissal. 2025-04-15 10:25:47 -03:00
Alex Hart
416f80e745 Fix bad assumption about attachment count in validator. 2025-04-15 10:14:54 -03:00
Michelle Tang
6805826472 Bump version to 7.40.1 2025-04-11 11:03:55 -04:00
Michelle Tang
ce5d234186 Update translations and other static files. 2025-04-11 10:57:41 -04:00
Michelle Tang
c95c6e6ef0 Schedule storage sync job for add/remove from folder. 2025-04-11 10:49:33 -04:00
Cody Henthorne
904f8da8af Update settings for unregistered state. 2025-04-11 08:34:10 -04:00
Alex Hart
645e9bf16a Allow back press to return from archive to converation list. 2025-04-10 14:26:35 -03:00
Alex Hart
35235509ca Prevent wallpaper mode from overwriting navbar color. 2025-04-10 14:12:04 -03:00
Michelle Tang
021330a25d Fix adding to chats for chat folders. 2025-04-10 12:47:13 -04:00
Alex Hart
6613d5fccb Fix nav bar spacing and coloring. 2025-04-10 13:10:37 -03:00
Alex Hart
9d6e7560f0 Fix touch target for app toolbar avatar. 2025-04-10 12:14:18 -03:00
Alex Hart
09e36e0ed8 Fix 3 button nav styling. 2025-04-10 11:47:40 -03:00
Alex Hart
8dde5ccd2e Fix padding below toolbar in search mode with chat folders enabled. 2025-04-10 10:13:23 -03:00
Alex Hart
f1ed2156e3 Prevent scaffold from being used if we do not have flag enabled. 2025-04-10 10:00:58 -03:00
Michelle Tang
40b9a60f6c Bump version to 7.40.0 2025-04-09 16:54:03 -04:00
Michelle Tang
59a135a1db Update translations and other static files. 2025-04-09 16:53:42 -04:00
Michelle Tang
0123c17e7e Remove unnecessary boolean return for conversations. 2025-04-09 15:51:10 -04:00
Cody Henthorne
ac36eeb84d Use unauth WebSocket after quick restore for transfer mode decision. 2025-04-09 15:29:55 -04:00
Alex Hart
143b2b5bd5 Move live state into if statement for AvatarImage. 2025-04-09 15:29:54 -04:00
Michelle Tang
6006c047d8 Remove old deleted folders from storage service. 2025-04-09 15:29:54 -04:00
Alex Hart
94d5fe3e43 Fix how navigation bar colors are set and interacted with in MainActivity. 2025-04-09 15:29:54 -04:00
Alex Hart
e0ba8a1d60 Fix color issue on call toast popup. 2025-04-09 15:29:54 -04:00
Alex Hart
2f8b0ff3a8 Set corner radius of nav bar icons to half height. 2025-04-09 15:29:54 -04:00
Greyson Parrelli
4700846fad Align the libnative-utils to 16kb pages. 2025-04-09 15:29:54 -04:00
Greyson Parrelli
6ddf2ab5f8 Update to NDK r28 for 16kb page support. 2025-04-09 15:29:54 -04:00
Alex Hart
545a26ff04 Fix conversation nav bar click. 2025-04-09 15:29:54 -04:00
Sagar
f0f6b80f43 Prevent child clickable in message selection state. 2025-04-09 15:29:54 -04:00
Alex Hart
0227af199b Clear window insets listener when view is detached from window. 2025-04-09 15:29:54 -04:00
Alex Hart
970f5f2480 Add progress dialog support to bottom snackbar. 2025-04-09 15:29:54 -04:00
Sagar
13d0d25f77 Notify conversations for deleted stories. 2025-04-09 15:29:54 -04:00
Alex Hart
b64f3a48bf Add proper adaptive material app scaffolding. 2025-04-09 15:29:54 -04:00
Sagar
86ea3e8572 Fix thumbPositon jitter while editing video. 2025-04-09 15:29:54 -04:00
andrew-signal
f15a67c8b2 Remove outdated config check affecting proximity lock behavior during calling. 2025-04-09 15:29:54 -04:00
Alex Hart
659ae75a20 Fix content width shrinking megaphones. 2025-04-09 15:29:54 -04:00
Sagar
0d686b2f44 Fix Image expanded caption scroll to top. 2025-04-09 15:29:54 -04:00
andrew-signal
0d611cf4c9 Bump libsignal to v0.69.1. 2025-04-09 15:29:54 -04:00
Sagar
6afeb45f43 Remove duplicate error handling in MediaSelection. 2025-04-09 15:29:54 -04:00
Alex Hart
d81616d23c Prevent conversation re-launch on reconfiguration of screen. 2025-04-09 15:29:54 -04:00
Sagar
6ea63f3e34 Avoid sending blank replies and do not clear input when sending reactions. 2025-04-09 15:29:54 -04:00
Sagar
af52765821 Support opening scheduled document files. 2025-04-09 15:29:54 -04:00
Cody Henthorne
acbab9e736 Allow long text to be sent via notification replies. 2025-04-09 15:29:54 -04:00
Alex Hart
5bce2884a7 Add predictive back gesture support to MainActivity. 2025-04-09 15:29:52 -04:00
Alex Hart
b92998be13 Fix image loading for megaphones. 2025-04-09 15:27:46 -04:00
Michelle Tang
1339929de4 Update chat folder tests. 2025-04-09 15:27:46 -04:00
Alex Hart
b0cd27e203 Add compose megaphone stuff to MainBottomChrome composable. 2025-04-09 15:27:46 -04:00
Sagar
65e7c4c053 Support zoom for avatar preview. 2025-04-09 15:27:46 -04:00
Sagar
8d8519b52e Linkify story captions. 2025-04-09 15:27:46 -04:00
Sagar
9c95cfd64b Fix donation pills UI for large Font and other UI improvements. 2025-04-09 15:27:46 -04:00
Sagar
b0a903b17d Make FABs stack scrollable for small height in landscape mode. 2025-04-09 15:27:46 -04:00
Alex Hart
855b315067 Reimplement megaphone UI in compose. 2025-04-09 15:27:46 -04:00
Jeffrey Starke
aa7b61ecb1 Consolidate duplicated logic to retrieve groups in common.
Merges all of these into GroupsInCommonRepository:
- ConversationSettingsRepository.getGroupsInCommon()
- CallLinkIncomingRequestRepository.getGroupsInCommon()
- ContactSearchPagedDataSourceRepository.getGroupsInCommon()
- ReviewUtil.getGroupsInCommonCount()
- AboutSheetRepository.getGroupsInCommonCount()
2025-04-09 15:27:46 -04:00
Alex Hart
c9795141df Pass InAppPayments around by ID instead of passing the entire object. 2025-04-09 15:27:46 -04:00
andrew-signal
1aed82d5b7 Depend on libsignal-net's connection backoff instead of duplicating at app-level. 2025-04-09 15:27:46 -04:00
Michelle Tang
752ed93b6f Update blocked string for groups. 2025-04-09 15:27:46 -04:00
Ciphreon
de3088f706 Show "declined" for declined voice and video calls instead of "missed".
Closes #14081
Fixes #14080
2025-04-09 15:27:46 -04:00
Jeffrey Starke
2608e9165c Fix group member review avatar and "other groups in common" copy. (#4813)
- Fixes `ReviewBannerView` erroneously using the note to self icon instead of the current user's profile photo.
- Fixes the "other groups in common" copy, which was missing the word "other".
2025-04-09 15:27:46 -04:00
Cody Henthorne
1e0e165eaf Fix decryptionDrained flag if race for WebSocket state emission is lost. 2025-04-09 15:27:46 -04:00
Michelle Tang
eff90aaa64 Fix job checks when syncing folders with storage service id. 2025-04-09 15:27:46 -04:00
Jeffrey Starke
77078e1844 Add the ability to navigate to conversations by tapping groups in common rows. 2025-04-09 15:27:46 -04:00
Michelle Tang
5929021166 Fix null storageIds in chat folder crash. 2025-04-09 15:27:46 -04:00
andrew-signal
8317e2e055 Correct RemoteConfig to enable libsignalWebSocket for nightly builds. 2025-04-09 15:27:46 -04:00
Michelle Tang
eb1cf8d62f Add chat folder support to storage service. 2025-04-09 15:27:46 -04:00
Cody Henthorne
f6ecb572b1 Fix lint for IAP test and main toolbar. 2025-04-09 15:27:46 -04:00
Alex Bakon
8b9fc30b97 Migrate calls to deprecated libsignal methods. 2025-04-09 15:27:46 -04:00
Sagar
d65954c26f Improve AvatarImage to update on recipient changes. 2025-04-09 15:27:46 -04:00
Cody Henthorne
8a0e260061 Re-migrate delete account to WebSocket. 2025-04-09 15:27:46 -04:00
Jeffrey Starke
bb608dbfa7 Fix missing timestamps on undownloaded media messages. 2025-04-09 15:27:46 -04:00
Michelle Tang
ec5a7e1e48 Prevent recipient hot loop on main thread. 2025-04-09 15:27:46 -04:00
Sagar
6251dad6e0 Update MyStoryItem on profile change. 2025-04-09 15:27:46 -04:00
Sagar
3982f5a4db Remove prefix before username aci fetch. 2025-04-09 15:27:46 -04:00
Sagar
a8f8760a11 Support scroll for call link screens. 2025-04-09 15:27:46 -04:00
Sagar
fb571ffdbf fixup! Update profile initials after name change. 2025-04-09 15:27:46 -04:00
Sagar
dc2956d05b Update quoteIds for edited message and ignore stale messages in isQuoted. 2025-04-09 15:27:46 -04:00
Jeffrey Starke
85b19bfe23 Fix incorrectly oriented back navigation icons for top app bar RTL layouts.
Replace `symbol_arrow_left_24` with `symbol_arrow_start_24` (which has auto-mirroring enabled) for top app bar navigation back icons to properly support RTL layouts.
2025-04-09 15:27:46 -04:00
andrew-signal
5b04107447 Update to and integrate with libsignal v0.69.0. 2025-04-09 15:27:46 -04:00
Cody Henthorne
7a5790a6ce Attempt to reclaim username in more places during/after registration. 2025-04-09 15:27:46 -04:00
Jeffrey Starke
9d3f4ffa08 Add groups in common screen.
Adds a new screen to show which groups the user has in common with another user.
2025-04-09 15:27:46 -04:00
Sagar
bc2d4a0415 Fix badge bottomsheet color and scrolling. 2025-04-09 15:27:46 -04:00
Alex Hart
cc346351f7 Use state to support back pressed callback. 2025-04-09 15:27:46 -04:00
Cody Henthorne
fcc6032ee0 Generalize preventing WebSocket from connecting in various app states. 2025-04-09 15:27:46 -04:00
Cody Henthorne
ecb040ce98 Convert donations apis to WebSocket. 2025-04-09 15:27:46 -04:00
Sagar
2f9692a1a0 Prevent wrong closing animation for stories. 2025-04-09 15:27:46 -04:00
Sagar
042ab95738 Fix EmojiView scroll in bottomsheet. 2025-04-09 15:27:45 -04:00
Sagar
13be8d511c Focus on correct textfield when adding a description. 2025-04-09 15:27:45 -04:00
Cody Henthorne
7bdfec77ca Remove message send REST fallback. 2025-04-09 15:27:45 -04:00
Alex Hart
bc176b8c50 Fix application crash when failing to download backup types. 2025-04-09 15:27:45 -04:00
Alex Hart
68c0307b73 Upgrade compose bom to latest stable. 2025-04-09 15:27:45 -04:00
Michelle Tang
bc3d533b5f Bump version to 7.39.4 2025-04-09 14:49:18 -04:00
Michelle Tang
84bbac22cb Update translations and other static files. 2025-04-09 14:43:52 -04:00
Alex Hart
4d6c620f51 Sync toolbar state in tabs fragment. 2025-04-09 15:20:58 -03:00
4609 changed files with 248295 additions and 79612 deletions

View File

@@ -18,6 +18,8 @@ ktlint_standard_statement-wrapping = disabled
internal:ktlint-suppression = disabled
ktlint_standard_unnecessary-parentheses-before-trailing-lambda = disabled
ktlint_standard_value-parameter-comment = disabled
ktlint_standard_class-signature = disabled
ktlint_standard_function-expression-body = disabled
# Disable ktlint on generated source code, see
# https://github.com/JLLeitschuh/ktlint-gradle/issues/746

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

@@ -8,7 +8,7 @@ permissions:
pull-requests: write # to comment on PR
env:
NDK_VERSION: '27.2.12479018'
NDK_VERSION: '28.0.13004108'
jobs:
assemble-base:
@@ -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

View File

@@ -1,21 +1,20 @@
name: Reproducible Build Check
name: Check reproducible-build Dockerfile
on:
schedule:
- cron: '0 5 * * *'
- cron: "0 5 * * *"
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build image
run: cd reproducible-builds && docker build -t signal-android . && cd ..
- name: Test build
run: docker run --rm -v $(pwd):/project -w /project signal-android ./gradlew clean assemblePlayProdRelease
- uses: actions/checkout@v6
- name: Build image
run: |
cd reproducible-builds
docker build -t signal-android .
- name: Test build
run: docker run --memory=12g --rm -v "$(pwd)":/project -w /project signal-android ./gradlew --no-daemon --max-workers=1 -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=512m" -Dkotlin.compiler.execution.strategy=in-process bundlePlayProdRelease

1
.gitignore vendored
View File

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

View File

@@ -16,6 +16,7 @@
<option name="ALIGN_MULTILINE_TEXT_BLOCKS" value="true" />
<option name="IMPORT_LAYOUT_TABLE">
<value>
<package name="" withSubpackages="true" static="false" module="true" />
<package name="android" withSubpackages="true" static="false" />
<emptyLine />
<package name="androidx" withSubpackages="true" static="false" />

View File

@@ -1 +1,2 @@
java 17.0.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 {
@@ -12,6 +19,7 @@ plugins {
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.ktlint)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlinx.serialization)
id("androidx.navigation.safeargs")
id("kotlin-parcelize")
id("com.squareup.wire")
@@ -21,14 +29,29 @@ plugins {
apply(from = "static-ips.gradle.kts")
val canonicalVersionCode = 1534
val canonicalVersionName = "7.39.3"
val canonicalVersionCode = 1646
val canonicalVersionName = "7.73.1"
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",
"nightlyBackupSpinner",
"nightlyProdSpinner",
"nightlyProdPerf",
"nightlyProdRelease",
@@ -47,17 +70,11 @@ val selectableVariants = listOf(
"playStagingInstrumentation",
"playStagingRelease",
"websiteProdSpinner",
"websiteProdRelease"
"websiteProdRelease",
"githubProdSpinner",
"githubProdRelease"
)
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
@@ -68,20 +85,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"
@@ -89,12 +108,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")
@@ -134,8 +153,8 @@ android {
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = signalJavaVersion
targetCompatibility = signalJavaVersion
sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
}
packaging {
@@ -173,11 +192,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")
@@ -210,12 +232,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", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"1240acbd4aa26974184844c8a46b1022d3957ac8a76c1fd8f5b1a15141ee0708\"")
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\"")
@@ -231,7 +254,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", "false")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "false")
buildConfigField("boolean", "USE_STRING_ID", "true")
ndk {
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
@@ -253,7 +277,7 @@ android {
buildTypes {
getByName("debug") {
if (keystores["debug"] != null) {
if (debugKeystorePropertiesProvider.orNull != null) {
signingConfig = signingConfigs["debug"]
}
isDefault = true
@@ -286,6 +310,7 @@ android {
manifestPlaceholders["mapsKey"] = getMapsKey()
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Debug\"")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
getByName("release") {
@@ -358,18 +383,20 @@ android {
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"website\"")
}
create("nightly") {
val apkUpdateManifestUrl = if (file("${project.rootDir}/nightly-url.txt").exists()) {
file("${project.rootDir}/nightly-url.txt").readText().trim()
} else {
"<unset>"
}
create("github") {
dimension = "distribution"
versionNameSuffix = "-nightly-untagged-${getDateSuffix()}"
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "\"${apkUpdateManifestUrl}\"")
buildConfigField("boolean", "MANAGES_APP_UPDATES", "false")
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "null")
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"github\"")
}
create("nightly") {
dimension = "distribution"
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", "LINK_DEVICE_UX_ENABLED", "true")
}
create("prod") {
@@ -393,8 +420,9 @@ 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", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"97f151f6ed078edbbfd72fa9cae694dcc08353f1f5e8d9ccd79a971b10ffc535\"")
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\", \"BYhU6tPjqP46KGZEzRs1OL4U39V5dlPJ/X09ha4rErkm\"}")
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"ABSY21VckQcbSXVNCGRYJcfWHiAMZmpTtTELcDmxgdFbtp/bWsSxZdMKzfCp8rvIs8ocCU3B37fT3r4Mi5qAemeGeR2X+/YmOGR5ofui7tD5mDQfstAI9i+4WpMtIe8KC3wU5w3Inq3uNWVmoGtpKndsNfwJrCg0Hd9zmObhypUnSkfYn2ooMOOnBpfdanRtrvetZUayDMSC5iSRcXKpdlukrpzzsCIvEwjwQlJYVPOQPj4V0F4UXXBdHSLK05uoPBCQG8G9rYIGedYsClJXnbrgGYG3eMTG5hnx4X4ntARBgELuMWWUEEfSK0mjXg+/2lPmWcTZWR9nkqgQQP0tbzuiPm74H2wMO4u1Wafe+UwyIlIT9L7KLS19Aw8r4sPrXZSSsOZ6s7M1+rTJN0bI5CKY2PX29y5Ok3jSWufIKcgKOnWoP67d5b2du2ZVJjpjfibNIHbT/cegy/sBLoFwtHogVYUewANUAXIaMPyCLRArsKhfJ5wBtTminG/PAvuBdJ70Z/bXVPf8TVsR292zQ65xwvWTejROW6AZX6aqucUjlENAErBme1YHmOSpU6tr6doJ66dPzVAWIanmO/5mgjNEDeK7DDqQdB1xd03HT2Qs2TxY3kCK8aAb/0iM0HQiXjxZ9HIgYhbtvGEnDKW5ILSUydqH/KBhW4Pb0jZWnqN/YgbWDKeJxnDbYcUob5ZY5Lt5ZCMKuaGUvCJRrCtuugSMaqjowCGRempsDdJEt+cMaalhZ6gczklJB/IbdwENW9KeVFPoFNFzhxWUIS5ML9riVYhAtE6JE5jX0xiHNVIIPthb458cfA8daR0nYfYAUKogQArm0iBezOO+mPk5vCNWI+wwkyFCqNDXz/qxl1gAntuCJtSfq9OC3NkdhQlgYQ==\"")
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AHILOIrFPXX9laLbalbA9+L1CXpSbM/bTJXZGZiuyK1JaI6dK5FHHWL6tWxmHKYAZTSYmElmJ5z2A5YcirjO/yfoemE03FItyaf8W1fE4p14hzb5qnrmfXUSiAIVrhaXVwIwSzH6RL/+EO8jFIjJ/YfExfJ8aBl48CKHgu1+A6kWynhttonvWWx6h7924mIzW0Czj2ROuh4LwQyZypex4GuOPW8sgIT21KNZaafgg+KbV7XM1x1tF3XA17B4uGUaDbDw2O+nR1+U5p6qHPzmJ7ggFjSN6Utu+35dS1sS0P9N\"")
buildConfigField("String", "BACKUP_SERVER_PUBLIC_PARAMS", "\"AHYrGb9IfugAAJiPKp+mdXUx+OL9zBolPYHYQz6GI1gWjpEu5me3zVNSvmYY4zWboZHif+HG1sDHSuvwFd0QszSwuSF4X4kRP3fJREdTZ5MCR0n55zUppTwfHRW2S4sdQ0JGz7YDQIJCufYSKh0pGNEHL6hv79Agrdnr4momr3oXdnkpVBIp3HWAQ6IbXQVSG18X36GaicI1vdT0UFmTwU2KTneluC2eyL9c5ff8PcmiS+YcLzh0OKYQXB5ZfQ06d6DiINvDQLy75zcfUOniLAj0lGJiHxGczin/RXisKSR8\"")
@@ -403,10 +431,21 @@ 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") {
initWith(getByName("staging"))
dimension = "environment"
applicationIdSuffix = ".backup"
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Backup\"")
}
}
@@ -419,40 +458,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.name.contains("github", 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)
}
}
}
}
}
@@ -465,6 +504,14 @@ android {
java.srcDir(path)
}
}
applicationVariants.configureEach {
outputs.configureEach {
if (this is com.android.build.gradle.internal.api.BaseVariantOutputImpl) {
outputFileName = outputFileName.replace(".apk", "-$versionName.apk")
}
}
}
}
dependencies {
@@ -472,22 +519,26 @@ 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(":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"))
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(":lib:blurhash"))
implementation(project(":core:ui"))
implementation(project(":core:models"))
implementation(project(":core:models-jvm"))
implementation(project(":feature:camera"))
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.fragment.compose)
implementation(libs.androidx.appcompat) {
version {
strictly("1.6.1")
@@ -509,6 +560,8 @@ dependencies {
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.navigation3.runtime)
implementation(libs.androidx.navigation3.ui)
implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.androidx.lifecycle.livedata.ktx)
implementation(libs.androidx.lifecycle.process)
@@ -537,6 +590,7 @@ dependencies {
}
implementation(libs.google.play.services.maps)
implementation(libs.google.play.services.auth)
implementation(libs.google.signin)
implementation(libs.bundles.media3)
implementation(libs.conscrypt.android)
implementation(libs.signal.aesgcmprovider)
@@ -580,11 +634,14 @@ dependencies {
implementation(libs.rxjava3.rxandroid)
implementation(libs.rxjava3.rxkotlin)
implementation(libs.rxdogtag)
implementation(libs.androidx.credentials)
implementation(libs.androidx.credentials.compat)
implementation(libs.kotlinx.serialization.json)
"playImplementation"(project(":billing"))
"nightlyImplementation"(project(":billing"))
implementation(project(":lib:billing"))
implementation(project(":feature:media-send"))
"spinnerImplementation"(project(":spinner"))
"spinnerImplementation"(project(":lib:spinner"))
"canaryImplementation"(libs.square.leakcanary)
@@ -610,9 +667,12 @@ 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)
"perfImplementation"(libs.androidx.compose.ui.test.manifest)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
@@ -623,49 +683,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")
@@ -676,48 +698,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> {
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() + "en"
abstract class PropertiesFileValueSource : ValueSource<Properties?, PropertiesFileValueSource.Params> {
interface Params : ValueSourceParameters {
@get:InputFile
@get:Optional
@get:PathSensitive(PathSensitivity.RELATIVE)
val file: RegularFileProperty
}
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 {

View File

@@ -44,4 +44,7 @@
<issue id="OptionalUsedAsFieldOrParameterType" severity="ignore" />
<issue id="SameParameterValue" severity="ignore" />
<!-- Disables check for digital asset linking in manifest. It's not needed, since we are not using CredentialManager for passkey support. -->
<issue id="CredManMissingDal" severity="ignore" />
</lint>

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