Commit graph

11405 commits

Author SHA1 Message Date
Benoit Marty
3c2cc5adbb
Merge pull request #5215 from element-hq/feature/bma/cleanupInject
AnalyticsOptInStateProvider does not need to have an injected constructor
2025-08-25 12:19:07 +02:00
Benoit Marty
20d6a88756
Merge pull request #5210 from element-hq/feature/bma/cleanupAnvil
Split deeplink module and remove setupAnvil from api modules
2025-08-25 12:11:30 +02:00
Benoit Marty
0b2b9cfe57 AnalyticsOptInStateProvider does not need to have an injected constructor. 2025-08-25 12:08:15 +02:00
Benoit Marty
cf5c4df95d Remove dependency to Anvil from modules that do not use it. 2025-08-25 11:36:44 +02:00
Benoit Marty
2b86ff4dfb Rename method. 2025-08-25 11:36:43 +02:00
Benoit Marty
4e5bbaf946 Split module deeplink to api and impl. 2025-08-25 11:36:42 +02:00
Benoit Marty
1682fd4c2c Remove dependency to Anvil from modules that do not use it. 2025-08-25 11:36:42 +02:00
renovate[bot]
a2a8b1bccd
Update dependency com.posthog:posthog-android to v3.20.4 (#5213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 09:18:11 +00:00
ElementBot
2c75a1f834
Sync Strings from Localazy (#5211)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-08-25 11:15:38 +02:00
renovate[bot]
9c640d7c5d
Update dependency org.jsoup:jsoup to v1.21.2 (#5212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 08:44:09 +02:00
Benoit Marty
a625c109b8
Merge pull request #5207 from element-hq/feature/bma/spaceInfoUi
Add UI components for spaces.
2025-08-23 16:16:39 +02:00
Benoit Marty
7b1a4bb3e3 Let JoinRule and AllowRule be Immutable. 2025-08-22 16:13:55 +02:00
Jorge Martin Espinosa
7a5a197e7e
Allow replying to any remote message in a thread (#5201)
* Allow replying to any remote message in a thread.

This will open the thread screen based on the selected event:

- If it was already part of a thread, it will open that thread.
- Otherwise, it'll open the thread timeline screen so you can start a thread from the event.

* Add the feature flag to decide which action to perform. Also, rename the feature flag to something easier to understand.

* Display the reply in thread action based on the feature flag too

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-22 16:07:13 +02:00
ElementBot
a4dcdfd24c Update screenshots 2025-08-22 13:05:06 +00:00
Benoit Marty
93292e6e2f Add SpaceHeaderView. 2025-08-22 14:50:30 +02:00
renovate[bot]
d97b2ab79c
Update dependency com.posthog:posthog-android to v3.20.3 (#5206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 12:54:06 +02:00
Jorge Martin Espinosa
64164abb2d
Try following KSP incremental best practices on anvilcodegen (#5205)
The KotlinPoet docs suggest using the added flow for declaring dependencies.

Make the dependencies of the generated files isolating instead of aggregating.
2025-08-22 12:30:02 +02:00
Benoit Marty
d5d7ac4c44 Add SpaceInfoRow to display info about a space in a space header. 2025-08-22 11:49:49 +02:00
Jorge Martin Espinosa
8245ad8bc3
Handle preference stores corruption by clearing them (#5086)
* Handle preference stores corruption by clearing them:
    - Use the centralised `PreferenceDataStoreFactory` instead of `preferences by`.
    - Add `DefaultPreferencesCorruptionHandlerFactory.replaceWithEmpty` to its `create(name)` method so all preference stores are cleared if they're corrupted.

* Add detekt rule to make sure we use `PreferenceDataStoreFactory` instead of `by preferencesDataStore`

* Remove `@SingleIn` annotations as the annotated class no longer have to be singletons
2025-08-22 06:59:06 +00:00
renovate[bot]
3faaab407f
Update plugin ktlint to v13.1.0 (#5204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:31:27 +02:00
Benoit Marty
44d0111cf2
Merge pull request #5198 from element-hq/fix/fixCrashOnPro
Ensure that only one DataStore is active for the same file.
2025-08-21 12:31:40 +02:00
Benoit Marty
a9c01a8b7e Now that DefaultPreferencesDataStoreFactory is protected DataStore creation, FullScreenIntentPermissionsPresenter does not need to be a singleton. 2025-08-21 11:57:56 +02:00
Benoit Marty
46ccb807b6 Ensure that only one DataStore active for the same file. 2025-08-21 11:56:16 +02:00
Benoit Marty
0796cf993d
Merge pull request #5197 from element-hq/feature/bma/spaceUiComponent
Space UI component
2025-08-21 09:48:22 +02:00
Benoit Marty
dc0d81032b Use Surface API for border and shape. 2025-08-21 09:19:33 +02:00
renovate[bot]
033b6fdfc0
Update codecov/codecov-action action to v5.5.0 (#5191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 08:37:41 +02:00
renovate[bot]
00ae3a9968
Update actions/setup-java action to v5 (#5196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 08:35:01 +02:00
renovate[bot]
491eaed933
Update dagger to v2.57.1 (#5193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 08:29:01 +02:00
ElementBot
90c7c6c57d Update screenshots 2025-08-20 19:57:45 +00:00
Benoit Marty
05fcf6635f Fix preview issue. 2025-08-20 21:45:24 +02:00
Benoit Marty
f11a32a96f Fix test. 2025-08-20 17:51:58 +02:00
Benoit Marty
bc655c6bac Introduce SpaceMembersView.
Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3729-605&m=dev
2025-08-20 17:40:49 +02:00
Benoit Marty
c3bd1492b6 Rename RoomPreviewMembersCountMolecule to MembersCountMolecule 2025-08-20 17:13:42 +02:00
Benoit Marty
d9d616127a Add a revered parameter to AvatarRow to be able to stack avatar the other way. 2025-08-20 16:51:19 +02:00
Benoit Marty
2ee4b4fdcb Move AvatarRow to designsystem module, because it will be used by spaces. 2025-08-20 15:56:46 +02:00
Benoit Marty
d31ada947e Add UI component OrganizationHeader
Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3643-2048&m=dev
2025-08-20 15:41:22 +02:00
Benoit Marty
3391cfb7ef Add UI component EditableOrgAvatar
Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3643-2678&m=dev
2025-08-20 15:17:53 +02:00
Jorge Martin Espinosa
9bc2c4a776
Add shortcut suggestions for rooms, remove then when leaving (#5180)
* Report shortcut usage for outgoing messages

This patch adds support for creating and pushing dynamic
long-lived shortcuts for outgoing messages. This together
with an existing reference to the roomId used by the
shortcuts as an identifer allows conversations to be
prioritized.

See https://developer.android.com/training/sharing/direct-share-targets#report-usage-outgoing

* Simplify how to get the other user in a DM room

* Add initial avatar icons to shortcuts

* Remove room shortcuts when they're no longer joined

* Try using API 33 for the new tests. They worked locally with API 30, so it's weird the CI asks for a higher API version.

* Add observers for the pin code and session logout states. With this we can prevent new shortcuts from being created and remove existing ones when needed.

* Wrap all calls to `ShortcutManagerCompat` with `runCatchingExceptions` to avoid crashes

* Make `DefaultNotificationConversationService` a singleton.

---------

Co-authored-by: networkException <git@nwex.de>
Co-authored-by: ElementBot <android@element.io>
2025-08-19 16:02:51 +02:00
Jorge Martin Espinosa
35928e3630
Threads - first iteration (#5165)
* Initial threads support: parse `ThreadSummary`.

Replace several `isThreaded` values with `EventThreadInfo`, which contains the info about the event either being the root of a thread or part of it.

* Add `Threaded` timeline mode

* Add a `liveTimeline` parameter to `TimelineController`'s  constructor. This way we can customise which timeline will be used as the 'live' one. Also add `@LiveTimeline` DI qualifier for the actual live timeline of the room.

* Create `ThreadedMessagesNode`. Allow opening a thread in a separate screen.

* Add the callbacks for the list menu actions - even if they're the wrong ones and will send the data to the room instead

* Send attachments and location in threads

* Fix polls in threads, add support for sending voice messages in threads

* Display thread summaries only when the feature flag is enabled

* Use 'Reply' instead of 'Reply in thread' when in threaded timeline mode

* Remove incorrect usage of `Timeline` in `MessageComposerPresenter`. This led to replies to threaded events not appearing as actual replies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-19 13:35:48 +00:00
Benoit Marty
cc10ba41fd
Merge pull request #5185 from element-hq/feature/bma/invitePoepleUi
Iterate on invite people UI
2025-08-19 11:12:45 +02:00
ElementBot
a39dafe0a2 Update screenshots 2025-08-19 08:43:19 +00:00
Jorge Martin Espinosa
2b3a579009
Fix sending videos in API <= 30 (#5186)
This is caused by a bug in the Media3 Transform library: https://github.com/androidx/media/issues/2535
2025-08-19 10:39:03 +02:00
Benoit Marty
5dfcd23e01 Create common SelectedItem composable. 2025-08-19 10:19:12 +02:00
Benoit Marty
3c68dd8f75 Improve accessibility. 2025-08-19 10:02:53 +02:00
Benoit Marty
e857bd7709 Rename val to improve code readability 2025-08-19 09:58:31 +02:00
Benoit Marty
3c3cef0614 Improve preview of SelectedRoom and SelectedUser. 2025-08-19 09:54:22 +02:00
Benoit Marty
2a5c3990e6 Improve preview of SelectedRoom. 2025-08-19 09:48:04 +02:00
renovate[bot]
64072f063e
Update android.gradle.plugin to v8.12.1 (#5184)
* Update android.gradle.plugin to v8.12.1

* Upgrade lint version to 8.12.1 (version 8.13.+ or 9.+ break the lint job)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-08-19 08:22:53 +02:00
Jorge Martin Espinosa
85b0f11ab6
Fix bitrate value used for video transcoding (#5183)
* Fix bitrate value used for video transcoding:

It should be 1000 times what it is now. The video size estimation was wrong since the retrieved duration value was in milliseconds, not seconds.

* Use `Duration` as the result type for `getDuration`
2025-08-18 21:12:11 +00:00
ElementBot
79c38fbfb7 Update screenshots 2025-08-18 15:30:03 +00:00