Commit graph

5966 commits

Author SHA1 Message Date
cizra
aec0f596f0 Don't compress images sent through the Files attachment picker (#6755)
* Don't compress images sent through the Files attachment picker

Images and videos picked through the "Attachment" picker are now
uploaded without re-encoding, regardless of the "Optimize media quality"
setting. The gallery and camera pickers keep the existing behaviour,
matching what Element Web/Desktop and most other messengers do.

Fixes #6365

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Make sure we select the right video preset for sending as file

Wait for the video size estimations to be calculated before preprocessing the video file

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-20 17:19:08 +02:00
Jorge Martin Espinosa
c3fedbf997 Release proximity wakelock on Element Call when call ends (#6825)
The `CoroutineScope` that launched this logic was cancelled by that point, so the wakelock was never released.
2026-05-20 15:23:03 +02:00
Jorge Martin Espinosa
3593ca36d9 Fix 'Conversation label cannot be empty' error (#6823)
This happens when building a `ShortcutInfoCompat` in `DefaultNotificationConversationService.onSendMessage` when the provided room name is not null but it's empty.
2026-05-20 14:26:44 +02:00
ganfra
087e0fcd8c Merge pull request #6811 from element-hq/feature/live_location_remove_feature_flag
Remove LiveLocationSharing feature flag
2026-05-19 09:16:18 +02:00
Jorge Martin Espinosa
60a2d35be7 Disable biometric unlock when we disable pin code unlock (#6781)
* Disable biometric unlock when we disable pin code unlock
2026-05-18 22:19:22 +02:00
Jorge Martin Espinosa
603c4feda1 Attempt to fix room list item duplicates at midnight (#6793)
* Attempt to fix room list item duplicates at midnight

This seems to happen because of a race condition between `RoomListDataSource.observeDateTimeChanges` and `RoomListDataSource.replaceWith` being called at almost the same time and the first one using the newly received items from observing the timeline items but not updating the cache which will be later reused by `replaceWith`, containing incorrect indices
2026-05-18 22:18:52 +02:00
ganfra
42c5a75020 Remove LiveLocationSharing feature flag 2026-05-18 20:25:36 +02:00
Jorge Martin Espinosa
f678dffaed Create a new room when inviting people in a DM (#6756)
* Create a new room when inviting people to a DM

* Improve screenshot tests

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-05-18 19:01:11 +02:00
Benoit Marty
f55b4d1283 Merge pull request #6798 from element-hq/sync-localazy
Sync Strings
2026-05-18 18:45:27 +02:00
Benoit Marty
8dc1092483 Remove SignInWithClassic FeatureFlag to enable the feature. (#6698)
Closes #6669
2026-05-18 13:54:54 +02:00
Jorge Martin Espinosa
497df2ac12 Fix Maestro again after changes to the invite flow (#6796)
* Fix Maestro: tap on confirmation for inviting unknown users to a room

* Tap on back after inviting some user

* Tap on back again

* Confirm inviting someone to a DM

* Make fix conditional
2026-05-18 09:26:58 +00:00
bmarty
c1d462f297 Sync Strings from Localazy 2026-05-18 00:57:56 +00:00
Jenna Vassar
c318b2540b Fix room list duplicate-detection telemetry crashing before it can report (#6791)
* Add room dupe regression tests

* Fix telemetry path for dedupe discovery
2026-05-15 10:43:21 +02:00
Benoit Marty
3a575c7bb0 Pin code: remove the key if there is no pin code 2026-05-13 11:39:46 +02:00
Timo
c8fa430cb6 Back button web view to esc (revive fixed version of: https://github.com/element-hq/element-x-android/pull/6724) (#6725)
* Change native back button behavior in EC view:
 - inject escape into webview instead of going back.
 - the webview will call back when no other modal is open.

* call down and up in the webview + make sure that we fall back to close
pip in case the webview did not handle the esc action.

* Tests and refactor to CallScreenBackPressPolicy

---------

Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-13 10:17:23 +02:00
Benoit Marty
e010f2772d Merge pull request #6772 from element-hq/feature/bma/addMissingStrings
Add missing strings `theme.black`
2026-05-12 21:31:24 +02:00
Jorge Martin Espinosa
299f996da1 Make Element Call screen work edge-to-edge (#6634)
* Update dependency io.element.android:element-call-embedded to v0.19.3

* Remove `Scaffold` component from CallScreenView

* Add immersive mode to calls in landscape orientation

* Add `consumeWindowInsets`, which fixes the webview not displaying any insets for the bottom nav bar

* Update screenshots

* Ignore compact height in PiP mode

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>
2026-05-12 17:33:02 +00:00
Benoit Marty
5f4c77c64e Rename keys on Localazy and add Black theme. 2026-05-12 17:57:55 +02:00
Benoit Marty
3e14bfb859 Do not close the MediaPlayer when navigating back from a thread. (#6771) 2026-05-12 17:00:48 +02:00
Valere Fedronic
388dd9be67 Merge pull request #6649 from element-hq/feature/valere/call/decline_timeline_rendering
feat: Update call started timeline item + declined support
2026-05-12 16:32:51 +02:00
Benoit Marty
eb564d6b8e Merge pull request #6720 from element-hq/renovate/major-metro
Update metro to v1 (major)
2026-05-12 15:56:18 +02:00
Benoit Marty
a9115ad31b Format code. 2026-05-12 15:50:47 +02:00
Benoit Marty
26e7475661 Do not close the MediaPlayer when navigating back from a thread. 2026-05-12 15:21:20 +02:00
Benoit Marty
bc24bb4e88 Merge pull request #6767 from element-hq/feature/bma/llsAndThread
Prevent user from starting LLS in thread
2026-05-12 14:24:16 +02:00
Benoit Marty
206c3b7dac Reduce FeatureFlags Knock effect on room creation and room edition form.
Closes #6701
2026-05-12 12:23:16 +02:00
Valere
41c1ed5a3f add test to MessageSummaryFormatter 2026-05-11 18:08:28 +02:00
Jorge Martin Espinosa
4975f61eb8 Adapt to new DM definition changes in the SDK (#6748)
* Set `DmRoomDefinition.TwoPeople` in `ClientBuilder`. This applies the 'direct and with at most 2 non-service members' rule to what the SDK should consider a DM.

* Map `RoomInfo.isDm` from the SDK

* Map `NotificationData.isDm` from `NotificationInfo.roomInfo.isDm`

* Remove `RoomIsDmCheck` file as its extension functions are now redundant. Move `Room.isDm` helper function to `BaseRoom`.

* Map `isDm` in `SpaceRoom` from the SDK too

* Replace `isDirect` with `isDm` where possible

* Map `RoomMember.isServiceMember` from the SDK and use it to tell apart normal members of a room from service members (i.e. `RoomMembersState.getDirectRoomMember`)
2026-05-11 17:22:16 +02:00
Jorge Martin Espinosa
b3820513fb Stop removing the logs dir when clearing cache (#6765) 2026-05-11 16:55:40 +02:00
Benoit Marty
17cee340ef Prevent user from starting LLS in thread 2026-05-11 14:49:53 +02:00
Valere
fa3cfbdb7b Merge branch 'develop' into feature/valere/call/decline_timeline_rendering 2026-05-11 11:21:02 +02:00
Valere
3552e59098 review: Refactor preview, show all variants 2026-05-11 11:20:10 +02:00
Valere
9b55a1ab03 review: Invert if for better readability 2026-05-11 10:47:46 +02:00
Valere
5f872bf56e review: better comment 2026-05-11 10:47:32 +02:00
Valere
2d9bda3ac4 review: Use @stringRes annotation for Int 2026-05-11 10:47:17 +02:00
ganfra
3b620bd8a8 Feature : share live location (#6741)
* First live location sharing sending implementation

* Simplify logic around canStop sharing

* Add some debug logs around LiveLocationSharingService

* Add LiveLocationException

* Expose beaconId to identify the current share

* Throttle live location instead of debouncing

* Keep sync alive when sharing live location

* Improve LiveLocation sharing

* Show LiveLocationDisclaimer

* Read minDistanceUpdate in LiveLocationSharingService

* Set minDistanceUpdate in AdvancedSettings

* Display banner in room when sharing live location

* Fix tests around LiveLocationSharing

* Ensure shares are properly restarted/stopped when app is re-launched

* Ensure LLS data is cleared when session is removed

* Update and fix LLS tests

* Handle Start LLS in ui

* Add check LLS permissions

* Remove hardcoded strings

* Fix quality and format

* Create DeviceLocationProvider so we can share location data between sources (presenter/live location service)

* Update screenshots

* Fix warning

* Do not try to stop if it was not sharing

* Revert "Create DeviceLocationProvider so we can share location data between sources (presenter/live location service)"

This reverts commit ba12bd968e82941cc231bdbb449310b24c97c5b8.

* Tweak location provider config values

* Address PR review remarks

* Fix ktlint

* Update screenshots

* Fix some tests after merging develop

* Adjust TimelineItemLocationView ui to match figma

* Update screenshots

* Documentation and cleanup

* Remove temporary resource

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Benoit Marty <benoitm@matrix.org>
2026-05-11 08:19:28 +00:00
ElementBot
397274250a Sync Strings from Localazy (#6761)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-05-11 09:37:59 +02:00
bxdxnn
06f3c649f5 Render media captions formatting in the media viewer (#6729)
* Render media captions formatting in the media viewer

* Update screenshots

* Trigger actions

* Remove unused imports and reformat code

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-08 16:30:32 +02:00
Jorge Martin Espinosa
643c746bc4 Use just the other user's avatar for DM details (#6738)
* Use just the other user's avatar for DM details. Remove `DmAvatars` component and other no longer needed data.

* Improve selection indicator by clipping the avatar to a circle shape

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-05-08 11:17:30 +02:00
Benoit Marty
cf17502f2e Merge pull request #6744 from element-hq/feature/bma/improvePinUX
Improve pin code ux
2026-05-07 17:04:43 +02:00
Benoit Marty
e6977ea85c Merge pull request #6740 from element-hq/feature/bma/uiSample
Introduce UI sample
2026-05-07 12:28:08 +02:00
Benoit Marty
3b6721946c Merge pull request #6708 from escix/patch-3
Fix 2 x Crash the app in Developer Options - Update AppDeveloperSettingsView.kt
2026-05-07 11:56:01 +02:00
Benoit Marty
80f7a9e00f Remove trailing spaces 2026-05-07 11:54:27 +02:00
Benoit Marty
e4afd6ccf0 Fix test 2026-05-07 11:52:21 +02:00
Jorge Martin Espinosa
d3e0ed059b Make send event state UI easier to click (#6739)
* Make send event state UI easier to click

Make it so the whole timestamp view can be clicked

* Update screenshots

* Simplify `clickableModifier`

---------

Co-authored-by: ElementBot <android@element.io>
2026-05-07 11:11:07 +02:00
Benoit Marty
f529f49e3c Add missing screenshot and improve UX when user enter wrong pin then correct pin. 2026-05-07 10:59:13 +02:00
Benoit Marty
ab48f761e1 Ensure that remaining pin code attempts is never bigger than the value in the config. 2026-05-07 10:59:13 +02:00
Benoit Marty
6ad8a63e36 Add test. 2026-05-07 10:59:12 +02:00
Benoit Marty
f85239518c Fix quality issue. 2026-05-07 10:59:12 +02:00
Benoit Marty
ef11ce1100 PinUnlockEvents -> PinUnlockEvent 2026-05-07 10:59:12 +02:00
Benoit Marty
b2676d2547 SetupPinEvents -> SetupPinEvent 2026-05-07 10:59:11 +02:00