Compare commits

..

2952 Commits

Author SHA1 Message Date
Greyson Parrelli 439760e773 Bump version to 8.10.1 2026-05-07 16:17:23 -04:00
Greyson Parrelli 7560896e2d Update baseline profile. 2026-05-07 16:16:42 -04:00
Greyson Parrelli fe18def67e Update translations and other static files. 2026-05-07 16:08:50 -04:00
Alex Hart 413962a093 Bypass single-pane scaffold for RTL.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-07 15:42:26 -04:00
Alex Hart e518eca9a1 Do not include SMS recipients in letter header query.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-07 16:26:13 -03:00
Greyson Parrelli b70322b5a6 Fix baseline profile build. 2026-05-07 09:09:30 -04:00
Cody Henthorne 047516c80b Fix missed update item wallpaper bubble background corner radius. 2026-05-06 14:13:41 -04:00
Greyson Parrelli 0a45b9b5e3 Bump version to 8.10.0 2026-05-06 13:21:37 -04:00
Greyson Parrelli 99b0061127 Update translations and other static files. 2026-05-06 13:21:07 -04:00
jeffrey-signal 7b11cc1676 Use GroupId navigation args for conversation settings instead of Parcelable. 2026-05-06 13:08:39 -04:00
jeffrey-signal 663e0a616e Fix message bubble caption exceeding the media width. 2026-05-06 13:08:39 -04:00
Alex Hart d05338cee0 Align sync message tracking with iOS. 2026-05-06 13:08:39 -04:00
Alex Hart ce294dbc0b Add mapping-based lazycolumn / lazyrow. 2026-05-06 13:08:39 -04:00
andrew-signal d0efd8d4b0 Bump to libsignal v0.93.2 2026-05-06 13:08:38 -04:00
Greyson Parrelli c8875b5ad1 Limit R8 threads to 1 to fix non-deterministic output. 2026-05-06 13:08:38 -04:00
jeffrey-signal 188458f772 Open chat tab conversation settings in the detail pane where available. 2026-05-06 13:08:38 -04:00
jeffrey-signal ed7fd10749 Split MainNavigationRouter into focused domain-specific routers. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 2ffbf09b1b Fix lint crash by switching static-ips to properties. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 799e57dbe9 Fix bug allowing concurrent execution of jobs in the same queue.
There was an issue where a higher priority job in the same queue would
become the new most eligible job, even if the current most eligible job
was actively running.
2026-05-06 13:08:38 -04:00
Greyson Parrelli 572c11ee6d Update to AGP 9.1.1 2026-05-06 13:08:38 -04:00
Alex Hart 4dd5a4ee53 Reduce Compose overhead on lower-end device.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:38 -04:00
Alex Hart 370fca3c89 Block screen recording during registration by applying FLAG_SECURE.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:38 -04:00
Cody Henthorne d91f130238 Update color and styling of release note update items. 2026-05-06 13:08:38 -04:00
Greyson Parrelli bb20432417 Fix verification message archive restore. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 8138ea5f8f Show error dialog when ChallengeRequired has empty challenges list in change number flow. 2026-05-06 13:08:38 -04:00
Greyson Parrelli f235aa0599 Fix audio message timestamp truncation when playback speed toggle is visible. 2026-05-06 13:08:38 -04:00
jeffrey-signal c7d719e983 Fix message text sometimes overlapping the footer text.
Resolves signalapp/Signal-Android#13580
2026-05-06 13:08:38 -04:00
adel-signal cf71d43a2f Update DRED duration remote config away from global 2026-05-06 13:08:38 -04:00
Greyson Parrelli 1e70e825a3 Skip session switchover events from non-ACI contacts during backup export. 2026-05-06 13:08:38 -04:00
Greyson Parrelli cce1979716 Catch ForegroundServiceStartNotAllowedException in AttachmentProgressService listener. 2026-05-06 13:08:38 -04:00
Greyson Parrelli ad7e9c0fd7 Skip unlock animation to reduce screen lock dismiss latency. 2026-05-06 13:08:38 -04:00
Greyson Parrelli bd3e1e8059 Catch IllegalArgumentException when setting precomputed text with stale params. 2026-05-06 13:08:38 -04:00
Greyson Parrelli adb9e2173f Reroute ISE to NoSessionException. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 958c6f451f Fix infinite spinner on RegistrationLockFragment when server rejects registration lock token. 2026-05-06 13:08:38 -04:00
Greyson Parrelli ab090236a1 Switch username scanner to use CameraScreen. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 23698dbc28 Switch linked device scanner to use CameraScreen. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 0542262c49 Improve error handling resiliance. 2026-05-06 13:08:38 -04:00
Greyson Parrelli e2d4ca9a4c Improve StorageSyncJob job data reliability. 2026-05-06 13:08:38 -04:00
Greyson Parrelli e54f3f501a Fix improper index usage on story queries. 2026-05-06 13:08:38 -04:00
Cody Henthorne 638d4997d1 Improve chat open performance when thread pool is saturated.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:38 -04:00
Jim Gustafson cbd05c4dff Update to RingRTC v2.68.1 2026-05-06 13:08:38 -04:00
andrew-signal ef396b5758 Bump libsignal to v0.93.1 2026-05-06 13:08:38 -04:00
Alex Hart 1d36ecafe1 Clean up back-pressed behavior which could result in an empty backstack and crash.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
Co-authored-by: jeffrey-signal <jeffrey@signal.org>
2026-05-06 13:08:38 -04:00
Alex Hart 07329c5b0d Migrate VerifyDisplayFragment to compose. 2026-05-06 13:08:38 -04:00
Alex Hart 7fc4ec3006 Migrate donation gateway sheet to compose. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 9e7477bbeb Ensure that story error query uses proper index. 2026-05-06 13:08:38 -04:00
Alex Hart c83054906b Upgrade compose bom.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:38 -04:00
Cody Henthorne 011dc3495f Fix FiatMoneyTests run on non-US locales. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 41b833e788 Improve deletion in all media screen. 2026-05-06 13:08:38 -04:00
Cody Henthorne e11f7225d3 Fix crash and subsequent retry after upload to archive fails length check. 2026-05-06 13:08:38 -04:00
Cody Henthorne bb261a3d85 Favor internal channel ids for recipients over externally created ones. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 116f702be6 Add Live Queries tab to Spinner. 2026-05-06 13:08:38 -04:00
Cody Henthorne 4d09776277 Improve db usage around ensuring custom notification channel stae. 2026-05-06 13:08:38 -04:00
jeffrey-signal f32184c27e Fix padding around incoming caller name. 2026-05-06 13:08:38 -04:00
Greyson Parrelli 5fc037b324 Upgrade to SQLCipher 8.14.0 2026-05-06 13:08:38 -04:00
Cody Henthorne fc9d3e11e8 Only retrieve remote announcements during specific time window. 2026-05-06 13:08:38 -04:00
Cody Henthorne a951c7edfe Fix undownloaded voice note button UI bug. 2026-05-06 13:08:38 -04:00
Cody Henthorne 9d1714d452 Fix unique constraint crash when remapping recipients in name collision table. 2026-05-06 13:08:37 -04:00
Jordan Rose 9c2825f202 Consistently use core-util Hex utility class. 2026-05-06 13:08:37 -04:00
Greyson Parrelli a8969b34a4 Fix HUF currency formatting. 2026-05-06 13:08:37 -04:00
Cody Henthorne 1f59f3c2c4 Use correct wakelock for link device sync. 2026-05-06 13:08:37 -04:00
jeffrey-signal c6d91dce6e Convert ContextUtil to Kotlin. 2026-05-06 13:08:37 -04:00
jeffrey-signal 40c4633d41 Add utility method for resolving a FragmentActivity from Context. 2026-05-06 13:08:37 -04:00
Cody Henthorne edfe89683b Attempt to fix date headers overlaping scheduled messages. 2026-05-06 13:08:37 -04:00
Cody Henthorne cc3bedd154 Center release channel media bubbles in chat. 2026-05-06 13:08:37 -04:00
Cody Henthorne 56803a8850 Add internal preference to disable ANR induced crashing. 2026-05-06 13:08:37 -04:00
andrew-signal 2fdb712b38 Reattempt auth connection when network validated status changes. 2026-05-06 13:08:37 -04:00
Cody Henthorne 3d39045d1b Fix quickstart build failure. 2026-05-06 13:08:37 -04:00
Greyson Parrelli 90385b4e1c Fix flakey registration test. 2026-05-06 13:08:37 -04:00
Greyson Parrelli a02b66601c Remove support for END_SESSION message. 2026-05-06 13:08:37 -04:00
Alex Hart a83c57ff73 Use adaptive bitmap for dynamic shortcut icons to remove white border.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:37 -04:00
Alex Hart 3d063b38be Increase okhttp read/write timeouts for debug log uploads.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-05-06 13:08:37 -04:00
dependabot[bot] 03d20cb46a Update reproducible build dependencies. 2026-05-06 13:08:37 -04:00
Cody Henthorne 561186df90 Adjust auto-download checks. 2026-05-06 13:08:37 -04:00
Alex Hart fdcd21132c Update logic for processing qrs in CameraScreenViewModel. 2026-04-27 16:44:56 -04:00
Cody Henthorne 1043851423 Bump version to 8.9.1 2026-04-27 16:40:08 -04:00
Cody Henthorne 9bcbacc3d8 Update translations and other static files. 2026-04-27 16:40:08 -04:00
Cody Henthorne c2d7ee6926 Update release notes chat styling. 2026-04-27 16:39:59 -04:00
jeffrey-signal ceecacb47e Fix pull-to-refresh triggering when attempting to scroll up in contact search.
Resolves signalapp/Signal-Android#14742
2026-04-27 16:09:56 -04:00
Greyson Parrelli f4986273e4 Fix quote resolution failing for sent sync messages. 2026-04-27 13:34:52 -04:00
Greyson Parrelli 5f60adbe69 Update emoji_data.json 2026-04-27 13:34:52 -04:00
Alex Hart db6efeaf3d Revert "Migrate VerifyScanFragment to compose."
This reverts commit 9fa587b7e4.
2026-04-23 16:29:35 -03:00
Alex Hart 9b98b03971 Bump version to 8.9.0 2026-04-22 16:00:26 -03:00
Alex Hart dfbdf30535 Update baseline profile. 2026-04-22 15:49:27 -03:00
Alex Hart d567555047 Update translations and other static files. 2026-04-22 15:18:32 -03:00
Alex Hart 7658f6c36c Migrate ideal icon and copy. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 51bd2d51c6 Add missing remember keys for pane anchors and preferred width to fix stale layout on resize. 2026-04-22 15:12:47 -03:00
Jesse Weinstein a00978d96e Two trivial parameter renaming fixes
Closes signalapp/Signal-Android#14736
2026-04-22 15:12:47 -03:00
jeffrey-signal b700529c3b Fix stuck outgoing messages when there a no remaining linked devices. 2026-04-22 15:12:47 -03:00
jeffrey-signal 4051cf739c Fix crash when long-pressing a message when in conversation bubble mode. 2026-04-22 15:12:47 -03:00
Alex Hart 6031fc9113 Modify heuristic for split-pane determination. 2026-04-22 15:12:47 -03:00
Michelle Tang 454fe86dda Adjust spinner in phone number screen. 2026-04-22 15:12:47 -03:00
Michelle Tang 92927ec69b Clear existing key transparency data. 2026-04-22 15:12:47 -03:00
Alex Hart 9fa587b7e4 Migrate VerifyScanFragment to compose. 2026-04-22 15:12:47 -03:00
Jesse Weinstein 552361dff4 Remove unused StickyListHeaders dependency.
Closes signalapp/Signal-Android#14729
2026-04-22 15:12:47 -03:00
Greyson Parrelli 78a25a6186 Restrict setExactAndAllowWhileIdle to API >= 31. 2026-04-22 15:12:47 -03:00
Cody Henthorne 58fcc07578 Convert flakey MessageTable story instrumentation tests to unit tests. 2026-04-22 15:12:47 -03:00
Cody Henthorne 8cd92a400c Add debug and testing apis to Spinner. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 5d207932c9 Check instrumentation compilation in qa task. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 7c147982c4 Supply size to attachment form endpoint for archive backfill. 2026-04-22 15:12:47 -03:00
Alex Hart bde1a94122 Parallelize file deletion when turning off local backups. 2026-04-22 15:12:47 -03:00
Alex Hart 2b66d7485a Fix PiP on-back behavior.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-22 15:12:47 -03:00
Greyson Parrelli 017b902c3c Increase regV5 test coverage. 2026-04-22 15:12:47 -03:00
dependabot[bot] 357fbfa8aa Update reproducible build dependencies. 2026-04-22 15:12:47 -03:00
Michelle Tang 0ce667f4af Update enter aep for large screens. 2026-04-22 15:12:47 -03:00
jeffrey-signal c4d78243c8 Fix message backups education screen typo. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 51e12b2c76 Add flag to try different alarm for scheduled messages. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 4dea1d8aa1 Move storage service operations into the network module. 2026-04-22 15:12:47 -03:00
Greyson Parrelli 89c645dea3 Create a network module. 2026-04-22 15:12:47 -03:00
Greyson Parrelli cd01d5f0b7 Enable remote mute for external users. 2026-04-17 17:00:09 -04:00
Michelle Tang 8730e28282 Update restore selection for large screens. 2026-04-17 16:31:59 -04:00
Greyson Parrelli 82046dd55f Add support for remote backup restore to regV5. 2026-04-17 15:54:24 -04:00
Cody Henthorne 76e30ab09f Add verified group title tracking and syncing. 2026-04-17 15:52:56 -04:00
Greyson Parrelli f680256f1d Remove range from copyright. 2026-04-17 15:26:52 -04:00
Michelle Tang da590a3241 Update verification code screen. 2026-04-17 15:26:52 -04:00
Alex Hart 91f73b473f Sanitize donations webview intents.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-17 15:26:52 -04:00
Alex Hart 53023517b3 Add authority check to VoiceCallShare. 2026-04-17 15:26:52 -04:00
Alex Hart 7f831e6806 Convert SafetyNumberReview dialogs to compose. 2026-04-17 15:26:51 -04:00
Alex Hart 77a18111e1 Convert search mediator to compose / viewmodel pattern. 2026-04-17 15:26:51 -04:00
Alex Hart 2a699a23dd Fix backup key verification megaphone ignoring snooze by using lastSeenTime.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-17 15:26:51 -04:00
Alex Hart 5643ffc1a9 Trust zero bottom inset when gesture navigation is detected on API <= 29. 2026-04-17 15:26:51 -04:00
Cody Henthorne 90207b7dd7 Convert handful of recipient/db heavy androidTests to regular unit tests. 2026-04-17 15:26:50 -04:00
andrew-signal 5b7f668251 Bump libsignal to v0.92.2 2026-04-17 15:26:50 -04:00
adel-signal 798bf3ec3e Update to RingRTC v2.68.0 2026-04-17 15:26:50 -04:00
Michelle Tang 1c77c9d3fb Check for valid phone number. 2026-04-17 15:26:50 -04:00
Michelle Tang dd52d78ee0 Update country picker for large screen. 2026-04-17 15:26:50 -04:00
Michelle Tang 4b1acca119 Scroll to initial country. 2026-04-17 15:26:49 -04:00
Michelle Tang 195fe60927 Update phone entry for large screen. 2026-04-17 15:26:49 -04:00
Cody Henthorne f427f31303 Improve group change defensive checks and update logic. 2026-04-17 15:26:49 -04:00
Greyson Parrelli fa19ed7ffc Use viewmodel entry scoping in regV5. 2026-04-17 15:26:49 -04:00
jeffrey-signal e5e99d4e03 Bump version to 8.8.2 2026-04-17 15:21:14 -04:00
jeffrey-signal 26d1a7ada7 Update baseline profile. 2026-04-17 15:00:00 -04:00
jeffrey-signal 5dd11e26e4 Update translations and other static files. 2026-04-17 14:53:54 -04:00
Alex Hart 9877b13c6e Add ability to launch into message backups checkout.
Co-authored-by: Cody Henthorne <cody@signal.org>
2026-04-17 12:33:52 -03:00
Greyson Parrelli d7d0fd3622 Rotate backup megaphone flag. 2026-04-17 10:09:12 -04:00
Sten Tijhuis 2439506c05 Update GitHub Actions versions and pin to commit SHAs.
Closes signalapp/Signal-Android#14715
2026-04-16 19:07:34 -04:00
jeffrey-signal 6088024f76 Revert "Use existing okhttp client + package checks for web apk."
This reverts commit df406633ff.
2026-04-16 19:01:09 -04:00
jeffrey-signal 9decd81cfc Bump version to 8.8.1 2026-04-16 14:25:08 -04:00
jeffrey-signal f27773a4e3 Update baseline profile. 2026-04-16 13:27:52 -04:00
jeffrey-signal 8d8c974a19 Update translations and other static files. 2026-04-16 13:20:10 -04:00
Cody Henthorne 1a3e81dcb0 Fix bad apostrophe escaping in new safety tip strings. 2026-04-16 13:08:59 -04:00
jeffrey-signal d5f85c0661 Bump version to 8.8.0 2026-04-15 20:18:12 -04:00
jeffrey-signal 91458f2702 Update baseline profile. 2026-04-15 20:18:12 -04:00
jeffrey-signal 6650ffc2c6 Update translations and other static files. 2026-04-15 20:17:59 -04:00
Cody Henthorne ab0102a372 Do not force-apply P2P group changes unless the change adds or removes us.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-15 14:45:14 -04:00
Cody Henthorne a797bbf850 Improve web socket behaviors around keep alive and shutdown. 2026-04-15 14:45:14 -04:00
Cody Henthorne 3804890265 Stop putting e164s into SignalProtocolAddress. 2026-04-15 14:45:14 -04:00
Greyson Parrelli fcdbf93626 Improve regV5 restore flows. 2026-04-15 14:45:14 -04:00
Michelle Tang f1b61f8f7e Add test dispatcher to phone number tests. 2026-04-15 14:45:14 -04:00
Michelle Tang ce582249ec Ask for permissions on the same screen. 2026-04-15 14:45:13 -04:00
Alex Hart b21a72153a Implement proper text-entry component for large screen media send flow. 2026-04-15 14:45:13 -04:00
jeffrey-signal 2a8bd20bb0 Fix sender name/label clipping in recycled conversation items.
Resolves signalapp/Signal-Android#14646
2026-04-15 14:45:13 -04:00
jeffrey-signal c30e3cc1b7 Disable group member labels while in message request state. 2026-04-15 14:45:13 -04:00
Greyson Parrelli 5fedd81921 Convert IndividualSendJob to kotlin. 2026-04-15 14:45:12 -04:00
jeffrey-signal 24069dc42e Fix self avatar in reaction bottom sheet. 2026-04-15 14:45:12 -04:00
Cody Henthorne ff15c8417a Clear upload spec when resume location is invalid in archive upload.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-15 14:45:12 -04:00
Greyson Parrelli cbf770d3ea Convert PushSendJob to kotlin. 2026-04-15 14:45:12 -04:00
Greyson Parrelli 676ab1ab6f Merge SendJob into PushSendJob. 2026-04-15 14:45:12 -04:00
Greyson Parrelli 9cc47942f2 Add process check to VoiceNotePlaybackService MediaSession access. 2026-04-15 14:45:12 -04:00
Greyson Parrelli 45e6e06c01 Improve error handling for empty prekey bundles. 2026-04-15 14:45:11 -04:00
Michelle Tang d2243707b5 Update permissions UI. 2026-04-15 14:45:11 -04:00
Jesse Weinstein 48cd1c1da0 Convert Windows line endings to Unix format.
Closes signalapp/Signal-Android#14632
2026-04-15 14:45:11 -04:00
thomasboom 330a5aece2 Show "None" for media auto-download when all options are disabled.
Co-authored-by: jeffrey-signal <jeffrey@signal.org>

Closes signalapp/Signal-Android#14678
2026-04-15 14:45:11 -04:00
Cody Henthorne 8c4f614d17 Allow reply action on notifications for messages with media attachments. 2026-04-15 14:45:11 -04:00
Leo Heitmann Ruiz f40bcb73fa Fix duplicate word in bug report template.
Closes signalapp/Signal-Android#14695
2026-04-15 14:45:10 -04:00
Jesse Weinstein 905a6f1a6b Fix typo in comment referencing ChatTypeSearchKey.
Closes signalapp/Signal-Android#14684
2026-04-15 14:45:10 -04:00
Jesse Weinstein 8f78471849 Remove the annimon.stream library.
Resolves #14719
2026-04-15 14:45:10 -04:00
Jesse Weinstein 82df20190d Remove all remaining usages of annimon.stream. 2026-04-15 14:45:10 -04:00
Greyson Parrelli 7f6e96a522 Check DownloadManager status to properly detect errors. 2026-04-15 14:45:09 -04:00
Greyson Parrelli eded335766 Fix potential crash when saving to fallback attachment folder.
Fixes #14720
2026-04-15 14:45:09 -04:00
Michelle Tang 7e4736969c Update country selection. 2026-04-15 14:45:09 -04:00
Greyson Parrelli 78940ffc17 Switch the labs plaintext export to share a single zip. 2026-04-15 14:45:09 -04:00
Jesse Weinstein 086883e565 Convert all the toList calls to collect(Collectors.toList)
Resolves #14718
2026-04-15 14:45:06 -04:00
Michelle Tang e9cdf0368e Update phone number UI. 2026-04-15 14:43:45 -04:00
Greyson Parrelli 7be273f461 Do not interrupt actively playing voice notes when locking. 2026-04-15 14:43:45 -04:00
Jesse Weinstein e6cbb0073c Remove more usages of annimon.stream.
Resolves #14717
2026-04-15 14:43:41 -04:00
Cody Henthorne 469421fcf3 Fix message request accepted to recipient from previous backup imports. 2026-04-15 14:43:12 -04:00
Greyson Parrelli 6d6d277277 Add share and forward entries to all media context menu. 2026-04-15 14:43:12 -04:00
jeffrey-signal 8a5faba985 Rename DragAndDrop -> DragToReorder to differentiate it from Android's drag-and-drop framework. 2026-04-15 14:43:12 -04:00
Cody Henthorne 7aadc208e1 Promptly remove terminated groups from shortcuts. 2026-04-15 14:43:11 -04:00
Greyson Parrelli 3c68e29679 Update image pasting to use ViewCompat.setOnReceiveContentListener. 2026-04-15 14:43:11 -04:00
Cody Henthorne 4756b8d70b Update conversation header and message request UI. 2026-04-15 14:43:11 -04:00
Alex Hart c2d927029a Add new ImageEditor compose component and wire in crop and drawing tools. 2026-04-13 16:25:00 -04:00
jeffrey-signal 629b96dd20 Fix wallpaper ANR regression while maintaining correct incoming message bubble colors. 2026-04-13 16:25:00 -04:00
Greyson Parrelli 01705459cf Include registered state in support email. 2026-04-13 16:25:00 -04:00
Greyson Parrelli c449f72786 Allow internal shares as long as they originate from our process. 2026-04-13 16:25:00 -04:00
Alex Hart 773d6c36dc Add large-screen media send toolbars for image editing. 2026-04-13 16:25:00 -04:00
andrew-signal b4bfb67a44 Bump to libsignal v0.91.2 2026-04-13 16:25:00 -04:00
Michelle Tang 3165c854df Remove unused strings. 2026-04-13 16:25:00 -04:00
Cody Henthorne f5cb1b0efa Restrict telecom usage to API 37. 2026-04-13 16:25:00 -04:00
Greyson Parrelli 179908fba6 Update registration error strings for SMS send failures. 2026-04-13 16:25:00 -04:00
Greyson Parrelli d6ec4bfbd3 Do not show getting started after local restore. 2026-04-13 16:25:00 -04:00
Greyson Parrelli 237ac9f94a Use original message timestamp for saved attachment MediaStore metadata.
Fixes #14584
2026-04-13 16:25:00 -04:00
Greyson Parrelli 66f69854cf Expand whitespace character detection in StringUtil.isVisuallyEmpty.
Fixes #14470
2026-04-13 16:25:00 -04:00
Greyson Parrelli 8f47592fc0 Fix reconciliation error for thumbnails for quotes. 2026-04-13 16:25:00 -04:00
Greyson Parrelli 3ea7bf77e0 Add release note validation check. 2026-04-13 16:25:00 -04:00
Greyson Parrelli 2b67b1c44f Remove legacy ClassicOpenHelper. 2026-04-13 16:25:00 -04:00
Jesse Weinstein ebccc6db30 Remove a lot of dead code.
Resolves #14672
2026-04-13 16:25:00 -04:00
Greyson Parrelli 98d9b12438 Add null check in UriUtil. 2026-04-13 16:22:10 -04:00
Greyson Parrelli 5db8463c70 Improve content proxy domain matching. 2026-04-13 16:22:10 -04:00
Greyson Parrelli 813252989b Notify CallRequestController after cancel. 2026-04-13 16:22:09 -04:00
Greyson Parrelli 0319adbce4 Add null check to orientation unboxing. 2026-04-13 16:22:09 -04:00
Greyson Parrelli de584ccb7d Use message digest for faster comparison. 2026-04-13 16:22:09 -04:00
Greyson Parrelli bd89c7fc39 Add null check to pin message import. 2026-04-13 16:22:09 -04:00
Greyson Parrelli bef4bb40ca Do not swallow IOException during backup creation. 2026-04-13 16:22:08 -04:00
Jesse Weinstein b57d922cdf Remove use of annimon.stream in several places.
Resolves #14705
2026-04-13 16:22:08 -04:00
Greyson Parrelli 8c1cc03c6f Use non-deprecated libsignal network constructor. 2026-04-13 16:22:08 -04:00
jeffrey-signal f0109f3e6b Improve drag-to-reorder auto scroll behavior when dragging an item up the list. 2026-04-13 16:22:08 -04:00
Greyson Parrelli ed89f3a78e Don't connect to the websocket if we know we're unregistered. 2026-04-13 16:22:07 -04:00
Alex Hart faa6a1d3f0 Welcome screen polish. 2026-04-13 16:22:07 -04:00
Greyson Parrelli 969635d942 Add redirect validation for link previews. 2026-04-13 16:22:07 -04:00
Greyson Parrelli 7665ae1464 Verify payment address identity key against local identity store. 2026-04-13 16:22:07 -04:00
Greyson Parrelli 9c18e3698e Apply CDN restrictions to quote attachments. 2026-04-13 16:22:07 -04:00
Greyson Parrelli df406633ff Use existing okhttp client + package checks for web apk. 2026-04-13 16:22:06 -04:00
Greyson Parrelli d121f9402b Improve quote validation. 2026-04-13 16:22:06 -04:00
Greyson Parrelli 5310c19b99 Update isValidExternalUri. 2026-04-13 16:22:06 -04:00
Greyson Parrelli cd92feb2b7 Write profile avatars to temp file before renaming to final location. 2026-04-13 16:22:06 -04:00
Greyson Parrelli 3b603f08ed Add defensive size check to stream read. 2026-04-13 16:22:06 -04:00
Greyson Parrelli 281f062b29 Remove the DeprecatedPersistentBlobProvider. 2026-04-13 16:22:05 -04:00
jeffrey-signal b054a7eb76 Bump version to 8.7.3 2026-04-13 16:15:41 -04:00
jeffrey-signal 33b9c88ecd Update baseline profile. 2026-04-13 15:40:05 -04:00
jeffrey-signal 253d36ae13 Update translations and other static files. 2026-04-13 15:32:54 -04:00
Michelle Tang 8306f8ec5b Improve collapsed set selection. 2026-04-13 14:05:20 -04:00
Michelle Tang 69b6d7ef9a Fix missing gallery photos.
Resolves signalapp/Signal-Android#14709
2026-04-13 14:05:00 -04:00
Greyson Parrelli aeeba3d2df Fix NPE when there's no retryafter duration. 2026-04-12 14:20:32 -04:00
Greyson Parrelli dfd2f7baf9 Bump version to 8.7.2 2026-04-09 22:44:57 -04:00
Greyson Parrelli 5de17a971d Update translations and other static files. 2026-04-09 22:44:34 -04:00
Greyson Parrelli 001896d244 Fix image transition animation. 2026-04-09 22:02:46 -04:00
Michelle Tang 1844b128e1 Use server timestamp for admin delete. 2026-04-09 17:17:55 -04:00
Michelle Tang 08623cc0c4 Use proper sender for early messages. 2026-04-09 15:44:35 -04:00
Greyson Parrelli f93a948169 Fix PIN creation loop during registration. 2026-04-09 13:48:46 -04:00
Cody Henthorne 76476191be Show better error ux for group calls you cannot start. 2026-04-09 10:27:44 -04:00
Greyson Parrelli d00bb28ee4 Bump version to 8.7.1 2026-04-08 22:10:47 -04:00
Greyson Parrelli 453e5bede7 Fix bad bubble tints for chats with wallpapers. 2026-04-08 22:04:17 -04:00
Michelle Tang c7c108bd77 Fix missing gallery photos. 2026-04-08 19:40:13 -04:00
Greyson Parrelli fb81574d35 Bump version to 8.7.0 2026-04-08 16:39:21 -04:00
Greyson Parrelli e6d3de091c Update translations and other static files. 2026-04-08 16:39:21 -04:00
Greyson Parrelli 99b8a6020d Fix flaky registration tests. 2026-04-08 16:39:21 -04:00
Greyson Parrelli 88b21b6113 Improve validator testing. 2026-04-08 16:39:21 -04:00
Greyson Parrelli 256ee9b1aa Delete unused apns database. 2026-04-08 16:39:21 -04:00
Alex Hart e2feaaf74c Add initial working E2E flow for MediaSendV3. 2026-04-08 16:39:21 -04:00
jeffrey-signal 17def87c17 Fix compose preview rendering when using Emojifier. 2026-04-08 16:39:20 -04:00
Alex Hart d90e9919ae Adaptive welcome screen with compact, medium, and large layouts. 2026-04-08 16:39:20 -04:00
Jim Gustafson 38baf17938 Update to RingRTC v2.67.2 2026-04-08 16:39:20 -04:00
scueZ 3f7707985f Skip confusing delete dialog body text in Note to Self.
Resolves #14708
2026-04-08 16:39:20 -04:00
jeffrey-signal a61072b249 Member label performance optimizations. 2026-04-08 16:39:20 -04:00
jeffrey-signal 80ff64ddd3 Prevent unregistered accounts from showing in group call participants. 2026-04-08 16:39:20 -04:00
Cody Henthorne 95c0467bda Show unanswered outgoing calls as unanswered. 2026-04-08 16:39:20 -04:00
Greyson Parrelli ff88d259fd Use long for key id. 2026-04-08 16:39:20 -04:00
Alex Hart 6e747019d4 Fix NPE in toPendingOneTimeDonation when waitForAuth is null.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-08 16:29:15 -04:00
Greyson Parrelli 9e7a40a63d Extend proper base activity. 2026-04-08 16:29:14 -04:00
Greyson Parrelli 38eed43046 Add long-press context menu in all media screen. 2026-04-08 15:50:43 -04:00
Greyson Parrelli 4c76cb682e Give a media/no-media choice in labs plaintext export. 2026-04-08 15:50:43 -04:00
Michelle Tang c47adb7482 Update padding sizes of update items. 2026-04-08 15:50:43 -04:00
Alex Hart 3c2ccef9a8 Fix upgrade card text color not adapting to dark mode.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-08 15:50:43 -04:00
jeffrey-signal fb0c4757f2 Fix media count indicator button colors so they match the chat color. 2026-04-08 15:50:43 -04:00
jeffrey-signal b8b9a632b5 Always prefetch wallpaper before opening a conversation. 2026-04-08 15:50:43 -04:00
Greyson Parrelli 9b4a13a491 Potential fix to configuration cache issues with translations. 2026-04-08 15:50:43 -04:00
Cody Henthorne 1cdd49721d Add logging around rotate storage id failures during storage sync. 2026-04-08 15:50:43 -04:00
Cody Henthorne 8b895738c0 Update telecom to 1.1.0-alpha04 2026-04-07 10:05:42 -04:00
Cody Henthorne 6ab3cd3390 Don't show terminated groups after storage service restore. 2026-04-07 09:39:06 -04:00
Alex Hart 11c8a726ec Increment localPlaintextExport flag to lock version. 2026-04-06 16:47:01 -04:00
Alex Hart 264447a6d9 Add breakpoint helper and expand device previews.
Co-authored-by: jeffrey-signal <jeffrey@signal.org>
2026-04-06 16:47:01 -04:00
Michelle Tang a7bb2831f8 Fix possible misuse of mp4 sanitizer. 2026-04-06 16:47:01 -04:00
Greyson Parrelli e05586a1c9 Convert RegistrationNetworkResult to RequestResult. 2026-04-06 16:47:01 -04:00
Greyson Parrelli 0e8dedf4d0 App ability to regV5 in the main app, behind compile flag. 2026-04-06 16:47:01 -04:00
Michelle Tang 0e11a1fe3e Add logs for voice note proximity. 2026-04-06 16:47:01 -04:00
adel-signal f1ebd2dc81 Add CallingAssetsDownloadJob to app startup to init calling assets
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-06 16:47:01 -04:00
Michelle Tang 8ea90c8a43 Cancel checking for messages on foreground. 2026-04-06 16:46:05 -04:00
Michelle Tang 6456dcf657 Fix potential edit message race condition. 2026-04-06 16:46:05 -04:00
Greyson Parrelli bb151c91e9 Add basic infra for regV5 local restore. 2026-04-06 16:46:05 -04:00
Greyson Parrelli ce6f39ae68 Update to the new attachment upload form libsignal method. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 58e8ea08c2 Bump to libsignal v0.91.0 2026-04-06 16:46:05 -04:00
Michelle Tang 4dd74d9ab4 Fix collapsed tests. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 3ef3a516b3 Prevent repeated storage-full notifications during backup.
When remote backup storage is full, hundreds of CopyAttachmentToArchiveJob
instances each independently call markOutOfRemoteStorageSpaceError(), which
re-posts the notification every time. Even though the notification ID is the
same, each call re-alerts the user with sound and vibration.

Guard markOutOfRemoteStorageSpaceError() to only post the notification once
by checking the flag before proceeding, and move the flag-set before the
notification post to prevent races. Also add an early exit in
CopyAttachmentToArchiveJob to skip the network quota check when already
marked as out of storage space.
2026-04-06 16:46:05 -04:00
Greyson Parrelli 518a81c7fa Do not start a call while one is in progress. 2026-04-06 16:46:05 -04:00
Michelle Tang f81325e7ca Pause voice notes when joining calls. 2026-04-06 16:46:05 -04:00
Greyson Parrelli cc847cb229 Fix potential glide lifecycle issue with transition animation. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 7320a0ef46 Guard against potential crash when reacting to a message. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 7c45686440 Fix potential missing ACI crash in verify screen. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 8b5b83e974 Remove unnecessary transaction in LocalMetricsDatabase.
There was a native crash associated with it, unclear the cause, but
maybe this will help.
2026-04-06 16:46:05 -04:00
Michelle Tang a4a3861398 Disable proximity sensor when using headsets for voice notes. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 01bdaaea84 Improve ANR stack trace perf. 2026-04-06 16:46:05 -04:00
Greyson Parrelli 1f02fba696 Include captcha info in support email template. 2026-04-06 16:46:04 -04:00
Greyson Parrelli aeb9054a63 Bump version to 8.6.2 2026-04-06 16:39:51 -04:00
Greyson Parrelli bb33945a93 Update translations and other static files. 2026-04-06 16:35:11 -04:00
Greyson Parrelli 3d2ceef47f Don't let the date validator starve the chat search. 2026-04-06 16:15:56 -04:00
Michelle Tang 892e6bd853 Fix OOM in collapse backfill job. 2026-04-06 12:15:35 -04:00
Alex Hart 78e1a407a6 Bump version to 8.6.1 2026-04-02 12:47:48 -03:00
Alex Hart 48d766ecff Update baseline profile. 2026-04-02 12:43:59 -03:00
Alex Hart d6d3226fcd Update translations and other static files. 2026-04-02 12:36:00 -03:00
Alex Hart ed4944f806 Write plaintext export to directory instead of zip, add notification content intent. 2026-04-02 12:15:14 -03:00
Alex Hart eb2dfb3fb6 Fix getViewLifecycleOwner crash in bubble view.post callback.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-04-02 11:33:23 -03:00
Alex Hart 265f71dff3 Surface error when local backup restore directory becomes inaccessible. 2026-04-02 11:27:22 -03:00
Michelle Tang 01d1769e4c Fix pinned message crash. 2026-04-02 10:26:58 -04:00
Alex Hart 97d099c7f1 Increment plaintext export config key. 2026-04-02 11:22:36 -03:00
Greyson Parrelli 0a957bc97c Fix crash when pressing volume buttons during active video recording. 2026-04-02 09:01:21 -04:00
Michelle Tang 5df7552506 Improve collapsed events with wallpapers. 2026-04-01 16:01:43 -04:00
Michelle Tang 75334abe0f Fix padding for collapsed events wrapping. 2026-04-01 14:58:37 -04:00
Michelle Tang 8524d20de5 Rotate collapse config. 2026-04-01 14:49:58 -04:00
Michelle Tang 495e2e043e Add various updates to collapsed events. 2026-04-01 10:49:37 -04:00
jeffrey-signal dec9eb613e Fix stale action cache save error and increase operations per run limit. 2026-04-01 10:07:03 -04:00
jeffrey-signal d6e7030dd0 Fix inactive pull request detection. 2026-03-31 17:54:13 -04:00
jeffrey-signal 6e43e931b2 Fix label applied to inactive issues. 2026-03-31 17:37:24 -04:00
Alex Hart 430a55f89f Bump version to 8.6.0 2026-03-31 16:49:29 -03:00
Alex Hart d717aad03d Update baseline profile. 2026-03-31 16:44:59 -03:00
Alex Hart efd86ad2fc Update translations and other static files. 2026-03-31 16:26:33 -03:00
Alex Hart b284835545 Move local backup progress tracking to in-memory object. 2026-03-31 16:20:26 -03:00
Alex Hart 4dd30f4ec3 Fix deactivated node crash in call screen layout.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
Alex Hart a48938f3d8 Replace Environment bool with a RemoteConfig value. 2026-03-31 16:20:26 -03:00
Alex Hart 01989ad6e7 Fix issue with 12byte IV on older android versions. 2026-03-31 16:20:26 -03:00
Greyson Parrelli f37f67c6c0 Show optimized media in the all media view. 2026-03-31 16:20:26 -03:00
Greyson Parrelli 36f7c60a99 Improve camera mixed mode handling and clean up dead code. 2026-03-31 16:20:26 -03:00
Alex Hart 3f067654d9 Add plaintext chat history export UI. 2026-03-31 16:20:26 -03:00
Michelle Tang 0ce3eab3cd Fix scroll state of collapsed events. 2026-03-31 16:20:26 -03:00
jeffrey-signal b0f7c36cc2 Add additional group terminate checks to message processing.
Co-authored-by: Cody Henthorne <cody@signal.org>
2026-03-31 16:20:26 -03:00
Alex Hart 966e208be5 Fix DB write connection starvation in InAppPaymentsBottomSheetDelegate. 2026-03-31 16:20:26 -03:00
Greyson Parrelli a80d353e04 Fix issue where contact permission prompt wasn't dismissed. 2026-03-31 16:20:26 -03:00
Greyson Parrelli 080fa88bfb Improve handling of validating unpopulated profile field. 2026-03-31 16:20:26 -03:00
Michelle Tang 172e3d129e Fix attachment service crash due to timeout. 2026-03-31 16:20:26 -03:00
Alex Hart 52d5947c0a Treat 409 as successful redemption for recurring donation.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
Alex Hart 7334ebfce1 Fix NPE in canUserAccessUnifiedBackupDirectory when backup directory is null.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
Alex Hart 2c98bbaf7e Fix back navigation stuck in conversation after activity recreation.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
Greyson Parrelli 5a91dba56e Update website variant manifest. 2026-03-31 16:20:26 -03:00
Greyson Parrelli 535c5a1574 Fix compile error in benchmarks. 2026-03-31 16:20:26 -03:00
Alex Hart b61c54c0e2 Fix thread header margin not accounting for status bar insets.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
Alex Hart 5ac5d45fc6 Skip blocked/missing-keys info overlay for the local participant.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:26 -03:00
jeffrey-signal 79ba929e70 Fix selected photo missing checkmark in media gallery. 2026-03-31 16:20:26 -03:00
Cody Henthorne 3e9146a6f5 Improve device transfer reliability. 2026-03-31 16:20:26 -03:00
Michelle Tang 0c4c280a50 Reduce how often KT is reset. 2026-03-31 16:20:26 -03:00
Cody Henthorne ebea499a5a Add horizontal padding to call participant header. 2026-03-31 16:20:26 -03:00
Cody Henthorne d6b39e9f0a Respect phone number sharing privacy in call participant sheet. 2026-03-31 16:20:25 -03:00
Michelle Tang 787eaee6a0 Bump to libsignal v0.90.0
Co-authored-by: Andrew <andrew@signal.org>
2026-03-31 16:20:25 -03:00
Michelle Tang 5ecb3d8832 Fix pluralization of strings. 2026-03-31 16:20:25 -03:00
Greyson Parrelli b2e8666c9f Avoid chaining in BackupMessagesJob. 2026-03-31 16:20:25 -03:00
Greyson Parrelli 8af41e4b2c Fix image sometimes not showing immediately after send. 2026-03-31 16:20:25 -03:00
jeffrey-signal 5eaf1000c8 Prevent hidden recipients from appearing in recent conversations. 2026-03-31 16:20:25 -03:00
Cody Henthorne 4ed6773983 Exclude long text attachments when duplicating for incoming edits.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:25 -03:00
Greyson Parrelli 0de0441f65 Assign remote key to locally-split long text attachments during backup import. 2026-03-31 16:20:25 -03:00
Alex Hart 9e1b4a9a8c Add horizontal padding to pre-join call status text.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:25 -03:00
Greyson Parrelli bf28b90e89 Fix volume key interference during camera video recording. 2026-03-31 16:20:25 -03:00
jeffrey-signal a0a962a94f Fix sender name clipping in text-only incoming messages.
Resolves signalapp/Signal-Android#14646
2026-03-31 16:20:25 -03:00
Cody Henthorne abe0b2ebca Fix Backups settings row not rendering as disabled when unregistered. 2026-03-31 16:20:25 -03:00
Greyson Parrelli 7b4fe7ff40 Fix IndexOutOfBoundsException in story viewer back press. 2026-03-31 16:20:25 -03:00
Alex Hart 1ba9793943 Guard bubble inset request against detached view.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:25 -03:00
Cody Henthorne 14d4228e86 Retry StorageSyncJob on all IOExceptions. 2026-03-31 16:20:25 -03:00
Greyson Parrelli 3d2c51c14b Filter out revisions with mismatched authors during backup export. 2026-03-31 16:20:25 -03:00
Cody Henthorne 72d75e9cd5 Fix stale display names in search results. 2026-03-31 16:20:25 -03:00
Cody Henthorne e125fa6bfb Fix deadlock when sending media to story and group chat simultaneously. 2026-03-31 16:20:25 -03:00
benny10ben 57574126bb Fix deadlock when sending photo from camera to new contact.
Fixes #14674
Closes #14679
2026-03-31 16:20:25 -03:00
Greyson Parrelli 833c81a99e Guard against detached fragment in media preview error handlers. 2026-03-31 16:20:25 -03:00
Alex Hart 5ca17dfe52 Revert "Allow split pane on medium width."
This reverts commit a3d677533e2550897c7b548cb5b0bca199ec4287.
2026-03-31 16:20:25 -03:00
Alex Hart 5e058bb655 Allow split pane on medium width. 2026-03-31 16:20:25 -03:00
Cody Henthorne ce87b50a07 Add create-and-upload to important attachment upload flows.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-31 16:20:25 -03:00
Michelle Tang 2ad14800d1 Only get collapsed timer state when necessary. 2026-03-31 16:20:25 -03:00
Greyson Parrelli f04a0533cb Update SignalService.proto to match shared one. 2026-03-31 16:20:25 -03:00
Greyson Parrelli 5ae51f844e Drop legacy field from provisioning and sync messages. 2026-03-31 16:20:25 -03:00
jeffrey-signal 4ce2c6ef73 Replace legacy probot stale app with a GitHub actions workflow. 2026-03-31 10:19:46 -04:00
Cody Henthorne 4442f26f53 Bump version to 8.5.1 2026-03-27 16:13:39 -04:00
Cody Henthorne 849fce5a89 Update baseline profile. 2026-03-27 16:01:14 -04:00
Cody Henthorne 482fce6a25 Update translations and other static files. 2026-03-27 16:01:13 -04:00
Cody Henthorne e7e69ab064 Update group terminate strings. 2026-03-27 15:38:22 -04:00
Greyson Parrelli 4b768419da Prevent media gallery tabs from compressing text in some locales. 2026-03-27 15:10:00 -04:00
Greyson Parrelli 2cca01d30f Temporarily disable individual collisions. 2026-03-27 14:38:27 -04:00
Greyson Parrelli e0c69dc485 Fix images not showing up in message details. 2026-03-27 14:31:50 -04:00
Greyson Parrelli 1dd79efdb2 Fix select-all in the all media view. 2026-03-27 14:13:49 -04:00
Cody Henthorne dbb3c8def9 Fall back to next challenge when push challenge fails during registration.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-27 13:40:50 -04:00
Cody Henthorne 562185f46d Insert terminate event when restoring ended group from storage service. 2026-03-27 13:38:14 -04:00
Alex Hart f6c7c6de73 Fix local archive progression reporting in notification. 2026-03-27 12:38:36 -03:00
Greyson Parrelli 1ca3a9ca73 Fix unpin sync messages for 1:1 conversations. 2026-03-27 11:23:46 -04:00
jeffrey-signal c76c3f65f2 Fix notification reply avatar showing note to self instead of profile photo. 2026-03-27 11:21:14 -04:00
jeffrey-signal 59c27797d6 Fix backup validation error when a group member has a label emoji value without a label string. 2026-03-27 10:15:58 -04:00
Greyson Parrelli c5c720b1c9 Enforce length limits on link preview fields. 2026-03-26 15:57:36 -04:00
Greyson Parrelli caa09c82d0 Fix some APNGs not playing in new renderer. 2026-03-26 15:47:03 -04:00
Greyson Parrelli d45f80f25d Improve APNG validation in new APNG renderer. 2026-03-26 15:39:03 -04:00
Greyson Parrelli 6a248f617a Include links in the "All" tab of media overview. 2026-03-26 15:24:56 -04:00
Greyson Parrelli 2959e05ea7 Fix link multi-selection in media overview. 2026-03-26 15:24:56 -04:00
Cody Henthorne 17faf56388 Drop all messages sent to a terminated group. 2026-03-26 15:22:20 -04:00
Alex Hart f533ad1533 Update copy for backup education screen. 2026-03-26 16:15:05 -03:00
Alex Hart 25452fefa5 Retry canWrite() check when opening backup directory for writing.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-26 14:54:10 -03:00
Cody Henthorne 9702728c19 Gate poll, pin, and reaction UX in terminated groups. 2026-03-26 13:26:16 -04:00
Cody Henthorne 43f19d14d8 Add additional checks for terminated groups during send flows. 2026-03-26 11:59:11 -04:00
Alex Hart 467c154ea6 Utilize enqueue job for spawning attachment restore jobs. 2026-03-26 12:41:41 -03:00
Alex Hart d72c742ab6 Remove hint file. 2026-03-26 12:35:34 -03:00
Alex Hart 567bf0facc Add Last Backup help text. 2026-03-26 12:30:59 -03:00
Alex Hart d5329d0794 Support directly selecting signalbackup. 2026-03-26 12:25:37 -03:00
Alex Hart ff04e5c5c3 Ensure metadata is available when writing chat style attachments. 2026-03-26 10:51:51 -03:00
Alex Hart e529fbd1bc Suppress megaphone for upgrade path. 2026-03-26 09:41:47 -03:00
Cody Henthorne 068eaff801 Bump version to 8.5.0 2026-03-25 17:02:37 -04:00
Cody Henthorne e0bb3a48c2 Update translations and other static files. 2026-03-25 16:41:04 -04:00
Alex Hart f2e4881026 Add underpinnings to allow for local plaintext export.
Co-authored-by: Cody Henthorne <cody@signal.org>
2026-03-25 16:31:10 -04:00
Alex Hart b605148ac4 Wake lock during restore. 2026-03-25 16:31:10 -04:00
Cody Henthorne 2b9126d74b Update group terminated banner. 2026-03-25 16:31:10 -04:00
Alex Hart 206f6d84e7 Remove size line from backup info. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 01836b3a7c Update emoji to unicode 17. 2026-03-25 16:31:09 -04:00
Michelle Tang e68691c966 Show final disappearing timer value for collapsed events. 2026-03-25 16:31:09 -04:00
Alex Hart 957f473e77 Ensure we upgrade properly from v1. 2026-03-25 16:31:09 -04:00
Alex Hart 8a023100ea Write backup file timestamp in utc. 2026-03-25 16:31:09 -04:00
Alex Hart 5bfdca509c Fix dark mode on update card. 2026-03-25 16:31:09 -04:00
Tushar Soni 9a837254ec Simplify recipient list truncation in CreateFolderScreen.
Resolves signalapp/Signal-Android#14439
Closes signalapp/Signal-Android#14473
2026-03-25 16:31:09 -04:00
Alex Hart 3f27769d20 Enable new local backup export for external users. 2026-03-25 16:31:09 -04:00
Michelle Tang 4f260c2063 Backfill collapsible messages. 2026-03-25 16:31:09 -04:00
Michelle Tang 75df16e842 Fix collapsing tests. 2026-03-25 16:31:09 -04:00
Michelle Tang fce6651e26 Fix pinned messages with attachments. 2026-03-25 16:31:09 -04:00
andrew-signal b06783bc90 Bump to libsignal v0.89.2 2026-03-25 16:31:09 -04:00
Jesse Weinstein 72a1a9b0ff Fix unquoted imports in proto files.
Closes signalapp/Signal-Android#14669
2026-03-25 16:31:09 -04:00
DivyaKhunt07 5568a14490 Fix unexpected keyboard appearance on repeated back swipe.
Resolves signalapp/Signal-Android#14618
Closes signalapp/Signal-Android#14633
2026-03-25 16:31:09 -04:00
Michelle Tang 378ebb00c4 Allow multiselect deleting for collapsed events. 2026-03-25 16:31:09 -04:00
Cody Henthorne c81f40eb74 Add additional group terminate checks. 2026-03-25 16:31:09 -04:00
Alex Hart d97bde3959 Update to utilize main activity instead of passthrough. 2026-03-25 16:31:09 -04:00
jeffrey-signal 4d301a4f66 Show conversation settings in the detail pane on large screens. 2026-03-25 16:31:09 -04:00
Alex Hart 9941b2d123 Fix several bugs in the local backup restore flow. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 089d8a50b2 Promote the new APNG renderer to a normal flag. 2026-03-25 16:31:09 -04:00
Greyson Parrelli eb8ad5218d Filter archived stories from the stories landing page query. 2026-03-25 16:31:09 -04:00
Michelle Tang 21b1401fc4 Update safety number tappable area. 2026-03-25 16:31:09 -04:00
Michelle Tang 58ea9a1f48 Rename collapsed events for 1:1. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 2bb9578ef9 Use sqlite-jdbc for unit tests to enable FTS5 and JSON1 support. 2026-03-25 16:31:09 -04:00
Michelle Tang c3b8768570 Turn on collapsing chat events for internal users. 2026-03-25 16:31:09 -04:00
Alex Hart 94e3dabc20 Confirm backup location after successful local backup restore. 2026-03-25 16:31:09 -04:00
Jesse Weinstein 542a820e22 Remove UriSerializer typealias -- it is only used in two places 2026-03-25 16:31:09 -04:00
Greyson Parrelli 8f7cc52255 Fix bug around collision detection filtering. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 63888f1c99 Refactor name collision tables to improve perf. 2026-03-25 16:31:09 -04:00
jeffrey-signal a588522c9b Support navigating back to MainActivity with no conversation selected. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 7a2eca3bd5 Fix all media storage overview performance. 2026-03-25 16:31:09 -04:00
Greyson Parrelli a8ba0dccca Fix story reply thumbnails. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 782c83cc4e Fix story download bug. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 46e6ae915c Add better loading states for story archive and starred. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 8a887b65a1 Extract base archive classes into their own module. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 08491579dd Add links to the all media view. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 25b01a30be Improve memory usage of new APNG renderer by making it streaming. 2026-03-25 16:31:09 -04:00
Greyson Parrelli 48374e6950 Add support for starring messages. 2026-03-25 16:31:09 -04:00
jeffrey-signal 6496f236ea Fix secure backups learn more link.
Resolves signalapp/Signal-Android#14657
2026-03-25 16:31:09 -04:00
Alex Hart e767434c2b Perform StorageServiceRestore on skip if already registered. 2026-03-25 16:31:09 -04:00
Michelle Tang bb6507a456 Disabled new lines for when statements for ktlint. 2026-03-25 16:31:09 -04:00
Greyson Parrelli c3f9e5d972 Add new APNG renderer, just for internal users for now. 2026-03-25 16:31:08 -04:00
Alex Hart 34d87cf6e1 Warning dialogs for local backup restore. 2026-03-25 16:31:08 -04:00
Greyson Parrelli e657a4adf3 Guard auto-lower hand behind labs. 2026-03-25 16:31:08 -04:00
jeffrey-signal 9594599d60 Fix unread filter deactivating when scrolling through the conversation list. 2026-03-25 16:31:08 -04:00
Cody Henthorne a0c0acb8fc Add group terminate support. 2026-03-25 16:31:08 -04:00
Greyson Parrelli 0896718e5c Annotate labs features as such. 2026-03-25 16:31:08 -04:00
Greyson Parrelli be4bf27ede Remove attachment table JSON join. 2026-03-25 16:31:08 -04:00
Greyson Parrelli 7253aaaa14 Add the ability to filter search by date and author. 2026-03-25 16:31:08 -04:00
jeffrey-signal 72cbe61f6c Prepare conversation fragment navigation for two-pane conversation settings. 2026-03-25 16:31:08 -04:00
Alex Hart 78d3db319c Fix local backup restore AEP handling and conditional re-enable. 2026-03-25 16:31:08 -04:00
Greyson Parrelli c7a6c7ad9e Minor improvements to SVRB error handling. 2026-03-25 16:31:08 -04:00
Greyson Parrelli 8bc183b994 Fix validation error with session switchover events. 2026-03-25 16:31:08 -04:00
Greyson Parrelli ef6e5abc17 Add retry logic for camera binding failures. 2026-03-25 16:31:08 -04:00
Greyson Parrelli e96e6e8d18 Use note to self icon in share sheet. 2026-03-25 16:31:08 -04:00
Greyson Parrelli cee33a23ac Use transaction when loading logs. 2026-03-25 16:31:08 -04:00
Greyson Parrelli c5de7581ee Show error message on SN screen when there's no ACI. 2026-03-25 16:31:08 -04:00
Greyson Parrelli 5dc626078f Compress shared contact avatar before launching add-to-contacts intent.
Old way let us use photos that could put us over the 1mb transaction
size limit.
2026-03-25 16:31:08 -04:00
Greyson Parrelli 9de75b3e1f Show groups that have the same member list during group creation. 2026-03-25 16:31:08 -04:00
Greyson Parrelli f09bf5b14c Make regV5 resumable if the app closes. 2026-03-19 17:13:11 -04:00
Michelle Tang c7ec3ab837 Bump version to 8.4.1 2026-03-19 17:09:55 -04:00
Michelle Tang 2a7b58bf46 Update baseline profile. 2026-03-19 17:02:55 -04:00
Michelle Tang 7d5b0b1565 Update translations and other static files. 2026-03-19 16:52:44 -04:00
Cody Henthorne 3620db3a92 Make max compressed video size remote configurable. 2026-03-19 16:47:35 -04:00
andrew-signal 69cad04875 Bump to libsignal v0.89.1. 2026-03-19 12:23:30 -04:00
Michelle Tang d533cdc619 Bump version to 8.4.0 2026-03-18 15:16:15 -04:00
Michelle Tang ae455d2615 Update baseline profile. 2026-03-18 15:06:42 -04:00
Michelle Tang 7f27e52e58 Update translations and other static files. 2026-03-18 14:57:29 -04:00
Greyson Parrelli 4b10c19569 Validate individual APNG frame dimensions. 2026-03-18 13:30:11 -04:00
Greyson Parrelli 3f7f43d506 Show author of message in search results. 2026-03-18 13:15:49 -04:00
Cody Henthorne b4296c1e4b Fix name collision clean up bug and flakey test. 2026-03-18 13:15:49 -04:00
Greyson Parrelli b62b5ea8ef Add ability to open a chat incognito. 2026-03-18 13:15:49 -04:00
jeffrey-signal db5cced91b Show mark read action on admin-only group notifications for non-admin members. 2026-03-18 13:15:49 -04:00
Michelle Tang b677827c86 Inline pinned message config. 2026-03-18 13:15:49 -04:00
Alex Hart fc0e902cbf Parallelize all-files. 2026-03-18 13:15:49 -04:00
jeffrey-signal 6fbf4d4ae6 Fix chevron appearing below the recipient name. 2026-03-18 13:15:49 -04:00
Greyson Parrelli 95149764eb Add a new internal-only 'labs' setting screen. 2026-03-18 13:15:49 -04:00
Cody Henthorne a37680685f Fix flakey getAndPossiblyMerge test. 2026-03-18 13:15:49 -04:00
Greyson Parrelli 2b163a9acd Add the ability to do an export of a single chat. 2026-03-18 13:15:49 -04:00
Alex Hart 2f41d15a41 Add progress phases for initialization and finalization for local backups. 2026-03-18 13:15:49 -04:00
Greyson Parrelli d2c8b6e14c Improve the storage controller for regV5. 2026-03-18 13:15:49 -04:00
Alex Hart 6877b9163b Resolve ANR when deleting local backup. 2026-03-18 13:15:49 -04:00
jeffrey-signal 6ee14d5e7c Fix closed conversation reopening after changing the device orientation. 2026-03-18 13:15:49 -04:00
andrew-signal 824ff18ba5 Bump libsignal to 0.88.3 2026-03-18 13:15:49 -04:00
emir-signal 548adb831d Update to RingRTC v2.67.0 2026-03-18 13:15:49 -04:00
Cody Henthorne 501ef69f97 Fix session establishment in message processing benchmark tests. 2026-03-18 13:15:49 -04:00
Cody Henthorne a62f07db11 Reintroduce preliminary telecom support for 1:1 calling. 2026-03-18 13:15:49 -04:00
Greyson Parrelli 1b6cfe9fc6 Re-order megaphones so backups are above PIN reminders. 2026-03-18 13:15:49 -04:00
Alex Hart eaa1124e71 Fix voice message waveform only showing activity at the beginning.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-18 13:15:49 -04:00
Michelle Tang 380036195a Update deleted string. 2026-03-18 13:15:49 -04:00
andrew-signal d2619a6abd Use app locale when formatting LocalTime, rather than system locale. 2026-03-18 13:15:49 -04:00
Cody Henthorne 4d2f23ec37 Use libsignal-net for multi-recipient send. 2026-03-18 13:15:49 -04:00
Greyson Parrelli 6c1897d8d5 Add infra for regV5 restore flows. 2026-03-18 13:15:49 -04:00
Greyson Parrelli 39de824bf0 Add quick restore flow and DebugLoggableModel to regV5.
Renames restore → quickrestore package, adds QuickRestoreQrViewModel,
introduces DebugLoggableModel for safe toString in release builds,
updates all State/Events classes to extend it, switches previews to
AllDevicePreviews, and enables BuildConfig for the registration module.
2026-03-18 13:15:49 -04:00
Alex Hart 889ebcadd4 Prevent remove from call button from displaying in group calls.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-18 13:15:49 -04:00
Alex Hart db17d1fd24 Unify backup creation progress model for local backups. 2026-03-18 13:15:48 -04:00
Alex Hart cc282276c8 Disable proximity sensor during outgoing video call ringing.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-18 13:15:48 -04:00
jeffrey-signal a5e00c4319 Inline the send member labels feature flag. 2026-03-18 13:15:48 -04:00
Alex Hart dba5252be6 Move fetch of first emission to the observeInAppPaymentRedemption call. 2026-03-18 13:15:48 -04:00
Michelle Tang 874bc1a1c9 Bump version to 8.3.4 2026-03-18 13:12:06 -04:00
Michelle Tang 4b95851ae5 Update translations and other static files. 2026-03-18 13:07:28 -04:00
Greyson Parrelli fbe907f1e9 Temporarily revert nickname bug to fix potential database churn. 2026-03-18 12:02:43 -04:00
Michelle Tang cf0157c59d Bump version to 8.3.3 2026-03-17 13:35:15 -04:00
Michelle Tang 8f4dff8d53 Update translations and other static files. 2026-03-17 13:21:27 -04:00
Michelle Tang 1b3fb60cb0 Add more pin message checks. 2026-03-17 11:54:38 -04:00
Michelle Tang ecbf9d60cb Add back remote deleted column. 2026-03-17 11:53:46 -04:00
jeffrey-signal 117c3ac2db Bump version to 8.3.2 2026-03-16 11:18:10 -04:00
jeffrey-signal 9571215175 Update baseline profile. 2026-03-16 11:06:50 -04:00
jeffrey-signal 754dc8dab4 Update translations and other static files. 2026-03-16 10:49:26 -04:00
Michelle Tang 7caccd341b Add more admin delete checks. 2026-03-13 18:03:42 -04:00
jeffrey-signal ef6c69a960 Bump version to 8.3.1 2026-03-12 18:04:30 -04:00
jeffrey-signal e82d11e035 Update baseline profile. 2026-03-12 18:01:28 -04:00
jeffrey-signal a687fe09ff Update translations and other static files. 2026-03-12 17:54:00 -04:00
jeffrey-signal d19c536000 Fix about sheet member label emoji not respecting 'use system emoji' preference. 2026-03-12 17:47:02 -04:00
jeffrey-signal 55e029e81d Treat member labels as unset if they can't be decrypted. 2026-03-12 17:33:54 -04:00
Greyson Parrelli df89f8879d Simplify archiving in chat list, fixing unarchive bug. 2026-03-12 11:51:20 -04:00
jeffrey-signal 2b1db2943c Bump version to 8.3.0 2026-03-11 16:35:07 -04:00
jeffrey-signal 1687f6966b Update baseline profile. 2026-03-11 16:12:45 -04:00
jeffrey-signal 2b685fb42e Update translations and other static files. 2026-03-11 15:48:15 -04:00
jeffrey-signal 73f5a3398c Show warning when group changes would clear member labels. 2026-03-11 15:41:47 -04:00
Alex Hart 35cf24b577 Fix messages not marked as read in split pane mode. 2026-03-11 15:41:46 -04:00
Greyson Parrelli be920148e7 Copy quotes to the archive as they're received. 2026-03-11 15:41:46 -04:00
Greyson Parrelli 456aaa54f1 Update to SQLCipher 4.13.0 with workaround for FTS issue. 2026-03-11 15:41:46 -04:00
Greyson Parrelli a872097c31 Update SQLCipher to 4.11.0 to fix FTS issue. 2026-03-11 15:41:46 -04:00
Greyson Parrelli 33c3c48bd5 Make regV5 edge-to-edge. 2026-03-11 15:41:45 -04:00
Greyson Parrelli cd24691130 Improve welcome bottom sheet UI in regV5. 2026-03-11 15:41:45 -04:00
Cody Henthorne 5d92fb1cc4 Apply body text max length in V2 conversation item to prevent ANR. 2026-03-11 15:41:45 -04:00
Alex Hart c9e6204a8d Add proper retry for CC Fragment. 2026-03-11 15:41:45 -04:00
Alex Hart b4ec935762 Fix share sheet ordering.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-11 15:41:45 -04:00
Jesse Weinstein 30426ee42a Remove some unused classes.
Resolves signalapp/Signal-Android#14636
2026-03-11 15:41:44 -04:00
Michelle Tang 1a70449c4c Remove remote_deleted column. 2026-03-11 15:41:44 -04:00
jeffrey-signal 374347da04 Inline the receive member labels feaure flag. 2026-03-11 15:41:44 -04:00
Greyson Parrelli 276662026e Fix potential username link desync after backup restore. 2026-03-11 15:41:44 -04:00
Greyson Parrelli cd3e9a4009 Add some tests for CameraScreenViewModel. 2026-03-11 15:41:44 -04:00
Alex Hart 7fb866fcfb Utilize InAppPaymentTable as the SSOT for ManageDonationsFragment. 2026-03-11 15:41:44 -04:00
adel-signal d06febd5b5 Update RingRTC to v2.66.0 2026-03-11 15:41:43 -04:00
Michelle Tang 04813fe345 Sync education sheet seen status for admin delete. 2026-03-11 15:41:43 -04:00
Cody Henthorne 6a3d1634b9 Show warning dialog when attempting to save optimized media. 2026-03-11 15:41:43 -04:00
Alex Hart c554c0d456 Update string resource references from backup key to recovery key. 2026-03-11 15:41:43 -04:00
Greyson Parrelli e88f63f54d Improve video capture experience when we can't multi-bind. 2026-03-11 15:41:42 -04:00
jeffrey-signal 7ff051a638 Show other group members with labels. 2026-03-11 15:41:42 -04:00
Cody Henthorne ac9405e874 Fix skiped ktlint checks in qa task. 2026-03-11 15:41:42 -04:00
Jesse Weinstein d18c5a7fad Exclude duplicate files from the sourcesJar task.
Resolves #14653
2026-03-11 15:41:42 -04:00
Greyson Parrelli bdc90f3c02 Update SQLCipher to 4.13.0 2026-03-11 15:41:42 -04:00
jeffrey-signal 94e28eddd0 Enforce member label access control and handle insufficient permission error. 2026-03-11 15:41:41 -04:00
jeffrey-signal 6100664287 Show group update messages for member label permission changes. 2026-03-11 15:41:41 -04:00
Cody Henthorne 54aa477b28 Fix local archive attachment data inconsistency bug. 2026-03-11 15:41:41 -04:00
Greyson Parrelli 3c5774960a Automatically reduce camera use cases on error. 2026-03-11 15:41:41 -04:00
Alex Hart 5140c41c58 Move VM setup code from onCreate to onPreCreate in MediaSelectionActivity.kt. 2026-03-11 15:41:41 -04:00
jeffrey-signal 2b9bb3fb5c Support member labels access control in backups. 2026-03-11 15:41:40 -04:00
jeffrey-signal 9500f4a59c Add support for app version-based remote configs. 2026-03-11 15:41:40 -04:00
andrew-signal a64b77d6f2 Bump to libsignal v0.88.1 2026-03-11 15:41:40 -04:00
Cody Henthorne 4f9e77e7cd Add additional decryption benchmark trace. 2026-03-11 15:41:40 -04:00
jeffrey-signal 13444136bd Introduce new add member labels permission. 2026-03-11 15:41:40 -04:00
Cody Henthorne 7beb4dd939 Allow calling related network calls to run in parallel. 2026-03-09 12:24:14 -04:00
Michelle Tang 51e6ae8f03 Fix cut-off profile picture options. 2026-03-09 12:24:14 -04:00
Cody Henthorne 7aca5f77f6 Consolidate profile update operations to improve large batch fetching. 2026-03-09 12:24:14 -04:00
Cody Henthorne 02ce6c62a8 Add additional thread delete performance improvements. 2026-03-09 12:24:14 -04:00
Cody Henthorne b0b2c32a6f Prevent main thread posts when unobserved LiveRecipients change. 2026-03-09 12:24:14 -04:00
Michelle Tang cf7fee2de8 Use shorten display name. 2026-03-09 12:24:13 -04:00
Cody Henthorne bb730c137f Improve incoming group receipt processing. 2026-03-09 12:24:13 -04:00
Cody Henthorne da2eb02cde Fix crash for incoming calls when running in private spaces. 2026-03-09 12:24:13 -04:00
Michelle Tang f271c85aef Update backup support url. 2026-03-09 12:24:13 -04:00
Michelle Tang bd5f25ffc7 Fix deleting a disappeared message. 2026-03-09 12:24:12 -04:00
Cody Henthorne 3d78d5473e Improve group conversation open performance by prefetching member labels. 2026-03-09 12:24:12 -04:00
Cody Henthorne 49d3f7652d Prevent change animation from firing on thread updates. 2026-03-09 12:24:12 -04:00
Cody Henthorne 5b543c5212 Fix release channel recipient ID surviving failed backup imports. 2026-03-09 12:24:12 -04:00
Greyson Parrelli 2356bb6da2 Fix ScreenDensity calculation. 2026-03-09 12:24:12 -04:00
Cody Henthorne c2bdc11832 Fix GIF preview not animating after leaving media viewer. 2026-03-09 12:24:11 -04:00
Greyson Parrelli 2bd440e07c Cap the number of incrementalMacs populated in an envelope.
Add a remote config `global.maxIncrementalMacsPerEnvelope` (client
fallback of 10) that limits how many attachment pointers in a single
envelope can have their incrementalMac field populated. Each
incrementalMac can be up to 8 KiB, so having too many risks exceeding
the 96 KiB envelope size threshold. Excess attachment pointers have
their incrementalMac and chunkSize fields stripped.
2026-03-09 12:24:11 -04:00
Greyson Parrelli 6eee4db87b Use stronger alarm signal for exact alarms. 2026-03-09 12:24:11 -04:00
Greyson Parrelli e7d1db446b Add support for story archiving. 2026-03-09 12:24:11 -04:00
Cody Henthorne ff50755ba2 Add sealed sender certificate validity constraint to send jobs. 2026-03-09 12:24:10 -04:00
Greyson Parrelli f8ef262b3d Tweak some backup megaphone strings. 2026-03-09 12:24:10 -04:00
jeffrey-signal f8737995fa Bump version to 8.2.2 2026-03-09 12:17:17 -04:00
jeffrey-signal 1bbefea857 Update baseline profile. 2026-03-09 12:13:20 -04:00
jeffrey-signal 143630c41b Update translations and other static files. 2026-03-09 12:05:25 -04:00
Michelle Tang 577eaa1eae Avoid dropping column in message table. 2026-03-09 10:45:27 -04:00
Greyson Parrelli 316b071c81 Bump version to 8.2.1 2026-03-06 16:34:51 -05:00
Greyson Parrelli 5a6f55c0a8 Update baseline profile. 2026-03-06 16:34:32 -05:00
Greyson Parrelli e008a50acc Update translations and other static files. 2026-03-06 16:18:53 -05:00
Michelle Tang 41c3913482 Update notification on admin delete. 2026-03-06 13:39:53 -05:00
Greyson Parrelli 803ff76678 Bump version to 8.2.0 2026-03-04 14:15:38 -05:00
Greyson Parrelli 309081437a Update baseline profile. 2026-03-04 14:15:38 -05:00
Greyson Parrelli 5f152b73c2 Update translations and other static files. 2026-03-04 14:03:32 -05:00
Greyson Parrelli f8d3336a1e Add internal setting to disable internal user. 2026-03-04 13:55:39 -05:00
jeffrey-signal dc1fdffe6a Warn user when their member label will show instead of their about text. 2026-03-04 13:55:39 -05:00
Greyson Parrelli 622d9c909f Fix unarchive actions from conversation search.
Fixes #14640
2026-03-04 13:55:39 -05:00
Michelle Tang 4e3ef19c1f Rotate receive for admin delete. 2026-03-04 13:55:39 -05:00
Greyson Parrelli b054a30fa7 Add support for remote muting call participants. 2026-03-04 13:55:39 -05:00
jeffrey-signal 7266c24354 Show the entire member label on recipient details sheet. 2026-03-04 13:55:39 -05:00
jeffrey-signal 5ec2877bcc Fix member label disappearing after a new group member is added. 2026-03-04 13:55:39 -05:00
jeffrey-signal 0d93446c7d Fix member label emoji picker button not respecting use system emoji preference. 2026-03-04 13:55:39 -05:00
Michelle Tang 1e395ab416 Use global config for admin delete timer. 2026-03-04 13:55:39 -05:00
Michelle Tang 0acb5ac7cd Update admin delete string. 2026-03-04 13:55:39 -05:00
jeffrey-signal 3b18b5d2b7 Fix member label text size. 2026-03-04 13:55:39 -05:00
jeffrey-signal 16e63a061d Allow any group member to set member labels. 2026-03-04 13:55:39 -05:00
Michelle Tang a6c8b940c9 Consolidate admin delete into one string. 2026-03-04 13:55:39 -05:00
Michelle Tang 74d9e3248b Add pending and failed states for admin delete. 2026-03-04 13:55:39 -05:00
andrew-signal 3af8b6050c Bump to libsignal v0.88.0. 2026-03-04 13:55:39 -05:00
Greyson Parrelli da966753a1 Guard against invalid authors in directionless messages in archive export. 2026-03-04 13:55:39 -05:00
Cody Henthorne 0ad4b3f73e Skip optimize media when backup subscription is pending cancelation. 2026-03-04 13:55:39 -05:00
Greyson Parrelli e8d072d4be Only set optimized storage in archive if on paid tier. 2026-03-04 13:55:39 -05:00
Greyson Parrelli b0eed4a095 Filter out unmappable body ranges during archive export. 2026-03-04 13:55:39 -05:00
Greyson Parrelli ba720efe61 Skip quotes with authors that lack ACI and E164 during archive export. 2026-03-04 13:55:39 -05:00
Cody Henthorne e23d575460 Fix incorrect transaction batching during conversation delete. 2026-03-04 13:55:39 -05:00
Greyson Parrelli 7fbcd17759 Add some megaphones to encourage users to try backups. 2026-03-04 13:55:39 -05:00
Greyson Parrelli a95ebb2158 Add improved notification settings when muted. 2026-03-04 13:55:39 -05:00
Greyson Parrelli 8a36425cac Remove broken legacy color migration.
Fixes #14228
Resolves #14518
2026-03-04 13:45:24 -05:00
Michelle Tang 4261ed39dc Fix message details crash on recipient tap. 2026-03-04 13:45:24 -05:00
jeffrey-signal ca37a884fd Delete unused GroupMembersDialog. 2026-03-04 13:45:24 -05:00
Alex Hart 9fbb7683bc Fix RTL text direction not enforced when text starts with LTR characters.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-04 13:45:24 -05:00
Jim Gustafson 42e275ef0a Update to RingRTC v2.65.3 2026-03-04 13:45:24 -05:00
Greyson Parrelli 19ece12e93 Remove deprecated backup flavor. 2026-03-04 13:45:24 -05:00
Michelle Tang 3ef0d3e4a3 Skip pins of deleted messages. 2026-03-04 13:45:24 -05:00
andrew-signal 602ea46b8b Bump to libsignal v0.87.5. 2026-03-04 13:45:24 -05:00
Alex Hart 95c0bc6052 Update internal and local backup access. 2026-03-04 13:45:24 -05:00
Alex Hart bd4ce1788c Fix ANR when backup deletion hangs. 2026-03-04 13:45:24 -05:00
Alex Hart 20d16a8433 Show immediate progress feedback when creating a local backup.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-04 13:45:24 -05:00
Alex Hart db4c11cd53 Use user-friendly display path for local backup folder.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-03-04 13:45:24 -05:00
Greyson Parrelli f439e1f8e3 Add additional upload validation to UploadAttachmentToArchiveJob. 2026-03-04 13:45:24 -05:00
Cody Henthorne 080b1aab83 Fix unable to restore username after device transfer. 2026-03-04 13:45:24 -05:00
Cody Henthorne 61ba2ac97a Improve message processing performance. 2026-03-04 13:45:23 -05:00
Alex Hart 7eebb38eda Add post-registration restore for backups v2 as well as error messaging. 2026-03-04 13:45:23 -05:00
Greyson Parrelli 43e7d65af5 Bump version to 8.1.3 2026-03-04 13:41:59 -05:00
Greyson Parrelli 386d8bb312 Update translations and other static files. 2026-03-04 13:41:32 -05:00
Michelle Tang 3fbd72092c Use batch inserting migration instead. 2026-03-02 17:30:54 -05:00
Greyson Parrelli 4e5b15cd88 Never notify for quotes in muted 1:1 chats. 2026-03-02 13:58:02 -05:00
Greyson Parrelli 8b2aeba3bd Bump version to 8.1.2 2026-02-27 22:44:39 -05:00
Greyson Parrelli 1d2334b920 Update translations and other static files. 2026-02-27 22:44:11 -05:00
jeffrey-signal 38a234ae66 Fix crash after inviting group members. 2026-02-27 22:29:06 -05:00
jeffrey-signal 2c1226dc02 Fix groups v1 migration suggestions dialog crash. 2026-02-27 22:27:58 -05:00
Greyson Parrelli 1df8ef6464 Fix backup import issue when we dedude messages with edits. 2026-02-27 16:25:30 -05:00
Alex Hart f8d40bf86d Revert "Don't show 'Payment Pending' during backup subscription keep-alive flows."
This reverts commit e87aa22d32.
2026-02-27 17:02:15 -04:00
Alex Hart 58ab03b4e3 Fix crash when enabling vanity camera before capturer initialization. 2026-02-27 16:35:39 -04:00
Michelle Tang 0bf54e6b45 Fix network crash when unpinning. 2026-02-27 15:19:48 -05:00
jeffrey-signal 8fca0c69ac Bump version to 8.1.1 2026-02-26 21:51:58 -05:00
jeffrey-signal 70eb4ca2a1 Update baseline profile. 2026-02-26 21:29:00 -05:00
jeffrey-signal 9d9e30725e Update translations and other static files. 2026-02-26 21:20:51 -05:00
jeffrey-signal ff9585ec7d Show member labels on the admin sheet. 2026-02-26 20:00:36 -05:00
Greyson Parrelli a418c2750a Fix mute icons theming. 2026-02-26 13:54:11 -05:00
jeffrey-signal 9581994050 Handle network and permissions errors when saving group member label. 2026-02-26 10:34:16 -05:00
jeffrey-signal 316d0e67c5 Enforce member label emoji and text constraints. 2026-02-26 08:32:32 -05:00
Cody Henthorne 503bf04ec5 Bump version to 8.1.0 2026-02-25 20:01:23 -05:00
Cody Henthorne d6b76936dd Update baseline profile. 2026-02-25 19:55:25 -05:00
Cody Henthorne c53d16717b Update translations and other static files. 2026-02-25 19:46:16 -05:00
jeffrey-signal 2c747daa50 Disable member label button for users without permission to edit. 2026-02-25 19:38:12 -05:00
jeffrey-signal 0b2d3edcce Add member labels education sheet. 2026-02-25 19:38:12 -05:00
jeffrey-signal 955bcde062 Rotate send member labels flag. 2026-02-25 19:38:12 -05:00
Greyson Parrelli a91aa72fb4 Guard against missing integrity check in CopyAttachmentToArchiveJob.
Add a check for hadIntegrityCheckPerformed() before attempting to copy
an attachment to the archive. If the attachment's download has failed
(transferState == FAILED), requireMediaName() would throw an
IllegalArgumentException because the integrity check was never
completed. The fix resets the archive transfer state to NONE and skips,
allowing a future successful download to re-trigger archiving.
2026-02-25 19:38:12 -05:00
Alex Hart 163ece75b2 Remove note about call links if there are no call links selected. 2026-02-25 19:38:12 -05:00
Alex Hart a8fb5f2598 Prevent EmojiTextView measurement oscillation on size changes. 2026-02-25 19:38:12 -05:00
Alex Hart 3a62ad67e1 Fix out-of-sync audio selection.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-25 19:38:12 -05:00
Greyson Parrelli 48f4e1ddc6 Rotate the android.cameraXModelBlockList and android.cameraXMixedModelBlockList flags. 2026-02-25 19:38:12 -05:00
Greyson Parrelli c37bb96aab Only bind camera use cases that the device supports.
The new camera implementation always bound all four CameraX use cases
(preview, image capture, video capture, and image analysis) regardless
of device capabilities. On devices with LEGACY camera hardware level,
this causes image capture to fail with "Capture request failed with
reason ERROR" because the hardware cannot handle that many simultaneous
use cases.

This change makes video capture and QR scanning use case binding
conditional based on CameraXModePolicy, which already determines device
capabilities. Video capture is only bound when the device supports mixed
mode (image + video simultaneously). QR scanning analysis is only bound
when explicitly requested.
2026-02-25 19:38:12 -05:00
jeffrey-signal a2057e20d2 Rename UiCallbacks interfaces to avoid redeclaration errors. 2026-02-25 19:38:12 -05:00
Greyson Parrelli 577e05eb51 Make sure we transcode non-H264 video. 2026-02-25 19:38:12 -05:00
Greyson Parrelli 65a30cf2a7 Mark attachment 404's as permanent failures. 2026-02-25 19:38:12 -05:00
Greyson Parrelli 121f0c6134 Add custom mute until option. 2026-02-25 19:38:12 -05:00
jeffrey-signal 7d1897a9d2 Add ability to set group member label from conversation settings. 2026-02-25 19:38:12 -05:00
Alex Hart 415dbd1b61 Fix issue with joining video call from lock screen.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-25 19:38:12 -05:00
Alex Hart cfc1c35203 Eliminate unnecessary utilization of SubcomposeLayout which was causing a calling crash.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-25 19:38:12 -05:00
Alex Hart 911d7f3be8 Fix crash occurring when user rapidly enters and leaves a call.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-25 19:38:12 -05:00
Cody Henthorne c06944da13 Add receipt processing benchmark tests. 2026-02-25 19:38:12 -05:00
Alex Hart b6dd4a3579 Fix formatting in EditMessageRevisionTest. 2026-02-25 09:49:49 -04:00
Greyson Parrelli b057e145c5 Ensure usernames are unique regardless of casing. 2026-02-25 00:34:22 -05:00
Greyson Parrelli 772ad3b929 Show gallery button on camera screen when camera permission is denied. 2026-02-24 23:46:42 -05:00
Michelle Tang 46681868d3 Put new deleting UI behind remote config. 2026-02-24 18:21:51 -05:00
Michelle Tang 75795bd7d5 Update incoming delete message strings. 2026-02-24 18:10:16 -05:00
Greyson Parrelli 1908723fbe Prevent potential ISE in MediaPreviewV2Fragment. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 549992c08a Fix potention NPE on video recording failures. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 845704b9fe Map UNKNOWN group member role to DEFAULT during backup export. 2026-02-24 16:50:01 -05:00
Greyson Parrelli ba03ca5e0c Drop quotes with unexported authors during backup export. 2026-02-24 16:50:01 -05:00
Cody Henthorne 92a9f12b58 Fix notification not being dismissed for read edited message. 2026-02-24 16:50:01 -05:00
Cody Henthorne 3437ac63bb Fix group recipient being created without a group record. 2026-02-24 16:50:01 -05:00
jeffrey-signal d798a35c38 Member labels padding, margin, and styling fixes. 2026-02-24 16:50:01 -05:00
Alex Hart 01b56995d9 Add distinctUntilChanged to speaker hint flow to prevent repeated popups.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-24 16:50:01 -05:00
Greyson Parrelli 3f190efb4e Validate profile keys before writing them to backup exports. 2026-02-24 16:50:01 -05:00
Greyson Parrelli bb6b149c2e Fix potential validation error with mentions. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 65b96fff16 Delete some dead testing code. 2026-02-24 16:50:01 -05:00
jeffrey-signal 0b8e8a7b2f Separate v1 and v2 colorizer implementations. 2026-02-24 16:50:01 -05:00
jeffrey-signal a8a6fec19d Show preview on edit member label screen. 2026-02-24 16:50:01 -05:00
Greyson Parrelli a3fce4c149 Filter hidden recipients from contact-joined notifications. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 85265412da Skip trigger drop/recreate in deleteMessagesInThread when there are no messages to delete.
The deleteMessagesInThread method unconditionally drops and recreates FTS
and MSL triggers in every call, even when there are no messages matching
the delete criteria. Each trigger drop/create cycle changes the database
schema cookie, causing SQLITE_SCHEMA errors for concurrent reader
connections.
2026-02-24 16:50:01 -05:00
andrew-signal e636a94de0 Fix bug where we constantly cycled network stack when on network with PAC proxy. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 08509f6693 Fix bug where video dimensions aren't always correct in chat view. 2026-02-24 16:50:01 -05:00
Greyson Parrelli d28fc98cfd Add ability to use volume buttons to capture image/video. 2026-02-24 16:50:01 -05:00
Michelle Tang f584ef1d72 Add network constraint to admin delete job. 2026-02-24 16:50:01 -05:00
Alex Hart 67a6df57c8 Allow user to cancel in-flight keep-alive donation. 2026-02-24 16:50:01 -05:00
Greyson Parrelli fadbb0adc5 Enable change animations in the conversation list. 2026-02-24 16:50:01 -05:00
Michelle Tang 58774033b7 Prioritize regular delete first. 2026-02-24 16:50:01 -05:00
Cody Henthorne 66f0470960 Improve incoming group message processing. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 68137cb66f Add internal config to schedule a message after the weekend. 2026-02-24 16:50:01 -05:00
Alex Hart 4d6cacdb3d Fix call controls flickering when starting a video call.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-24 16:50:01 -05:00
Alex Hart cf862af3ca Increase bank transfer minimum name limit.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-24 16:50:01 -05:00
Alex Hart a8d106a292 Disable audio focus for video GIF playback in media send flow.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-24 16:50:01 -05:00
Michelle Tang 6155140de4 Default to allowing multiple votes. 2026-02-24 16:50:01 -05:00
Alex Hart a4637248e8 Set megaphone snooze for backups to 2 weeks. 2026-02-24 16:50:01 -05:00
Alex Hart 8c4470a27e Add logline for full-screen intent support. 2026-02-24 16:50:01 -05:00
Michelle Tang 071fbfd916 Add support for admin delete. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 1968438ebb Improve video transcoding error logging. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 7b31383b88 Improve video encoder/decoder fallback logic. 2026-02-24 16:50:01 -05:00
Cody Henthorne 093a79045d Fix incorrect sender key state for mismatch/stale devices. 2026-02-24 16:50:01 -05:00
Cody Henthorne e4928b0084 Fix long database transaction when syncing system contact information. 2026-02-24 16:50:01 -05:00
jeffrey-signal 03420cf501 Prevent autofill framework from treating message input as a credential field. 2026-02-24 16:50:01 -05:00
Cody Henthorne 541b4674a8 Add remote_backups cta action for release notes. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 6e108a03d1 Improve video transcode test error detection. 2026-02-24 16:50:01 -05:00
Alex Hart c9dd332abd Pre-Registration Restoration from Local Unified Backup. 2026-02-24 16:50:01 -05:00
jeffrey-signal 7e605fb6de Fix member label emoji ignoring use system emoji preference. 2026-02-24 16:50:01 -05:00
andrew-signal fa2b0aedb0 Bump to libsignal v0.87.4 2026-02-24 16:50:01 -05:00
andrew-signal 402f49edd9 Replace usages of old getEncryptedUsernameFromLinkServerId for libsignal's lookUpUsernameLink. 2026-02-24 16:50:01 -05:00
Greyson Parrelli caf2e555dd Fix more HDR transcoding errors. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 32dc36d937 Fix various transcoding issues on samsung devices. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 771d49bfa8 Add an instrumentation test for video transcoding. 2026-02-24 16:50:01 -05:00
Greyson Parrelli 70dc78601a Exclude time from apk output filename. 2026-02-24 16:50:01 -05:00
Cody Henthorne b4d781ddbb Reduce calls to sleep for WebSocket keep alives. 2026-02-24 16:50:01 -05:00
jeffrey-signal 9c29601b55 Consolidate about sheet state into a single object. 2026-02-24 16:50:01 -05:00
jeffrey-signal 28c37cb3ac Add ability to edit member label from the about you sheet. 2026-02-24 16:50:01 -05:00
DivyaKhunt07 bd121e47c8 Fix bubble desired height calculation. 2026-02-24 16:50:00 -05:00
Greyson Parrelli 7428e1e2ea Improve UI for regV5 verification code submission. 2026-02-24 16:50:00 -05:00
Greyson Parrelli 376cb926b0 Give a more readable in-app version name to the nightly. 2026-02-24 16:50:00 -05:00
Greyson Parrelli 4ed0056d2a Preserve user zoom level when starting video recording.
Remove the unconditional zoom reset to 1x at the start of video
recording so that any pinch-to-zoom the user applied before recording
is maintained.
2026-02-24 16:50:00 -05:00
Cody Henthorne 177ef8a555 Bump version to 8.0.4 2026-02-24 16:24:04 -05:00
Cody Henthorne 7244a1f52f Update translations and other static files. 2026-02-24 16:23:32 -05:00
Alex Hart 8d311923c1 Fix possible crash when restoring fragments. 2026-02-24 17:00:47 -04:00
Cody Henthorne 9359d56880 Bump version to 8.0.3 2026-02-23 11:42:37 -05:00
Cody Henthorne 3214200188 Update baseline profile. 2026-02-23 11:35:58 -05:00
Cody Henthorne 841ab7f983 Update translations and other static files. 2026-02-23 11:06:18 -05:00
Alex Hart 53b3728432 Update handling for early nav. 2026-02-23 11:13:42 -04:00
Alex Hart cf9f98efc9 Fix bad behavior when rotating device with message details open. 2026-02-23 10:54:21 -04:00
Alex Hart b5c666a1f4 Bump version to 8.0.2 2026-02-19 13:18:41 -04:00
Alex Hart b1954a509c Update baseline profile. 2026-02-19 13:16:06 -04:00
Alex Hart c2c91cfe42 Update translations and other static files. 2026-02-19 12:51:41 -04:00
Greyson Parrelli cccbec5744 Only set HDR transcoder flags for HDR content. 2026-02-19 10:58:55 -05:00
Alex Hart 4c89b20fad Fix possible captcha race. 2026-02-19 11:14:14 -04:00
Greyson Parrelli 2328fa3e88 Route video GIF attachments to the GENERIC_TRANSCODE queue. 2026-02-19 09:57:23 -05:00
Greyson Parrelli e19d4624c1 Fix video transcoding crash caused by premature codec API calls.
Move getParameterDescriptor and setParameters calls to after
configure/start, since they require the codec to be in the
Executing state. Always set KEY_COLOR_TRANSFER_REQUEST in the
format before configure as the primary tone-mapping mechanism.
2026-02-19 09:57:06 -05:00
Alex Hart 345f58ed48 Bump version to 8.0.1 2026-02-18 16:26:31 -04:00
Alex Hart 4c14ce3937 Update translations and other static files. 2026-02-18 16:17:34 -04:00
Alex Hart 82684c0169 Bump version to 8.0.0 2026-02-18 16:03:34 -04:00
Alex Hart 2607328255 Update translations and other static files. 2026-02-18 15:52:21 -04:00
Michelle Tang 484ce3a1da Turn on binary service writes. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 85d5f62301 Fix potential archive sync issue. 2026-02-18 15:48:16 -04:00
jeffrey-signal b0571f8184 Fix edit group member label placeholder text. 2026-02-18 15:48:16 -04:00
Cody Henthorne b80dd28b40 Defensively prevent gif playback in background. 2026-02-18 15:48:16 -04:00
Greyson Parrelli e0cf0808cf PIP moves opposite to finger in RTL mode.
Co-authored-by: Alex Hart <alex@signal.org>
2026-02-18 15:48:16 -04:00
Greyson Parrelli ffdd5b62ae Remove now-unused colorInfo parsing from video transcoding. 2026-02-18 15:48:16 -04:00
jeffrey-signal 3b5376ef8b Fix mixed-directional text input behavior in recipient search field. 2026-02-18 15:48:16 -04:00
jeffrey-signal cd57fb0d76 Fix member label pill overflow caused by excessive combining marks. 2026-02-18 15:48:16 -04:00
adel-signal 6986acd6f4 Update RingRTC to 2.65.0
Co-authored-by: emir-signal <emir@signal.org>
Co-authored-by: Cody Henthorne <cody@signal.org>
2026-02-18 15:48:16 -04:00
Greyson Parrelli 2bc571ffd3 Possible fix for some transcoding issues. 2026-02-18 15:48:16 -04:00
Greyson Parrelli a8dddf33f8 Media needs to be tapped on twice for it to load during call.
Fixes #14581
Fixes #14592
2026-02-18 15:48:16 -04:00
Greyson Parrelli 46582a685b Fix weird screen transition when accepting an incoming call.
Co-authored-by: Alex Hart <alex@signal.org>
2026-02-18 15:48:16 -04:00
Greyson Parrelli ad381783f7 Gifs stop or lower volume of other media playing.
Fixes #14297

Co-authored-by: Alex Hart <alex@signal.org>
2026-02-18 15:48:16 -04:00
jeffrey-signal b81c1eb65c Fix crash when selecting a group to add a recipient. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 2c4d3b3ee4 Fix deleted attachment still visible under 'Shared media'. 2026-02-18 15:48:16 -04:00
Greyson Parrelli d1400928ce Slide in country picker vertically in regV5. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 49abece92b Includes quotes of your messages in 'notify for mentions' setting.
Fixes #14595
2026-02-18 15:48:16 -04:00
Greyson Parrelli b48b1f031e Fix gradle format task. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 9cefe0bc04 Allow importing a backup as part of quickstart. 2026-02-18 15:48:16 -04:00
Greyson Parrelli ee73b0e229 Allow reading quickstart credentials from disk. 2026-02-18 15:48:16 -04:00
Greyson Parrelli ab0ce58812 Fix find-by-username text field using wrong background color.
The TextField was not explicitly setting container colors, causing it
to fall back to Material 3 defaults instead of the app's surfaceVariant
color. Added focusedContainerColor, unfocusedContainerColor, and
disabledContainerColor to match the pattern used throughout the rest
of the codebase.
2026-02-18 15:48:16 -04:00
Greyson Parrelli 333a206d36 Fix issue where emoji search bar got weird after tab switching. 2026-02-18 15:48:16 -04:00
Michelle Tang 86bb7666ea Fix unpinning all in note to self. 2026-02-18 15:48:16 -04:00
Cody Henthorne 58b5ebf39d Allow SendDeliveryReceiptJob to run during benchmarking tests. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 47947b85c7 Fix note to self media delete options. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 6910ba6d2e Ignore storageId in Recipient.hasSameContent().
Was potentially causing unnecessary UI churn.
2026-02-18 15:48:16 -04:00
Cody Henthorne 08254edae6 Add incoming group message benchmark tests. 2026-02-18 15:48:16 -04:00
Greyson Parrelli e67307a961 Add quickstart variant that launches with predefined credentials. 2026-02-18 15:48:16 -04:00
Cody Henthorne 9922621945 Add incoming individual message benchmark tests. 2026-02-18 15:48:16 -04:00
Greyson Parrelli c7476a2a07 Mute in lobby if accepting large group call. 2026-02-18 15:48:16 -04:00
Alex Hart ac59528f5c Enable call vanity when joining a video call. 2026-02-18 15:48:16 -04:00
Alex Hart 97c9728c65 Resolve crash in blur container due to multiple measures. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 80d1694e6e Ensure data is updated when refreshing contacts during a search.
Fixes #14112
2026-02-18 15:48:16 -04:00
Greyson Parrelli 28c6e31c7d Removing a recipient does not immediately remove them from the contacts list. 2026-02-18 15:48:16 -04:00
Cody Henthorne 8836b2a570 Fix media send delayed after backgrounding app. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 786c2b888b Remove beta labeling from Signal Secure Backups. 2026-02-18 15:48:16 -04:00
Greyson Parrelli c91275c5da Add the country code picker to regV5. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 7b362460e7 Spruce up the welcome and permission screens in regV5. 2026-02-18 15:48:16 -04:00
Greyson Parrelli a1862c3420 Sticker from Google emoji keyboard renders as image attachment when forwarded. 2026-02-18 15:48:16 -04:00
jeffrey-signal 44ea9ccc59 Fix unique constraint violation when importing groups with duplicate recipient IDs. 2026-02-18 15:48:16 -04:00
andrew-signal 4c9cdf3b8f Refactor RefreshOwnProfileJob to Kotlin. 2026-02-18 15:48:16 -04:00
Greyson Parrelli 4a6d4f197d Add 429 handling to various archive calls. 2026-02-18 15:48:16 -04:00
Greyson Parrelli ae04749336 Add better logging for ovesized messages. 2026-02-18 15:48:16 -04:00
Cody Henthorne caa743aba2 Fix foreground service start in background crash by starting service sooner for incoming group calls. 2026-02-18 15:48:16 -04:00
Alex Hart a4469a4285 Fix issue with initial audio output setting.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-18 15:48:08 -04:00
Alex Hart 2771b31aab Clear stale user-selected audio device when it disconnects.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-18 15:48:06 -04:00
Greyson Parrelli 5c418a4260 Add RRP support to regV5. 2026-02-18 15:48:06 -04:00
Alex Hart 17dbdf3b74 Bump version to 7.74.3 2026-02-18 11:38:55 -04:00
Alex Hart 8315ae47c4 Update translations and other static files. 2026-02-18 11:31:14 -04:00
Michelle Tang 50b59805ca Add more binary service reads. 2026-02-18 10:13:41 -05:00
Alex Hart 58bc387d0b Bump version to 7.74.2 2026-02-17 23:18:40 -04:00
Alex Hart d2dd6790a0 Update translations and other static files. 2026-02-17 23:16:23 -04:00
jeffrey-signal 78c7795b89 Fix sender name/label overflowing beyond message bubble media width. 2026-02-17 22:43:06 -04:00
jeffrey-signal 73c25f3476 Ensure consistent margins below sender name/label. 2026-02-17 18:17:36 -05:00
jeffrey-signal 6f9f89734d Fix sender name/label overflowing beyond message bubble media width. 2026-02-17 16:10:33 -05:00
Greyson Parrelli da68bee742 Fix issue where you can't download media in calls. 2026-02-17 11:44:28 -05:00
jeffrey-signal e5f1f9394d Fix sender name alignment in conversations. 2026-02-17 11:37:07 -05:00
Michelle Tang d9d6f8c97e Bump version to 7.74.1 2026-02-16 16:33:31 -05:00
Michelle Tang a35a141411 Update translations and other static files. 2026-02-16 16:18:38 -05:00
Michelle Tang 1e0c7b1120 Fix recipient call crash. 2026-02-16 16:09:39 -05:00
Michelle Tang 9b9734f82a Bump version to 7.74.0 2026-02-11 18:24:13 -05:00
Michelle Tang fe437b5234 Update translations and other static files. 2026-02-11 18:14:12 -05:00
jeffrey-signal 59bb505a3e Support member labels in backups. 2026-02-11 18:08:57 -05:00
jeffrey-signal 28d8d62cbd Rotate receive member labels flag. 2026-02-11 18:08:57 -05:00
jeffrey-signal cb05608422 Show member labels in quotes. 2026-02-11 18:08:57 -05:00
Michelle Tang e384a37fab Fix beta label width. 2026-02-11 18:08:57 -05:00
Michelle Tang 9a04cd9e3b Move education sheet to safety numbers screen. 2026-02-11 18:08:57 -05:00
Cody Henthorne dd396eb75a Fix group updates from others showing before messages made before the update. 2026-02-11 18:08:57 -05:00
Greyson Parrelli 611b52780e Fix sticker grid sometimes getting stuck on 2 columns. 2026-02-11 18:08:57 -05:00
Michelle Tang 20a05220ea Adjust strings. 2026-02-11 18:08:57 -05:00
Greyson Parrelli 38e8f24c20 Fix gif and stickers buttons disappearing after exiting edit. 2026-02-11 18:08:57 -05:00
Alex Hart 58d2c92102 Move the rest of the permissions classes. 2026-02-11 18:08:57 -05:00
Greyson Parrelli f90ba45940 Make pinned chat limit remote configurable. 2026-02-11 18:08:57 -05:00
Tom Ritter 1ecf42bfd3 Fix the message edited label not always appearing.
Closes signalapp/Signal-Android#14582
2026-02-11 18:08:57 -05:00
Greyson Parrelli ed56c21e5b Fix bug where image wasn't showing after send. 2026-02-11 18:08:57 -05:00
Greyson Parrelli a0c55baf39 Show whose safety number changed in group chat summaries. 2026-02-10 11:34:24 -05:00
Greyson Parrelli 3b3ef0d545 Allow some context menu actions in search. 2026-02-10 11:30:05 -05:00
jeffrey-signal 78e7f99344 Add group member labels to conversation items. 2026-02-10 10:35:54 -05:00
jeffrey-signal d709d67f54 Fix position of clearable text field remaining characters count. 2026-02-10 10:35:54 -05:00
jeffrey-signal 6d30fd11a7 Add description to edit member label screen. 2026-02-10 10:35:54 -05:00
Cody Henthorne 4a39c7950f Split performance benchmark and baseline profile into separate modules. 2026-02-10 10:35:54 -05:00
Greyson Parrelli 3dd5ad2a8a Fix video scrubber contrast with HDR video.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2026-02-10 10:35:54 -05:00
jeffrey-signal d7b7727aa6 Show member labels in conversation settings. 2026-02-10 10:35:54 -05:00
Cody Henthorne 0199cd24ef Remove proto files from APK. 2026-02-10 10:35:54 -05:00
jeffrey-signal 8513e8c4f9 Fix donation learn more sheet icon colors. 2026-02-10 10:35:54 -05:00
Greyson Parrelli 5d2d9017f1 Fix for some HDR transcoding issues.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2026-02-10 10:35:54 -05:00
Alex Hart 879e8f98bd Ensure lint configuration is applied to all modules. 2026-02-10 10:35:54 -05:00
Greyson Parrelli 2c6524f6c0 Include battery info debuglog. 2026-02-10 10:35:54 -05:00
Greyson Parrelli c9bd81d332 Show linked deviceId's for internal users. 2026-02-10 10:35:54 -05:00
Greyson Parrelli 2d29b02cea Add new sticker packs.
- My Daily Life 2
- Rocky Talk
- Cozy Season
- Chug the Mouse
- Croco's Feelings as blessed sticker packs
2026-02-10 10:35:54 -05:00
andrew-signal c0a279fcc5 Bump to libsignal v0.87.1 2026-02-10 10:35:54 -05:00
Greyson Parrelli 1a612fab0b Update video demo app to minSdk 26. 2026-02-10 10:35:54 -05:00
Michelle Tang 63e821634a Adjust strings. 2026-02-10 10:35:54 -05:00
Alex Hart 62d951b438 Move additional fragments to core UI. 2026-02-10 10:35:54 -05:00
Greyson Parrelli 8d749c404f Refactor and improve video demo app. 2026-02-10 10:35:54 -05:00
jeffrey-signal d5b2f4fdd3 Display member label on recipient details sheet. 2026-02-10 10:35:54 -05:00
Alex Hart fae4ca91bd Ensure spans are accounted for when measuring text. 2026-02-10 10:35:54 -05:00
Alex Hart 6e92ff5096 Move fragments to core UI. 2026-02-10 10:35:54 -05:00
jeffrey-signal 61522cd682 Fix GroupTable.memberLabel() to return null for blank labels. 2026-02-10 10:35:54 -05:00
jeffrey-signal 74dbd0814a Add comment to clarify intentional fall-through in DeviceTransferSetUpFragment switch statement.
Resolves signalapp/Signal-Android##14437
2026-02-10 10:35:54 -05:00
Alex Hart 05751a5b79 Remove app module SignalTheme. 2026-02-10 10:35:54 -05:00
Alex Hart 7741844055 Add audio-indicator slot to use for single-remote-participant calls. 2026-02-10 10:35:54 -05:00
Cody Henthorne 09c07f0707 Fix benchmark tests. 2026-02-10 10:35:54 -05:00
Alex Hart c565db812e Fix back button intermittently not working in conversation view.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2026-02-10 10:35:54 -05:00
Greyson Parrelli 00b72c9263 Clean up system for blessed sticker packs. 2026-02-10 10:35:54 -05:00
Alex Hart 5c415139fd Reshape entry point for V3 media screens. 2026-02-10 10:35:54 -05:00
jeffrey-signal 6d944c0f8c Add tests for MemberLabelViewModel. 2026-02-10 10:35:53 -05:00
Michelle Tang 6744a79325 Avoid showing KT for note to self. 2026-02-10 10:35:53 -05:00
Michelle Tang 472d86acc0 Bump version to 7.73.2 2026-02-09 16:33:14 -05:00
Michelle Tang c1ee7a53b5 Update translations and other static files. 2026-02-09 16:29:47 -05:00
Greyson Parrelli 8d44640377 Prompt for microphone permission when recording video in new camera.
Previously, the new camera would silently record video without audio
when microphone permission was missing. Now it shows the same rationale
dialog and permanent denial flow as the old camera.
2026-02-09 15:52:03 -05:00
Greyson Parrelli cbcbe3f564 Use OrientationEventListener to update CameraX target rotation. 2026-02-09 14:15:52 -05:00
Greyson Parrelli 698923423f Downsample gallery thumbnail to display size in camera HUD.
Was loading full size image, potentially causing OOM.
2026-02-09 12:01:40 -05:00
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
Michelle Tang fa7d19e474 Bump version to 7.39.3 2025-04-07 15:18:56 -04:00
Michelle Tang 3a7f9a1985 Update translations and other static files. 2025-04-07 15:11:49 -04:00
Sagar e8ff5b19f9 Fix video remainingTime calculation. 2025-04-07 12:44:05 -04:00
Alex Hart 05701fde00 Fade in fabs after search is closed. 2025-04-07 13:12:40 -03:00
Alex Hart 94d1669363 Fix lineheight. 2025-04-07 12:54:55 -03:00
Greyson Parrelli 7f42f358a5 Bump version to 7.39.2 2025-04-03 21:48:29 -04:00
Greyson Parrelli e9c3209322 Update baseline profile. 2025-04-03 21:48:29 -04:00
Greyson Parrelli 006a01b7f2 Update translations and other static files. 2025-04-03 21:48:29 -04:00
Alex Hart 9ddd24566d Fix action mode status bar coloring. 2025-04-03 21:48:29 -04:00
Alex Hart a3166a8c73 Fix toolbar coloring behavior. 2025-04-03 21:48:29 -04:00
Alex Hart 117c2ad5dd Fix crash coming back from archive fragment. 2025-04-03 12:37:13 -03:00
Alex Hart 5e156c8576 Fix action mode rendering. 2025-04-03 12:21:59 -03:00
Michelle Tang a073785407 Update system default language when switching. 2025-04-02 15:39:54 -04:00
Alex Hart 45ea0c0c97 Fix errant toolbar method. 2025-04-02 11:41:31 -03:00
Greyson Parrelli 43dcaacdaf Bump version to 7.39.1 2025-04-01 18:34:05 -04:00
Greyson Parrelli aa89cd3d6c Update translations and other static files. 2025-04-01 18:33:46 -04:00
Greyson Parrelli 137ebd27eb Update to libsignal v0.68.1 2025-04-01 18:28:32 -04:00
Alex Hart 6323cd0fd4 Inline flag to enable auto-lower-hand for everyone. 2025-04-01 12:54:14 -03:00
Alex Hart 62305c6910 Fix content color in search field. 2025-04-01 12:15:02 -03:00
Alex Hart 681d38611d Hide stories if feature is disabled. 2025-04-01 12:10:09 -03:00
Alex Hart 38dedae8dd Fix navigation bar lottie animation duration. 2025-04-01 12:03:11 -03:00
Greyson Parrelli ac39821841 Bump version to 7.39.0 2025-03-31 15:36:17 -04:00
Greyson Parrelli 50aef6c3bc Update baseline profile. 2025-03-31 15:28:52 -04:00
Greyson Parrelli ad67d931df Update translations and other static files. 2025-03-31 14:59:06 -04:00
Greyson Parrelli c9308f05ca Disable the configuration cache (for now). 2025-03-31 14:46:59 -04:00
Sagar d1ba4fa19f Update profile initials after name change. 2025-03-31 14:44:13 -04:00
Sagar 48f8ebd0a8 Prevent showing Empty MediaPreview screen and avoid Camera/Gallery Stack. 2025-03-31 14:44:13 -04:00
Sagar 5237568bec Fix buttons weight distribution in QualitySelectorBottomSheet. 2025-03-31 14:44:13 -04:00
Alex Hart 49fcf08331 Move toolbar into main activity composable. 2025-03-31 14:44:13 -04:00
Sagar 23af6e2bf9 Improve Media Player current and remaining time logic. 2025-03-31 14:44:13 -04:00
Cody Henthorne eb44dd4318 Provide retry UX for tier restore network failures. 2025-03-31 14:44:13 -04:00
Greyson Parrelli 9b527f7c6c Add additional validations around quote authors during export. 2025-03-31 14:44:13 -04:00
Sagar 1f95e0dd39 Hide scheduled media from conversation settings. 2025-03-31 14:44:13 -04:00
Sagar 02ee1c794b Fix play console crash reports. 2025-03-31 14:44:13 -04:00
Sagar 63c00e638d Fix witness verification for windows. 2025-03-31 14:44:13 -04:00
Greyson Parrelli a421b5c6bb Add extra validation around shared contact backups. 2025-03-31 14:44:13 -04:00
Greyson Parrelli 42e7f5f4fc Do not allow invalid thread merge events in backups. 2025-03-31 14:44:13 -04:00
Michelle Tang cffba71186 Add language support for Belarusian. 2025-03-31 14:44:13 -04:00
Alex Hart 10141717bd Add adaptive-layout and adaptive-navigation libraries. 2025-03-31 14:44:13 -04:00
Alex Hart eb190f5f00 Remove ConversationListTabs enum. 2025-03-31 14:44:13 -04:00
Greyson Parrelli 0b315220ee Quiet excessive warnings. 2025-03-31 14:44:13 -04:00
Alex Hart 2b94489721 Fix witness verifications for OSX. 2025-03-31 14:44:13 -04:00
Alex Hart 7fe4816087 Add compose bottom chrome. 2025-03-31 14:44:13 -04:00
Greyson Parrelli 80bc2bdc89 Fix some lint errors. 2025-03-31 14:44:06 -04:00
Greyson Parrelli 8a2e15b76b Update to gradle 8.9.0 2025-03-31 14:44:06 -04:00
Alex Hart c31c75d189 Temporary fix for notification profile icon. 2025-03-31 14:44:06 -04:00
Greyson Parrelli 17216316f6 Dynamically compute MediaName and MediaId. 2025-03-31 14:44:06 -04:00
Alex Hart f1985cf506 Reimplement main activity toolbars in compose. 2025-03-31 14:44:06 -04:00
Michelle Tang 5f7ce0d96d Fix wrong language being selected for system default. 2025-03-31 14:44:06 -04:00
andrew-signal 88fd8fb36b Add handling for AppExpiredConnection in LibSignalChatConnection:connect.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-03-31 14:44:06 -04:00
andrew-signal defe94c4fa Update to libsignal v0.68.0 2025-03-31 14:44:06 -04:00
andrew-signal 2a8be22160 Enable libsgnal-net for all nightly builds. 2025-03-31 14:44:06 -04:00
Greyson Parrelli f48a13afc0 Fix handling of missing files during archive upload. 2025-03-31 14:44:06 -04:00
Greyson Parrelli d1accfff82 Fixed internal setting behavior for forcing backup type. 2025-03-28 10:34:39 -04:00
Cody Henthorne d87b313fb3 Only allow ACI auth for websocket at this time. 2025-03-28 10:30:05 -04:00
Cody Henthorne ca8aa78705 Catch additional CDS exceptions to prevent crash. 2025-03-28 10:03:42 -04:00
Sagar b5987feab3 Fix DateTime conversions for search datePicker. 2025-03-28 19:33:01 +05:30
Sagar 36c50d7dde Reset player position when video is finished. 2025-03-28 19:26:00 +05:30
Cody Henthorne dea73e808c Fix pinned chat ordering sent to storage service. 2025-03-28 09:49:33 -04:00
Sagar 6847e0e4da Update conversation list for scheduled group message. 2025-03-28 00:10:59 +05:30
Alex Hart ca82a99b9a Do not disable camera if undergoing a configuration change. 2025-03-27 14:43:32 -03:00
Greyson Parrelli 944e861594 Temporarily ignore flaky network test. 2025-03-27 13:27:44 -04:00
Greyson Parrelli b5da07762c Fix unit of retry-after header. 2025-03-27 13:13:19 -04:00
Sagar ad6c89bc01 Add support to dynamically update Recipient data in group settings. 2025-03-27 22:02:20 +05:30
Sagar 6b86a33f2a Support stop download and upload for documents. 2025-03-27 21:53:04 +05:30
Greyson Parrelli bde791e03e Make the stopship task more reliable. 2025-03-27 10:25:34 -04:00
Sagar 857306d7a3 Update blur face button state on clear all while image editing. 2025-03-27 00:43:46 +05:30
Sagar 8f5f1b8906 Update dim button state on reset wallpaper. 2025-03-27 00:42:19 +05:30
Alex Hart 0358631029 Add ability to Self-heal SEPA bug. 2025-03-26 16:11:49 -03:00
Sagar de54ff304d Improve byteCountEstimate calculation for videos. 2025-03-26 13:59:12 -04:00
Cody Henthorne 03614b32e4 Fix missing thumbnail background color. 2025-03-26 13:59:12 -04:00
Alex Hart c0113436a2 Fix instrumentation tests for payments. 2025-03-26 13:59:12 -04:00
Tito 71a44e1ebd Update README.md copyright.
Closes #14060
2025-03-26 13:59:12 -04:00
Greyson Parrelli c4131bb440 Inline the attachment backfill flag. 2025-03-26 13:59:12 -04:00
Jeffrey Starke 0dfe71ca8f Fix crash when changing username on Android API < 24.
Basically, the crash was caused by using `Collections.unmodifiableList()`, which creates an `UnmodifiableCollection` wrapper around the original `List`.

That `UnmodifiableCollection` wrapper contains methods that return `java.util.stream.Stream` – which was added in Java 8, but can be used on Android API < 24 through [desugaring](https://developer.android.com/studio/write/java8-support-table). 

_However_, it appears that when Jackson is using reflection to serialize `ReserveUsernameRequest`, it examines all of the methods of that class. This results in a `java.lang.NoClassDefFoundError: java.util.stream.Stream`, because the reflection is looking at the actual runtime `UnmodifiableCollection` class and not desugared code.

As far as I can tell, that behavior is unavoidable and the only way to avoid this issue is to avoid using `Collections.unmodifiableList()` in classes that are serialized by Jackson on Android API < 24.
2025-03-26 13:59:12 -04:00
Sagar dc66da0667 Fix BubbleBanner dismiss click listener. 2025-03-26 13:59:12 -04:00
Cody Henthorne e3044b3c97 Update restore complete banner ux. 2025-03-26 13:59:12 -04:00
Cody Henthorne dd205e31a9 Fix incorrect state by Cycling restore decision state key. 2025-03-26 13:59:12 -04:00
Jeffrey Starke 0ef627b864 Use AttachmentSaver to save media overview files to device storage. 2025-03-26 13:59:12 -04:00
Sagar 18328079c8 Support dynamically updating common groups in recipient settings. 2025-03-26 13:59:12 -04:00
Sagar 114d9f21ed Support scroll for Scheduled Message dialog sheets. 2025-03-26 13:59:12 -04:00
Greyson Parrelli 7fa1403cff Fix nightly-url logic. 2025-03-26 13:59:12 -04:00
Alex Hart 276285ebef Replace main activity xml with AppScaffold. 2025-03-26 13:59:12 -04:00
Greyson Parrelli 8053d567f2 Update lint-baseline.xml 2025-03-26 13:59:12 -04:00
andrew-signal 9c48e669ee Remove unneeded test timeout. 2025-03-26 13:59:12 -04:00
Cody Henthorne 75e24ff7d5 Add and use special monospace typeface for AEP. 2025-03-26 13:59:12 -04:00
Sagar e88db06c8b Add "Tap to remove" option for emoji in ReactionsBottomSheet. 2025-03-26 13:59:12 -04:00
Sagar bcc11b9fbc Fix emoji picker weird scrolling in RTL. 2025-03-26 13:59:12 -04:00
Sagar b416c34fa8 Add support for audio to start from a seek position. 2025-03-26 13:59:12 -04:00
Alex Hart bf83914357 Convert MainActivity to Kotlin. 2025-03-26 13:59:12 -04:00
Alex Hart e22c403b10 Adjust footer offset on collapsed text items. 2025-03-26 13:59:12 -04:00
Sagar 59af304002 Fix Re-register screen UI. 2025-03-26 13:59:12 -04:00
Sagar 480fc84b8b Fix Save/Reset chat wallpaper crashes. 2025-03-26 13:59:12 -04:00
Ciphreon c8c0146fd0 Migrate Help Settings Fragment to Compose 2025-03-26 13:59:12 -04:00
Cody Henthorne 3e1edfbc67 Fix gv2 create/join bugs when profile credential is invalid. 2025-03-26 13:59:12 -04:00
Greyson Parrelli eba5c5ceeb Add support for configuration cache. 2025-03-26 13:59:12 -04:00
Jeffrey Starke 0f72c6face Fix missing toast message after write external storage permission is denied while saving an attachment.
`AttachmentSaver` was missing logic to show a toast message after the user denies `WRITE_EXTERNAL_STORAGE` permission.

#### Changeset
- Add missing toast after write external storage permission is denied.
- Add unit test coverage for `AttachmentSaver` result messages.
- Rename `AttachmentSaver` string resource names so they all have the same prefix.
2025-03-26 13:59:12 -04:00
Alex Hart b6f98521c8 Implement auto-lower-hand. 2025-03-26 13:59:12 -04:00
Alex Hart 32b710a3ca Rewrite bottom navigation in compose. 2025-03-26 13:59:12 -04:00
Greyson Parrelli a9ed6b6154 Fix ktlinformat on windows. 2025-03-26 13:59:12 -04:00
Jeffrey Starke 9db5f6ddd2 Use AttachmentSaver to save media preview files to device storage. 2025-03-26 13:59:12 -04:00
Jeffrey Starke a26377db6c Update MockK to v1.13.17
To get access to the fix for mockk/mockk#939.
2025-03-26 13:59:12 -04:00
Jeffrey Starke f0bb74a187 Use AttachmentSaver to save image editor files to device storage. 2025-03-26 13:59:12 -04:00
Dipesh Pal b1ff5dc5ef Preserve search term when refreshing contacts.
Fixes #14051
2025-03-26 13:59:12 -04:00
mosfet80 773b116a83 Update benchmark-libs.versions.toml
Fix cve2020-15250
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250
2025-03-26 13:59:12 -04:00
mosfet80 765d1cc8ec Update android.yml
Update libs
Fix node.js<20 deprecation

deprecated by gradle/actions/wrapper-validation.
2025-03-26 13:59:12 -04:00
Greyson Parrelli fbcf6e11ef Update rules for expiring messages in backupsV2. 2025-03-26 13:59:11 -04:00
andrew-signal 41783368bd Reject invalid TLS proxy configurations. 2025-03-26 13:59:11 -04:00
andrew-signal 9b98337e82 Adjust LibSignalChatConnection.disconnect() so we only transition to DISCONNECTED once. 2025-03-26 13:59:11 -04:00
Greyson Parrelli 7c9cd8964f Update attachment backfill proto. 2025-03-26 13:59:11 -04:00
Cody Henthorne e2961a3f6f Add auto-fill backup key support. 2025-03-26 13:59:11 -04:00
andrew-signal 2743bec704 Bump to libsignal v0.67.6 2025-03-26 13:59:11 -04:00
Greyson Parrelli dd1697de41 Improve display and management of backup progress. 2025-03-26 13:59:11 -04:00
Michelle Tang 5b18f05aa8 Add date to linked device notification. 2025-03-26 13:59:11 -04:00
Michelle Tang a681d06de5 Fix chevron placement for rtl languages. 2025-03-26 13:59:11 -04:00
Cody Henthorne cef839d300 Add verify AEP screen. 2025-03-26 13:59:11 -04:00
Michelle Tang 82bb18e218 Clean up chat folder records. 2025-03-26 13:59:11 -04:00
Jeffrey Starke 247c5de140 Add .compose and .view subpackages to core-ui module. 2025-03-26 13:59:11 -04:00
Cody Henthorne 8fc358f0a5 Fix incorrect showing of backups enabled bottom sheet on flow exit. 2025-03-26 13:59:11 -04:00
Jim Gustafson 28481e3aab Update to RingRTC v2.50.3 2025-03-26 13:59:11 -04:00
Jeffrey Starke bf8f603dcf Pause story playback while saving media.
Story playback was previously paused when the context menu is opened, but resumed while saving the media.

With this change, playback will remain paused while saving media, so the user doesn't potentially miss any stories while clicking through the dialogs to save media to their device storage.
2025-03-26 13:59:11 -04:00
Jeffrey Starke c876c7847e Use AttachmentSaver to save story images. 2025-03-26 13:59:11 -04:00
Jeffrey Starke 293012c219 Add unit test coverage for AttachmentSaver. 2025-03-26 13:59:11 -04:00
Jeffrey Starke b9dc5cbe4f Consolidate attachment saving logic into unified AttachmentSaver class.
Introduces `AttachmentSaver` to centralize all of the steps needed to save message attachments to the device storage. It handles the entire workflow including: 
- Showing the save to storage warning/confirmation dialog.
- Requesting `WRITE_EXTERNAL_STORAGE` permission.
- Showing/dismissing media save progress.

Goals of this new class:
- Make it easy to save media attachments anywhere with just a few lines of code (and easier to replace the deprecated `SaveAttachmentTask`).
- Ensure all of the necessary steps are consistently performed at each usage site (which wasn't the case before).
- Make it easier to unit test the save attachment logic.
2025-03-26 13:59:11 -04:00
Alex Hart 86afafac31 Clean up imports in InAppPaumentAuthCheckJob. 2025-03-26 13:59:11 -04:00
Alex Hart 05326acadc Fix potential crash if snackbar action is processed when fragment is not attached. 2025-03-26 13:59:11 -04:00
Alex Hart 80fc40bbc2 Do not show outgoing calls in missed call filter. 2025-03-26 13:59:11 -04:00
Milan Stevanovic f0e6b2944a Eliminate zero-sized samples from contributing to the audio track.
Eliminating unnecessary and potentially counter-productive zero-sized
samples from the audio trak. The Android MP4 multiplexer tends to add
them at the very end of the audio stream. Their presence may negatively
affect the declared audio stream duration, and pose further complications
down the road.

The changes are verified on Samsung A54 (Android 14) device.
2025-03-26 13:59:11 -04:00
Michelle Tang c1f96e5bd3 Fix conversation header position. 2025-03-26 13:59:11 -04:00
Cody Henthorne 2d9135da93 Add excluded directories to STOPSHIP task. 2025-03-26 13:59:11 -04:00
Cody Henthorne 095ae82483 Convert remote config apis to WebSocket. 2025-03-26 13:59:11 -04:00
Alex Hart 1e866a1e86 Do not create one-time receipt during auth check. 2025-03-26 13:59:11 -04:00
Alex Hart 6f52851222 Update with newBuilder. 2025-03-26 13:59:11 -04:00
Greyson Parrelli 0efccf67b8 Format backup progress numbers. 2025-03-26 13:59:11 -04:00
Greyson Parrelli e555802636 Add internal settings button to add dummy messages. 2025-03-26 13:59:11 -04:00
Alex Hart 4b3013984e Add unit tests to check for unregistered state. 2025-03-26 13:59:11 -04:00
Alex Hart 5d4fec2e73 Utilize newBuilder instead of copy in unit test. 2025-03-26 13:59:11 -04:00
Greyson Parrelli 1adcfd5abb Add custom STOPSHIP handling. 2025-03-26 13:59:11 -04:00
Greyson Parrelli 3727a8e1df Add internal setting for forcing backup tier. 2025-03-26 13:59:11 -04:00
Alex Hart ac4db23709 Add test for unregistered user state to InAppPaymentRecurringContextJobTest. 2025-03-26 13:59:11 -04:00
Alex Hart e3356163bf Fix unit tests missing isRegistered check. 2025-03-26 13:59:11 -04:00
Alex Hart f6aa324d41 Add unit testing for SharedInAppPaymentPipeline. 2025-03-26 13:59:11 -04:00
Michelle Tang ca5754cff3 Use standard avatar blur gradient algorithm. 2025-03-26 13:59:11 -04:00
Alex Hart 629f5a3a3d Add several registered checks. 2025-03-26 13:59:11 -04:00
Jim Gustafson 076b47e695 Improve calling reliability with relay server response cache.
Co-authored-by: Cody Henthorne <cody@signal.org>
2025-03-26 13:59:11 -04:00
Alex Hart 92a28f7103 Ensure payment is in proper state before popping external iDEAL authorization. 2025-03-26 13:59:11 -04:00
andrew-signal 2a767c1e18 Fix races causing flakes in LibSignalChatConnectionTest. 2025-03-26 13:59:11 -04:00
Cody Henthorne d3f622478f Convert remaining profile apis to use WebSockets and remove REST fallback. 2025-03-26 13:59:11 -04:00
Cody Henthorne c66819449d Convert provisioning and certificate endpoints to WebSocket and finalize attachments. 2025-03-26 13:59:11 -04:00
Cody Henthorne aeec3a6f7e Convert prekey requests to WebSocket. 2025-03-26 13:59:11 -04:00
Michelle Tang da3fc408f8 Update conversation header with group members. 2025-03-26 13:59:11 -04:00
Cody Henthorne 41e0f2193a Convert SVR and GV2 auth requests to WebSocket. 2025-03-26 13:59:11 -04:00
Cody Henthorne 9e9a47f0da Convert WebSocket messaging apis to NetworkResult. 2025-03-26 13:59:11 -04:00
Cody Henthorne 7108d350e6 Fix spoiler rendering in story captions. 2025-03-26 13:59:11 -04:00
Cody Henthorne e9ae40e749 Fix draft lost bug when leaving media send flow. 2025-03-26 13:59:11 -04:00
Alex Hart 7cc4677120 Migrate paypal and stripe interactions to durable background jobs. 2025-03-26 13:59:11 -04:00
Greyson Parrelli ad00e7c5ab Fix issue where were were sometimes backing up an empty CDN key. 2025-03-26 13:59:11 -04:00
Greyson Parrelli a4c30393ee Make the backup remote config field active. 2025-03-26 13:59:11 -04:00
Greyson Parrelli 2147ee77bc Improve logging around setting backup tier. 2025-03-26 13:59:11 -04:00
Alex Hart 0cfa4774ad Do not display backups warnings if backups are disabled in remote configuration. 2025-03-26 13:59:11 -04:00
Alex Hart 14f99bba24 Fix InAppPayments database inconsistency. 2025-03-26 13:59:11 -04:00
Alex Hart 8d53c1b384 Fix message backup checkout e2e tests. 2025-03-26 13:59:11 -04:00
Cody Henthorne fff74256b5 Prevent duplicate restore local attachment jobs from being enqueue. 2025-03-26 13:59:11 -04:00
Cody Henthorne f154029eb1 Bump version to 7.38.7 2025-03-26 13:48:06 -04:00
Cody Henthorne 7480124a59 Update baseline profile. 2025-03-26 13:39:38 -04:00
Cody Henthorne 6de816ce86 Update translations and other static files. 2025-03-26 13:33:32 -04:00
Cody Henthorne d2cc5d54fe Use full version code for version tracking. 2025-03-26 13:23:47 -04:00
Greyson Parrelli 390a03b783 Fix query for thread merge fallback. 2025-03-26 09:09:26 -04:00
Greyson Parrelli 4b326a9875 Bump version to 7.38.6 2025-03-25 09:55:27 -04:00
Greyson Parrelli 0c05bfd756 Update translations and other static files. 2025-03-25 09:54:59 -04:00
Cody Henthorne b8032378f6 Only deprecate client on 499s from chat service. 2025-03-25 09:45:26 -04:00
Cody Henthorne 2f4669d7eb Fix web socket management related crashes. 2025-03-25 09:44:38 -04:00
Alex Hart 0fb6062db3 Bump version to 7.38.5 2025-03-21 16:47:50 -03:00
Alex Hart 8d0ad52c8a Update baseline profile. 2025-03-21 16:31:42 -03:00
Alex Hart bc3352148b Update translations and other static files. 2025-03-21 16:25:51 -03:00
Greyson Parrelli edf5ecf2d6 Fix potential archive export issue around voice notes in revisions. 2025-03-21 13:59:01 -04:00
Greyson Parrelli f145c20508 Fix potential archive export error around username. 2025-03-21 11:46:29 -04:00
Greyson Parrelli 8b54cea119 Fix potential NPE during archive export. 2025-03-21 11:25:51 -04:00
Greyson Parrelli 2b1f71d3b6 Fix potential constraint violation during thread merge. 2025-03-21 11:20:48 -04:00
Alex Hart df4c6b59cd Enable DOM storage and enable error messaging for PayPal user actions. 2025-03-21 10:42:58 -03:00
Alex Hart e5bb3f02f8 Bump version to 7.38.4 2025-03-19 11:01:02 -03:00
Alex Hart ad6c181e5c Update baseline profile. 2025-03-19 10:57:55 -03:00
Alex Hart 6d0f1919e0 Update translations and other static files. 2025-03-19 10:54:14 -03:00
Cody Henthorne 5a0def7390 Prevent unregistered clients from repeatedly attempting an auth WebSockect connection. 2025-03-19 10:48:31 -03:00
Alex Hart 49f764a392 Add SDK check for incoming call state during full screen intent display. 2025-03-19 10:48:31 -03:00
Cody Henthorne 2dacb3b20f Use unbounded thread pool for Rx I/O scheduler. 2025-03-19 10:48:31 -03:00
Cody Henthorne 323697dfc9 Improve auth WebSocket lifecycle. 2025-03-19 10:48:31 -03:00
Alex Hart 6bbd899507 Bump version to 7.38.3 2025-03-17 16:29:17 -03:00
Alex Hart e0c0ae0ee0 Update baseline profile. 2025-03-17 16:21:03 -03:00
Alex Hart 90ff303200 Update translations and other static files. 2025-03-17 16:12:25 -03:00
Alex Hart 4a5fb88800 Suppress megaphone if user is not registered. 2025-03-17 16:02:50 -03:00
Alex Hart 28d18a8012 Add checks for user registration when attempting to access dontations or perform keep-alive. 2025-03-17 16:01:52 -03:00
Alex Hart a7fb84e7e6 Improve error code handling in recurring context job. 2025-03-17 15:05:11 -03:00
Cody Henthorne 0d133b8d1e Improve stacktraces by not wrapping CDS exceptions in RuntimeExceptions. 2025-03-17 09:19:26 -04:00
Michelle Tang ab2f3e7918 Bump version to 7.38.2 2025-03-14 14:48:03 -04:00
Michelle Tang 98dbdfa6f9 Update translations and other static files. 2025-03-14 14:42:49 -04:00
Greyson Parrelli 39f440431c Fix story syncing to linked devices. 2025-03-14 11:45:14 -04:00
Michelle Tang 5ade733c3d Bump version to 7.38.1 2025-03-12 21:59:22 -04:00
Michelle Tang c38eb86a48 Update translations and other static files. 2025-03-12 21:56:40 -04:00
Michelle Tang c54958f0a9 Fix crash in migration job. 2025-03-12 21:43:17 -04:00
6015 changed files with 591003 additions and 181275 deletions
+14
View File
@@ -18,3 +18,17 @@ 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
ktlint_standard_blank-line-between-when-conditions = disabled
# Disable ktlint on generated source code, see
# https://github.com/JLLeitschuh/ktlint-gradle/issues/746
[**/build/generated/source/**]
ktlint = disabled
[build/generated/*/main/**]
ktlint = disabled
[**/build/generated-sources/**]
ktlint = disabled
+1 -1
View File
@@ -17,7 +17,7 @@ body:
label: "Guidelines"
description: "Search issues here: https://github.com/signalapp/Signal-Android/issues/?q=is%3Aissue+"
options:
- label: I have searched searched open and closed issues for duplicates
- label: I have searched open and closed issues for duplicates
required: true
- label: I am submitting a bug report for existing functionality that does not work as intended
required: true
+27
View File
@@ -0,0 +1,27 @@
version: 2
updates:
# Automatically keep GitHub Actions SHA-pinned to the latest commit SHAs.
# Dependabot will update both the SHA and the inline version comment (e.g. # v6)
# while leaving any extra documentation comments intact.
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
labels:
- "dependencies"
commit-message:
prefix: "ci"
groups:
actions:
patterns:
- "actions/*"
gradle-actions:
patterns:
- "gradle/*"
peter-evans:
patterns:
- "peter-evans/*"
usefulness:
patterns:
- "usefulness/*"
-23
View File
@@ -1,23 +0,0 @@
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 60
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7
issues:
exemptLabels:
- acknowledged
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
This issue has been closed due to inactivity.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 1
+8 -4
View File
@@ -16,26 +16,30 @@ jobs:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
# gh api repos/actions/checkout/commits/v6 --jq '.sha'
with:
submodules: true
- name: set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
# gh api repos/actions/setup-java/commits/v5 --jq '.sha'
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/actions/wrapper-validation@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
# gh api repos/gradle/actions/commits/v6 --jq '.sha'
- name: Build with Gradle
run: ./gradlew qa
- name: Archive reports for failed build
if: ${{ failure() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
# gh api repos/actions/upload-artifact/commits/v7 --jq '.sha'
with:
name: reports
path: '*/build/reports'
+20 -11
View File
@@ -8,21 +8,23 @@ permissions:
pull-requests: write # to comment on PR
env:
NDK_VERSION: '27.2.12479018'
NDK_VERSION: '28.0.13004108'
jobs:
assemble-base:
if: ${{ github.repository != 'signalapp/Signal-Android' }}
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
# gh api repos/actions/checkout/commits/v6 --jq '.sha'
with:
submodules: true
ref: ${{ github.event.pull_request.base.sha }}
- name: set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
# gh api repos/actions/setup-java/commits/v5 --jq '.sha'
with:
distribution: temurin
java-version: 17
@@ -32,11 +34,13 @@ 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@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
# gh api repos/gradle/actions/commits/v6 --jq '.sha'
- name: Cache base apk
id: cache-base
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
# gh api repos/actions/cache/commits/v5 --jq '.sha'
with:
path: diffuse-base.apk
key: diffuse-${{ github.event.pull_request.base.sha }}
@@ -49,7 +53,8 @@ jobs:
if: steps.cache-base.outputs.cache-hit != 'true'
run: mv app/build/outputs/apk/playProd/release/*arm64*.apk diffuse-base.apk
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
# gh api repos/actions/checkout/commits/v6 --jq '.sha'
with:
submodules: true
clean: 'false'
@@ -61,18 +66,21 @@ jobs:
run: mv app/build/outputs/apk/playProd/release/*arm64*.apk diffuse-new.apk
- id: diffuse
uses: usefulness/diffuse-action@v1
uses: usefulness/diffuse-action@41995fe8ff6be0a8847e63bdc5a4679c704b455c # v1
# gh api repos/usefulness/diffuse-action/commits/v1 --jq '.sha'
with:
old-file-path: diffuse-base.apk
new-file-path: diffuse-new.apk
- uses: peter-evans/find-comment@v2
- uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad # v4
# gh api repos/peter-evans/find-comment/commits/v4 --jq '.sha'
id: find-comment
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: Diffuse output
- uses: peter-evans/create-or-update-comment@v3
- uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5
# gh api repos/peter-evans/create-or-update-comment/commits/v5 --jq '.sha'
with:
body: |
Diffuse output:
@@ -83,7 +91,8 @@ jobs:
issue-number: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
# gh api repos/actions/upload-artifact/commits/v7 --jq '.sha'
with:
name: diffuse-output
path: ${{ steps.diffuse.outputs.diff-file }}
+10 -10
View File
@@ -1,21 +1,21 @@
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
# gh api repos/actions/checkout/commits/v6 --jq '.sha'
- 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
+38
View File
@@ -0,0 +1,38 @@
name: Mark stale issues and PRs
on:
schedule:
- cron: '0 2 * * *' # daily at 02:00 UTC
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
actions: write
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10
# gh api repos/actions/stale/commits/v10 --jq '.sha'
with:
days-before-stale: 60
days-before-close: 7
exempt-issue-labels: 'acknowledged'
exempt-pr-labels: 'acknowledged'
stale-issue-label: 'wontfix'
stale-pr-label: 'wontfix'
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions!
stale-pr-message: >
This pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions!
close-issue-message: >
This issue has been closed due to inactivity.
close-pr-message: >
This pull request has been closed due to inactivity.
operations-per-run: 150
+2
View File
@@ -32,3 +32,5 @@ maps.key
/local/
kls_database.db
.kotlin
lefthook-local.yml
sample-videos/
+1
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" />
+2 -1
View File
@@ -1 +1,2 @@
java 17.0.2
java openjdk-17.0.2
uv latest
+1 -1
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.
+14 -5
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/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.
@@ -54,7 +63,7 @@ The form and manner of this distribution makes it eligible for export under the
## License
Copyright 2013-2024 Signal Messenger, LLC
Copyright 2013 Signal Messenger, LLC
Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html
+449 -211
View File
@@ -1,16 +1,22 @@
import com.android.build.api.dsl.ManagedVirtualDevice
@file:Suppress("UnstableApiUsage")
import com.android.build.api.artifact.ArtifactTransformationRequest
import com.android.build.api.artifact.SingleArtifact
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import java.io.ByteArrayOutputStream
import java.io.FileInputStream
import java.text.SimpleDateFormat
import java.util.Date
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
import java.time.Instant
import java.time.ZoneOffset
import java.time.format.DateTimeFormatter
import java.util.Locale
import java.util.Properties
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.ktlint)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlinx.serialization)
alias(benchmarkLibs.plugins.baselineprofile)
id("androidx.navigation.safeargs")
id("kotlin-parcelize")
id("com.squareup.wire")
@@ -18,14 +24,37 @@ plugins {
id("licenses")
}
apply(from = "static-ips.gradle.kts")
val staticIps = Properties().apply { file("static-ips.properties").reader().use { load(it) } }
staticIps.stringPropertyNames().forEach { rootProject.extra[it] = staticIps.getProperty(it) }
val canonicalVersionCode = 1523
val canonicalVersionName = "7.38.0"
val canonicalVersionCode = 1686
val canonicalVersionName = "8.10.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: Provider<Properties> = providers.of(PropertiesFileValueSource::class.java) {
parameters.file.set(rootProject.layout.projectDirectory.file("keystore.debug.properties"))
}
val languagesProvider: Provider<List<String>> = 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 localPropertiesFile = File(rootProject.projectDir, "local.properties")
val localProperties: Properties? = if (localPropertiesFile.exists()) {
Properties().apply { localPropertiesFile.inputStream().use { load(it) } }
} else {
null
}
val quickstartCredentialsDir: String? = localProperties?.getProperty("quickstart.credentials.dir")
val benchmarkBackupFile: String? = localProperties?.getProperty("benchmark.backup.file")
val selectableVariants = listOf(
"nightlyProdSpinner",
@@ -36,6 +65,8 @@ val selectableVariants = listOf(
"playProdSpinner",
"playProdCanary",
"playProdPerf",
"playProdMocked",
"playProdNonMinifiedMocked",
"playProdBenchmark",
"playProdInstrumentation",
"playProdRelease",
@@ -45,17 +76,31 @@ val selectableVariants = listOf(
"playStagingPerf",
"playStagingInstrumentation",
"playStagingRelease",
"playProdQuickstart",
"playStagingQuickstart",
"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 5.x iterates Android source sets and expects matching Kotlin source sets.
// AGP 9.0's built-in Kotlin doesn't create all source sets automatically.
val kotlinExt = extensions.getByName("kotlin") as KotlinAndroidProjectExtension
android.sourceSets.all {
kotlinExt.sourceSets.findByName(name) ?: kotlinExt.sourceSets.create(name)
}
// AGP 9.0's built-in Kotlin doesn't pick up extra java.srcDir entries from Android
// source sets, so add shared dirs directly to the relevant Kotlin compile tasks.
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class.java).configureEach {
val isTestTask = name.contains("UnitTest") || name.contains("AndroidTest")
if (isTestTask) {
source("$projectDir/src/testShared")
}
if (!isTestTask && (name.contains("Mocked") || name.contains("Benchmark"))) {
source("$projectDir/src/benchmarkShared/java")
}
}
wire {
kotlin {
@@ -67,32 +112,28 @@ wire {
}
protoPath {
srcDir("${project.rootDir}/libsignal-service/src/main/protowire")
srcDir("${project.rootDir}/lib/libsignal-service/src/main/protowire")
srcDir("${project.rootDir}/lib/archive/src/main/protowire")
}
}
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"
android.bundle.language.enableSplit = false
kotlinOptions {
jvmTarget = signalKotlinJvmTarget
freeCompilerArgs = listOf("-Xjvm-default=all")
}
keystores["debug"]?.let { properties ->
debugKeystorePropertiesProvider.get().takeIf { it.isNotEmpty() }?.let { properties ->
signingConfigs.getByName("debug").apply {
storeFile = file("${project.rootDir}/${properties.getProperty("storeFile")}")
storePassword = properties.getProperty("storePassword")
@@ -109,8 +150,8 @@ android {
}
managedDevices {
devices {
create<ManagedVirtualDevice>("pixel3api30") {
localDevices {
create("pixel3api30") {
device = "Pixel 3"
apiLevel = 30
systemImageSource = "google-atd"
@@ -132,8 +173,8 @@ android {
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = signalJavaVersion
targetCompatibility = signalJavaVersion
sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
targetCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
}
packaging {
@@ -155,7 +196,8 @@ android {
"META-INF/LICENSE-notice.md",
"META-INF/proguard/androidx-annotations.pro",
"**/*.dylib",
"**/*.dll"
"**/*.dll",
"**/*.proto"
)
}
}
@@ -166,16 +208,15 @@ android {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.4"
}
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")
@@ -208,12 +249,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\"")
@@ -229,7 +271,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", "false")
ndk {
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
@@ -251,13 +294,13 @@ android {
buildTypes {
getByName("debug") {
if (keystores["debug"] != null) {
if (debugKeystorePropertiesProvider.orNull != null) {
signingConfig = signingConfigs["debug"]
}
isDefault = true
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard/proguard-firebase-messaging.pro",
"proguard/proguard-google-play-services.pro",
"proguard/proguard-jackson.pro",
@@ -274,6 +317,7 @@ android {
"proguard/proguard-retrolambda.pro",
"proguard/proguard-okhttp.pro",
"proguard/proguard-ez-vcard.pro",
"proguard/proguard-dnsjava.pro",
"proguard/proguard.cfg"
)
testProguardFiles(
@@ -284,6 +328,7 @@ android {
manifestPlaceholders["mapsKey"] = getMapsKey()
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Debug\"")
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "true")
}
getByName("release") {
@@ -327,8 +372,25 @@ android {
isDebuggable = false
isMinifyEnabled = true
matchingFallbacks += "debug"
applicationIdSuffix = ".benchmark"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
buildConfigField("boolean", "TRACING_ENABLED", "true")
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{ \"BVT/2gHqbrG1xzuIypLIOjFgMtihrMld1/5TGADL6Dhv\"}")
manifestPlaceholders["applicationClass"] = "org.thoughtcrime.securesms.BenchmarkApplicationContext"
}
create("mocked") {
initWith(getByName("debug"))
isDefault = false
isDebuggable = false
isMinifyEnabled = true
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
buildConfigField("boolean", "TRACING_ENABLED", "true")
manifestPlaceholders["applicationClass"] = "org.thoughtcrime.securesms.ApplicationContext"
}
create("canary") {
@@ -338,6 +400,14 @@ android {
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Canary\"")
}
create("quickstart") {
initWith(getByName("debug"))
isDefault = false
isMinifyEnabled = false
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Quickstart\"")
}
}
productFlavors {
@@ -356,18 +426,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") {
@@ -391,8 +463,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\"")
@@ -404,7 +477,6 @@ android {
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Staging\"")
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_test_sngOd8FnXNkpce9nPXawKrJD00kIDngZkD\"")
buildConfigField("boolean", "MESSAGE_BACKUP_RESTORE_ENABLED", "true")
}
}
@@ -412,44 +484,10 @@ android {
abortOnError = true
baseline = file("lint-baseline.xml")
checkReleaseBuilds = false
ignoreWarnings = true
quiet = true
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 ->
// Include the test-only library on debug builds.
if (variant.buildType != "instrumentation") {
variant.packaging.jniLibs.excludes.add("**/libsignal_jni_testing.so")
}
}
lintConfig = rootProject.file("lint.xml")
}
val releaseDir = "$projectDir/src/release/java"
@@ -461,6 +499,113 @@ android {
java.srcDir(path)
}
}
sourceSets {
getByName("mocked") {
java.srcDir("$projectDir/src/benchmarkShared/java")
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
}
getByName("benchmark") {
java.srcDir("$projectDir/src/benchmarkShared/java")
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
}
}
}
androidComponents {
beforeVariants { variant ->
variant.enable = variant.name in selectableVariants
}
onVariants(selector().all()) { variant: com.android.build.api.variant.ApplicationVariant ->
// Rename APK to include version name
val renameTask = tasks.register<RenameApkTask>("renameApk${variant.name.replaceFirstChar { it.uppercase() }}")
val renameRequest = variant.artifacts.use(renameTask)
.wiredWithDirectories(RenameApkTask::apkFolder, RenameApkTask::outFolder)
.toTransformMany(SingleArtifact.APK)
renameTask.configure {
transformationRequest.set(renameRequest)
}
// 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 | ${getLastCommitDateTimeUtc()}")
output.versionCode.set(nightlyVersionCode)
}
}
}
}
onVariants(selector().withBuildType("quickstart")) { variant ->
val environment = variant.flavorName?.let { name ->
when {
name.contains("staging", ignoreCase = true) -> "staging"
name.contains("prod", ignoreCase = true) -> "prod"
else -> "prod"
}
} ?: "prod"
val taskProvider = tasks.register<CopyQuickstartCredentialsTask>("copyQuickstartCredentials${variant.name.capitalize()}") {
if (quickstartCredentialsDir != null) {
inputDir.set(File(quickstartCredentialsDir))
}
filePrefix.set("${environment}_")
}
variant.sources.assets?.addGeneratedSourceDirectory(taskProvider) { it.outputDir }
}
onVariants(selector().withBuildType("benchmark")) { variant ->
val taskProvider = tasks.register<CopyBenchmarkBackupTask>("copyBenchmarkBackup${variant.name.capitalize()}") {
if (benchmarkBackupFile != null) {
inputFile.set(File(benchmarkBackupFile))
}
}
variant.sources.assets?.addGeneratedSourceDirectory(taskProvider) { it.outputDir }
}
}
baselineProfile {
warnings {
disabledVariants = false
}
mergeIntoMain = true
variants.create("mocked") {
from(project(":baseline-profile"))
}
dexLayoutOptimization = false
}
kotlin {
compilerOptions {
jvmTarget = JvmTarget.fromTarget(libs.versions.kotlinJvmTarget.get())
freeCompilerArgs.addAll("-Xjvm-default=all")
suppressWarnings = true
}
}
dependencies {
@@ -468,27 +613,31 @@ 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:archive"))
implementation(project(":lib:libsignal-service"))
implementation(project(":lib:network"))
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(project(":feature:registration"))
implementation(project(":lib:apng"))
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.fragment.compose)
implementation(libs.androidx.appcompat) {
version {
strictly("1.6.1")
}
}
implementation(libs.androidx.appcompat)
implementation(libs.androidx.window.window)
implementation(libs.androidx.window.java)
implementation(libs.androidx.recyclerview)
@@ -505,6 +654,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)
@@ -521,6 +672,7 @@ dependencies {
implementation(libs.androidx.concurrent.futures)
implementation(libs.androidx.autofill)
implementation(libs.androidx.biometric)
implementation(libs.androidx.core.telecom)
implementation(libs.androidx.sharetarget)
implementation(libs.androidx.profileinstaller)
implementation(libs.androidx.asynclayoutinflater)
@@ -533,6 +685,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)
@@ -540,7 +693,6 @@ dependencies {
implementation(libs.mobilecoin)
implementation(libs.signal.ringrtc)
implementation(libs.leolin.shortcutbadger)
implementation(libs.emilsjolander.stickylistheaders)
implementation(libs.glide.glide)
implementation(libs.roundedimageview)
implementation(libs.materialish.progress)
@@ -551,10 +703,6 @@ dependencies {
implementation(libs.subsampling.scale.image.view) {
exclude(group = "com.android.support", module = "support-annotations")
}
implementation(libs.android.tooltips) {
exclude(group = "com.android.support", module = "appcompat-v7")
}
implementation(libs.stream)
implementation(libs.lottie)
implementation(libs.lottie.compose)
implementation(libs.signal.android.database.sqlcipher)
@@ -576,11 +724,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)
@@ -606,8 +757,14 @@ dependencies {
}
testImplementation(testLibs.conscrypt.openjdk.uber)
testImplementation(testLibs.mockk)
testImplementation(testFixtures(project(":libsignal-service")))
testImplementation(testFixtures(project(":core:ui")))
testImplementation(testFixtures(project(":lib:libsignal-service")))
testImplementation(testLibs.espresso.core)
testImplementation(testLibs.kotlinx.coroutines.test)
testImplementation(testLibs.sqlite.jdbc)
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)
@@ -618,63 +775,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()
ByteArrayOutputStream().use { os ->
exec {
executable = "git"
args = listOf("log", "-1", "--pretty=format:%ct")
standardOutput = os
}
return os.toString() + "000"
}
}
fun getGitHash(): String {
assertIsGitRepo()
val stdout = ByteArrayOutputStream()
exec {
commandLine = listOf("git", "rev-parse", "HEAD")
standardOutput = stdout
}
return stdout.toString().trim().substring(0, 12)
}
fun getCurrentGitTag(): String? {
assertIsGitRepo()
val stdout = ByteArrayOutputStream()
exec {
commandLine = listOf("git", "tag", "--points-at", "HEAD")
standardOutput = stdout
}
val output: String = stdout.toString().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")
@@ -685,59 +790,192 @@ tasks.withType<Test>().configureEach {
}
}
project.tasks.configureEach {
if (name.lowercase().contains("nightly") && name != "checkNightlyParams") {
dependsOn(tasks.getByName("checkNightlyParams"))
}
fun getLastCommitTimestamp(): String {
return providers.exec {
commandLine("git", "log", "-1", "--pretty=format:%ct")
}.standardOutput.asText.get() + "000"
}
tasks.register("checkNightlyParams") {
doFirst {
if (project.gradle.startParameter.taskNames.any { it.lowercase().contains("nightly") }) {
if (!file("${project.rootDir}/nightly-url.txt").exists()) {
throw GradleException("Cannot find 'nightly-url.txt' for nightly build! It must exist in the root of this project and contain the location of the nightly manifest.")
}
}
}
fun getGitHash(): String {
return providers.exec {
commandLine("git", "rev-parse", "HEAD")
}.standardOutput.asText.get().trim().substring(0, 12)
}
fun loadKeystoreProperties(filename: String): Properties? {
val keystorePropertiesFile = file("${project.rootDir}/$filename")
fun getNightlyTagForCurrentCommit(): String? {
val output = providers.exec {
commandLine("git", "tag", "--points-at", "HEAD")
}.standardOutput.asText.get().trim()
return if (keystorePropertiesFile.exists()) {
val keystoreProperties = Properties()
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
keystoreProperties
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 getLastCommitDateTimeUtc(): String {
val timestamp = providers.exec {
commandLine("git", "log", "-1", "--pretty=format:%ct")
}.standardOutput.asText.get().trim().toLong()
val instant = Instant.ofEpochSecond(timestamp)
val formatter = DateTimeFormatter.ofPattern("MMM d '@' HH:mm 'UTC'", Locale.US)
.withZone(ZoneOffset.UTC)
return formatter.format(instant)
}
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 Properties()
return Properties().apply {
f.inputStream().use { load(it) }
}
}
}
fun String.capitalize(): String {
return this.replaceFirstChar { it.uppercase() }
}
abstract class CopyQuickstartCredentialsTask : DefaultTask() {
@get:InputDirectory
@get:Optional
abstract val inputDir: DirectoryProperty
@get:Input
abstract val filePrefix: Property<String>
@get:OutputDirectory
abstract val outputDir: DirectoryProperty
@TaskAction
fun copy() {
if (!inputDir.isPresent) {
throw GradleException("quickstart.credentials.dir is not set in local.properties. This is required for quickstart builds.")
}
val prefix = filePrefix.get()
val candidates = inputDir.get().asFile.listFiles()
?.filter { it.extension == "json" && it.name.startsWith(prefix) }
?: emptyList()
if (candidates.isEmpty()) {
throw GradleException("No credential files matching '$prefix*.json' found in ${inputDir.get().asFile}. Add files like '${prefix}account1.json' to your credentials directory.")
}
val chosen = candidates.random()
logger.lifecycle("Selected quickstart credential: ${chosen.name}")
val dest = outputDir.get().asFile.resolve("quickstart")
dest.mkdirs()
chosen.copyTo(dest.resolve(chosen.name), overwrite = true)
}
}
abstract class CopyBenchmarkBackupTask : DefaultTask() {
@get:InputFile
@get:Optional
abstract val inputFile: RegularFileProperty
@get:OutputDirectory
abstract val outputDir: DirectoryProperty
@TaskAction
fun copy() {
val dest = outputDir.get().asFile.resolve("backups")
dest.mkdirs()
if (!inputFile.isPresent) {
logger.lifecycle("benchmark.backup.file is not set in local.properties. Benchmark tests using backup data will crash at runtime.")
return
}
val backupFile = inputFile.get().asFile
logger.lifecycle("Using benchmark backup: ${backupFile.absolutePath} (${backupFile.length() / 1024}KB)")
backupFile.copyTo(dest.resolve("backup.binproto"), overwrite = true)
}
}
abstract class RenameApkTask : DefaultTask() {
@get:InputFiles
abstract val apkFolder: DirectoryProperty
@get:OutputDirectory
abstract val outFolder: DirectoryProperty
@get:Internal
abstract val transformationRequest: Property<ArtifactTransformationRequest<RenameApkTask>>
@TaskAction
fun rename() {
transformationRequest.get().submit(this) { artifact ->
val originalFile = File(artifact.outputFile)
val versionName = artifact.versionName?.substringBefore(" |")
val newName = if (!versionName.isNullOrEmpty()) {
originalFile.name.replace(".apk", "-$versionName.apk")
} else {
originalFile.name
}
val newFile = File(outFolder.get().asFile, newName)
originalFile.copyTo(newFile, overwrite = true)
newFile
}
}
}
+37941 -22
View File
File diff suppressed because one or more lines are too long
+4
View File
@@ -0,0 +1,4 @@
# dnsjava references desktop/server-only classes that are absent on Android.
-dontwarn com.sun.jna.**
-dontwarn javax.naming.**
-dontwarn lombok.Generated

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