Commit Graph

1558 Commits

Author SHA1 Message Date
jeffrey-signal
534756c833 Add split pane UI for new conversation screen. 2025-10-08 16:15:28 -03:00
Michelle Tang
a14517fceb Update vote result color. 2025-10-08 16:15:28 -03: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
Michelle Tang
b8e4ffb5ae Release polls behind feature flag. 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
ea6d512cc8 Do not reroute to main activity if launching in a bubble. 2025-10-02 12:56:04 -04:00
Alex Hart
9b517a14cb Remove separate controllers and consolidate logic. 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
Alex Hart
3352ebaa06 Move large screen check to wrapper. 2025-09-24 16:29:57 -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
169d0fa964 Convert Media to kotlin. 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
Cody Henthorne
1f40c7ab7e Improve archive restore progress tracking and UX. 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
662404d335 Migrate quotes to have a separate quoteTargetContentType. 2025-09-04 16:35:05 -04:00
Michelle Tang
d4f08e6d46 Update unsupported message UI. 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
e6e869e074 Fix identity key update failure when profile key verification failed. 2025-08-05 11:00:54 -04:00
jeffrey-signal
b37bbcaaa5 Convert DecryptableUri to Kotlin. 2025-07-31 08:29:54 -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
emir-signal
b42dcece48 Add support for call link epochs. 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
andrew-signal
bbec0f5f48 Stop STOPPED typing indicator timers on message send. 2025-06-23 15:57:35 -04:00
lisa-signal
2f514622e0 Prevent trailing whitespace from being considered an edit. 2025-06-17 16:26:20 -04:00
lisa-signal
844d511b72 Update edit message timestamp. 2025-06-10 12:14:42 -04:00
lisa-signal
e2c32c1172 Fix multiselect to make in memory messages unselectable. 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
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
lisa-signal
b5b71c6464 Fix ability to remove link preview without changing message text. 2025-05-20 15:47:07 -04:00
Alex Hart
b6c033b075 Fix timer updating on chats list. 2025-05-15 13:52:18 -03: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
7c43462771 Disconnect groupCall object when network is unavailable. 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
fb68f3fed1 Work around off-by-one error causing thin line to display when it shouldn't. 2025-05-14 16:43:17 -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
Alex Hart
6d04c8ba42 Remove MainListHostFragment and rescope list vms to the activity. 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
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
39756fd0d4 Avoid recording empty voice messages during an ongoing call. 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
Alex Hart
ae90b2ecd9 Add support for conversation intent routing to MainActivity. 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