Commit Graph

1540 Commits

Author SHA1 Message Date
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
Sagar
2bb94089f7 Move to quoted message on quote preview click. 2025-04-24 15:55:39 -04:00
Sagar
3779dfd290 Open keyboard for a Draft message. 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
Greyson Parrelli
2e50699a2d Make system keyboard sticker detection more reliable. 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
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
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
54191433e0 Remove ConversationTabs* and migrate to MainActivity. 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
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
4c81c321be Utilize root window insets for grabbing system bar sizes. 2025-04-15 11:14:16 -03:00
Alex Hart
35235509ca Prevent wallpaper mode from overwriting navbar color. 2025-04-10 14:12:04 -03: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
b64f3a48bf Add proper adaptive material app scaffolding. 2025-04-09 15:29:54 -04:00