Compare commits

...

263 Commits

Author SHA1 Message Date
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
1078 changed files with 30400 additions and 8887 deletions

View File

@@ -21,14 +21,16 @@ plugins {
apply(from = "static-ips.gradle.kts")
val canonicalVersionCode = 1553
val canonicalVersionName = "7.45.2"
val canonicalVersionCode = 1571
val canonicalVersionName = "7.52.2"
val currentHotfixVersion = 0
val maxHotfixVersions = 100
val keystores: Map<String, Properties?> = mapOf("debug" to loadKeystoreProperties("keystore.debug.properties"))
val selectableVariants = listOf(
"nightlyBackupRelease",
"nightlyBackupSpinner",
"nightlyProdSpinner",
"nightlyProdPerf",
"nightlyProdRelease",
@@ -212,8 +214,9 @@ android {
buildConfigField("String[]", "SIGNAL_CDSI_IPS", rootProject.extra["cdsi_ips"] as String)
buildConfigField("String[]", "SIGNAL_SVR2_IPS", rootProject.extra["svr2_ips"] as String)
buildConfigField("String", "SIGNAL_AGENT", "\"OWA\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"093be9ea32405e85ae28dbb48eb668aebeb7dbe29517b9b86ad4bec4dfe0e6a6\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"9314436a9a144992bb3680770ea5fd7934a7ffd29257844a33763a238903d570\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"093be9ea32405e85ae28dbb48eb668aebeb7dbe29517b9b86ad4bec4dfe0e6a6\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\"")
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\"")
@@ -235,6 +238,7 @@ android {
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")
ndk {
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
@@ -314,6 +318,7 @@ android {
isMinifyEnabled = false
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Spinner\"")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
create("perf") {
@@ -397,8 +402,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_LEGACY", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"2e8cefe6e3f389d8426adb24e9b7fb7adf10902c96f06f7bbcee36277711ed91\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY_LEGACY", "\"38e01eff4fe357dc0b0e8ef7a44b4abc5489fbccba3a78780f3872c277f62bf3\"")
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"2e8cefe6e3f389d8426adb24e9b7fb7adf10902c96f06f7bbcee36277711ed91\"")
buildConfigField("String", "SVR2_MRENCLAVE", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
buildConfigField("String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\"")
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\"")
@@ -413,6 +419,18 @@ android {
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\"")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
}
}
lint {
@@ -485,6 +503,7 @@ dependencies {
implementation(project(":device-transfer"))
implementation(project(":image-editor"))
implementation(project(":donations"))
implementation(project(":debuglogs-viewer"))
implementation(project(":contacts"))
implementation(project(":qr"))
implementation(project(":sticky-header-grid"))
@@ -542,6 +561,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)
@@ -718,13 +738,18 @@ fun getMapsKey(): String {
}
fun Project.languageList(): List<String> {
// In API 35, language codes for Hebrew and Indonesian now use the ISO 639-1 code ("he" and "id").
// However, the value resources still only support the outdated code ("iw" and "in") so we have
// to manually indicate that we support these languages.
val updatedLanguageCodes = listOf("he", "id")
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"
.sorted() + updatedLanguageCodes + "en"
}
fun String.capitalize(): String {

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