* Allow displaying only unread notifications
Add `FeatureFlags.ShowAllActivityInRoomList` (enabled by default, to match the current behavior) that, when disabled, will display the unread messages of a room instead of unread notifications if no unread notifications are found
* Restore UI changes to the badges, `RoomSummaryRow` and `HorizontalFloatingToolbar`
* Fix `NavigationBarIcon`: use `BadgeBox` component.
* Adjust padding in `RoomSummaryRow` to 6.dp
* Fix other indicators not displaying a dot anymore
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add remove and clear history buttons to search
* Rename `SearchHistoryResultItem` to `SearchHistoryListItem` and `MessagesSearchResultItem` to `MessageSearchListItem`
Also, add some docs.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
Paparazzi 2.0.0-alpha05.1 ships layoutlib 16.2.3, which fixes the errors this
rule was swallowing. All screenshot tests pass without it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* Don't show fading edge if the code block can't scroll. Use `canScrollForward || canScrollBackwards` for displaying the fading edges in the code blocks
* Don't add extra vertical padding to the mention pills. This should make them look like they did in the previous renderer
* Allow passing through touch events in `Modifier.linkTapHandler` if no url annotation is clicked or long clicked
`detectTapGestures` always consumes the touch events, no matter if they are handled or not, blocking these events from reaching parent components. Should fix the issue of `ParagraphView` blocking the long press action in the message bubbles
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Display the unread notification count only when needed
* Adjust `CounterAtom` and `UnreadIndicatorAtom` to use the official M3's `Badge` component, with a few tweaks to ensure single digit items are always displayed as a circle
* +99 is now 99+
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add headers (`h1-h6`) tag support for the new timeline renderer
* Make H1 and H2 use the same (smaller) style
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add global search results history: keep the latest 25 items used in the global search, save them to an encrypted file store.
* Integrate the search history in the global search feature
* Add `MatrixClient.getRoomInfo` and use it in `GlobalSearchPresenter`
---------
Co-authored-by: ElementBot <android@element.io>
* Add linkification to the new timeline renderer
Reuse `AnnotatedString.linkify` for now, even though it creates `Spannable` instances for that: it's the closest one to what we already had.
Also, make sure we use the same URL annotation identifier in the renderer and the linkificator.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Integrate the new renderer with the timeline UI
* Composable functions are now in `:libraries:htmlrenderer:api` so we don't need to add `impl` to other modules.
* Improve inline code span
* Return both the text and URL in `onLinkClick` and `onLinkLongClick` so we can check the URL is not misleading
* Remove `SelectionContainer` for now - it creates issues when long pressing
* Make `LocalComposeTimelineEventRenderer` contain a `ComposeLocalTimelineEventRendererData` instance. This checks if the new rendering is enabled and what is the current user id so it can be used for styling mention pills
* Add fading edges to code block to indicate scrolling is possible
* Long pressing in a code block copies its contents to the clipboard
* Fix alignment of ordered list item prefixes
* Don't use default values in State data classes
---------
Co-authored-by: ElementBot <android@element.io>
* Added HTML parser to abstract tree nodes
* Add HTML renderer using `HtmlMessageContent`
* Add custom rendering for inline code nodes besides the monospace font
* Support `<s>` and `<strike>` too
* Add `ContentAvoidingLayoutData` support
* Improve the last block node behaviour and its integration with `ContentAvoidingLayout`
* Move `ContentAvoidingLayout` to `:libraries:ui-common` so it can be shared
* Add missing `:libraries:htmlrenderer:impl` entry in `DependencyHandlerScope.allLibrariesImpl`
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Use a patched fork of Konsist
The patch contains code to ignore hidden folders in the root project: by default, Konsist scans *every single file* in the root directory except for a few exceptions, and hidden folders were not a part of that.
That means `.git`, `.github`, etc. would be scanned to for no good reason and even worse, hidden folders used for worktrees would get scanned too, so Konsist would end up scanning the same project with small variations several times and OOMing / taking ages to finish.
* Make `Immutable/Stable` annotation check more performant. Also, fix case that was previously not found