Commit Graph

4177 Commits

Author SHA1 Message Date
Benoit Marty
ef230e3bda Remove dependency to Anvil from modules that do not use it. 2025-08-25 11:36:42 +02:00
ElementBot
2ec3053d77 Sync Strings from Localazy (#5211)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-08-25 11:15:38 +02:00
Benoit Marty
4653164572 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
ec53561de0 Let JoinRule and AllowRule be Immutable. 2025-08-22 16:13:55 +02:00
Jorge Martin Espinosa
e9f065c479 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
Benoit Marty
2ad6ca5f22 Add SpaceHeaderView. 2025-08-22 14:50:30 +02:00
Benoit Marty
a45c2a0d03 Add SpaceInfoRow to display info about a space in a space header. 2025-08-22 11:49:49 +02:00
Jorge Martin Espinosa
2f2e886e9f 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
Benoit Marty
16b943239c 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
7095403597 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
e3089dc6ca Ensure that only one DataStore active for the same file. 2025-08-21 11:56:16 +02:00
Benoit Marty
dbf91f6dcf Use Surface API for border and shape. 2025-08-21 09:19:33 +02:00
Benoit Marty
64f455cb51 Fix preview issue. 2025-08-20 21:45:24 +02:00
Benoit Marty
31df5204a6 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
20e2cd0251 Rename RoomPreviewMembersCountMolecule to MembersCountMolecule 2025-08-20 17:13:42 +02:00
Benoit Marty
324fc28e2d 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
333b1c8a48 Move AvatarRow to designsystem module, because it will be used by spaces. 2025-08-20 15:56:46 +02:00
Benoit Marty
e26ef969fd 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
aadaeb78d8 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
59a8aaebff 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
285066c206 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
8675bf5215 Merge pull request #5185 from element-hq/feature/bma/invitePoepleUi
Iterate on invite people UI
2025-08-19 11:12:45 +02:00
Benoit Marty
dd5a3acaec Create common SelectedItem composable. 2025-08-19 10:19:12 +02:00
Benoit Marty
bf52e99295 Improve accessibility. 2025-08-19 10:02:53 +02:00
Benoit Marty
cad3b5b8ad Rename val to improve code readability 2025-08-19 09:58:31 +02:00
Benoit Marty
357d558f04 Improve preview of SelectedRoom and SelectedUser. 2025-08-19 09:54:22 +02:00
Benoit Marty
fd75b71733 Improve preview of SelectedRoom. 2025-08-19 09:48:04 +02:00
Jorge Martin Espinosa
5feb7a99a9 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
Benoit Marty
91369e9455 Update text colors when the state is disabled. 2025-08-18 17:16:46 +02:00
Benoit Marty
5d2246569f [UI] Iterate on user invite view. 2025-08-18 17:16:28 +02:00
Benoit Marty
b09319ab23 [UI] Iterate on selected room rendering. 2025-08-18 17:16:07 +02:00
Benoit Marty
d7d2fe3ffb [UI] Iterate on selected user rendering. 2025-08-18 17:16:04 +02:00
renovate[bot]
aac9642159 Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18 (#5182)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18

* Fix broken API changes:
- The send queue usage is now mandatory.
- The media upload progress now comes back in the send queue state (this still hasn't been applied to the UI in the timeline).

* Update screenshots
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
2025-08-18 16:41:14 +02:00
ElementBot
a4cee52815 Sync Strings from Localazy (#5178)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-08-18 11:09:27 +02:00
Benoit Marty
8e37d16f9f Merge pull request #5166 from element-hq/feature/fga/create_room_flow_rework
Create room flow rework
2025-08-18 09:38:28 +02:00
Benoit Marty
16acfa28d7 Avoid using runBlocking in Node resolve function. 2025-08-14 16:53:35 +02:00
Benoit Marty
df11b5e4c4 Merge pull request #5117 from element-hq/renovate/showkase
Update showkase to v1.0.5
2025-08-13 17:01:11 +02:00
Benoit Marty
8b85b01c07 Add string to Localazy 2025-08-13 16:59:12 +02:00
Jorge Martín
4bebd1d2ac Remove libs.showkase entry in composeDependencies
Add it only to the needed library modules.
2025-08-13 11:43:57 +02:00
Benoit Marty
9c32dbba58 Inject a StringProvider instead of the context, and update tests.
Also remove the other StringProvider we had, it was not used anymore
2025-08-13 11:07:28 +02:00
ganfra
50073389c4 refactor (start chat) : create invite people module and start branching them 2025-08-13 11:06:43 +02:00
Benoit Marty
0a4a4e20db Merge pull request #5160 from element-hq/feature/bma/cleanupFeatureFlags
Remove old feature flags
2025-08-12 18:21:44 +02:00
Benoit Marty
6196c5524e Remove unused import 2025-08-12 17:49:31 +02:00
Jorge Martin Espinosa
12ea2064c7 Provide calculated server names when opening a room from another (#5155)
* Provide calculated server names when opening a room from another, based on the most frequently used domain names in the user ids for the users in the room.

This helps when following permalinks or navigating to the successor room of a tombstoned one. Previously, the `/summary` endpoint was failing because no server names were used in the `via` parameters.
2025-08-12 15:17:46 +00:00
Benoit Marty
a282ca26c9 Revert "Remove FeatureFlag.SyncOnPush"
This reverts commit 45150de5b3.
2025-08-12 17:16:49 +02:00
Benoit Marty
083e4fcbf2 Remove useless preview 2025-08-12 16:48:02 +02:00
Benoit Marty
8b511ca48a Remove FeatureFlag.SharePos 2025-08-12 16:08:48 +02:00
Benoit Marty
45150de5b3 Remove FeatureFlag.SyncOnPush 2025-08-12 16:08:47 +02:00
Benoit Marty
ebecc6652b Remove FeatureFlag.MediaUploadOnSendQueue 2025-08-12 16:08:46 +02:00
Benoit Marty
d025ae63ee Remove FeatureFlag.MediaCaptionCreation and FeatureFlag.MediaCaptionWarning 2025-08-12 16:08:45 +02:00