Commit graph

378 commits

Author SHA1 Message Date
bmarty
23c1112dcf Sync Strings from Localazy 2026-04-13 00:48:40 +00:00
Benoit Marty
2a5e9956e4
Reduce log level of activity lifecycle from warning to debug. (#6548) 2026-04-08 16:45:22 +02:00
renovate[bot]
2f99806603
fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15 (#6306)
* fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15

* Fix deprecations

* Add bottom sheet workaround

* Fix new lint issues

* Fix and ignore broken tests

* 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>
2026-03-24 11:24:07 +01:00
Benoit Marty
015cad90b6 Remove matrix.to intent filter from the AndroidManifest. Closes #6344. 2026-03-13 15:40:45 +01:00
Jorge Martin Espinosa
e821f75a88
Add code to help debugging the saved nav state graph (#6295)
* Add code to help debugging the saved nav state graph: this would help us diagnose the `TransactionTooLargeException` reports we've been seeing for months.
2026-03-06 14:44:30 +00:00
Jorge Martín
480376ef9b Inject SentryDsn the same way we do with SentrySdkDsn so we can fake it for tests 2025-12-18 14:08:38 +01:00
ElementBot
ad881c303a
Sync Strings from Localazy (#5904)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-12-15 23:51:19 +01:00
Jorge Martín
942eae94ad Make SentrySdkDsn a value class instead of a qualifier 2025-12-04 12:17:52 +01:00
Jorge Martín
890b6111ea Fix providing the Sentry SDK DSN in Element Pro when no analytic modules are enabled 2025-12-04 12:17:52 +01:00
Jorge Martín
883397e9dc Enable Sentry in the SDK: add SDK Sentry DSN value
This is provided to the SDK in `PlatformInitializer`.
2025-12-04 12:17:52 +01:00
Jorge Martín
1d77aa447d Extract from_notification extra to a constant in IntentNavigationExtras
Allow `IntentProvider` to receive extras and `PendingIntentFactory` to send them.
2025-11-28 14:15:54 +01:00
Jorge Martín
e1bd189ba0 Add a performance check for notification tap -> populated timeline time 2025-11-28 14:15:54 +01:00
Benoit Marty
a167ad90f2 Fix crash at startup 2025-11-19 09:34:17 +01:00
Jorge Martin Espinosa
860257e3b2
Try fixing forced dark mode issues on MIUI on Android 10 (#5708) 2025-11-18 15:34:06 +01:00
Benoit Marty
eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Jorge Martín
4df7841452 Create PinnedEventsTimelineProvider, expose it in TimelineBindings 2025-11-03 14:43:18 +01:00
Jorge Martin Espinosa
353c00e032
Display only valid emojis in recent emoji list (#5612)
* Create `:libraries:recentemojis` and move `AddRecentEmoji` and `GetRecentEmojis` there

- Make sure `GetRecentEmojis` won't return duplicate or invalid emojis.
- `ActionListPresenter` now handles merging suggested and recent emojis, not `ActionListView`.
2025-10-30 15:27:51 +00:00
Jorge Martin Espinosa
eb08639776
Split notifications for messages in threads (#5595)
* Separate thread notifications into their own notifications when the feature flag is enabled.

Otherwise, set the `threadId` to null so it'll behave as usual. It's done this way to avoid having to inject `FeatureFlagService` in several places.

* Add permalink navigation to threads from notifications, focusing on the latest event in the list of messages of the notification tapped

* Fix redactions in threads

* Clear notifications for a thread when visiting it

* Fix opening a thread happening twice, first because of the `openThreadId` value, then because of the `focusedEventId` one

* Make opening a room through a notification also focus on the latest event

* Add helper `NotificationCreator.messageTag` function

* Remove unused `ROOM_CALL_NOTIFICATION_ID`: `FOREGROUND_SERVICE_NOTIFICATION_ID`+ `ForegroundServiceType` is used instead

* Simplify `DefaultDeepLinkCreator`

* Make sure the main timeline focuses on the thread root id too when navigating to a thread

* Handle "Mark as read" action for thread notification, using `timeline.markAsRead`

* Log failures to mark rooms as read using the notification action

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-10-30 15:15:00 +00:00
Benoit Marty
263e761907 Remove @Inject, not necessary anymore when class is annotated with @ContributesBinding 2025-10-22 18:52:37 +02:00
Benoit Marty
07b9a8456b Move SemanticColorsLightDark to compound module 2025-10-22 09:35:55 +02:00
Benoit Marty
49c23a922e Improve API and fix theme glitch when switching between accounts. 2025-10-22 09:32:15 +02:00
Benoit Marty
b62382ffc7
Fix test warning (#5558)
* Introduce JsonProvider.

It will ensure that classes are using the correct Json instances in the unit tests.

* Avoid creating a Json instance many times.

* Update ref.
2025-10-20 12:08:05 +02:00
ElementBot
a22101150b
Sync Strings (#5562)
* Sync Strings from Localazy

* Sync strings again

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-10-20 10:04:46 +00:00
Benoit Marty
df48ed5a2d Introduce JsonProvider.
It will ensure that classes are using the correct Json instances in the unit tests.
2025-10-20 09:40:42 +02:00
Jorge Martin Espinosa
ebe94f873e
Sync notifications using WorkManager (#5545)
* Initial implementation of notification sync using `WorkManager`

* Use custom `MetroWorkerFactory` to allow assisted injection in WorkManager Workers

* Add tests for `FetchNotificationWorker`. Create `FakeNotificationResolverQueue` to help testing.

* Add more tests, fix Konsist checks

* Add tests for `SyncNotificationWorkManagerRequest`

* Simplify `FakeNotificationResolverQueue`
2025-10-17 09:51:27 +00:00
Benoit Marty
7c437761c4 Move Json provider from Network module to AppModule to reuse it. 2025-10-16 16:37:08 +02:00
ganfra
c127d4d63c di : clean some code 2025-10-01 10:23:10 +02:00
Jorge Martin Espinosa
a8c4d5d019
Use shared recent emoji reactions from account data (#5402)
* Use shared recent emoji reactions from account data

- Add `AddRecentEmoji` and `GetRecentEmojis` use cases to avoid injecting the whole `MatrixClient` for just one of these operations.
- Update the UI and logic of the emoji picker and message context menu to include the recent emojis.
- Add `CoroutineDispatchers.Default` with the defaults coroutines to use in the app for ease of use.

* Instead of replacing suggested emojis, concatenate recent ones removing duplicates

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-09-26 11:04:34 +00:00
ElementBot
d64b867f03
Sync Strings from Localazy (#5385)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-09-22 11:19:35 +02:00
bmarty
8027ce9dca Sync Strings from Localazy 2025-09-05 07:44:19 +00:00
Jorge Martín
e8328858ab Fixes after rebase 2025-09-04 16:49:21 +02:00
Jorge Martín
08bbe3fdaa Some cleanup:
- Remove unnecessary `GlobalScope`.
- Rename `Component` to `Graph`, `DaggerComponentOwner` to `DependencyInjectionGraphOwner`.
- Rename component builders to factories, where necessary.
2025-09-04 16:49:21 +02:00
Jorge Martín
29a97fc0d9 Fix lint issues and restore commented out code 2025-09-04 16:49:18 +02:00
Jorge Martín
b76a71ebf5 Start migrating Anvil KSP to Metro 2025-09-04 16:48:34 +02:00
Jorge Martin Espinosa
db921ab108
Enable largeHeap option (#5258)
This should help with some OOM issues we're seeing when both playing and transcoding video files in the attachment preview screen
2025-09-03 11:06:46 +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
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
Benoit Marty
3e73496c85 Remove FeatureFlag.IncomingShare 2025-08-12 15:52:05 +02:00
Benoit Marty
573586322a Set appCategory value to "social" in the Android Manifest 2025-08-12 09:57:30 +02:00
Benoit Marty
d9b274b6cf Let enterprise build be able to override (or disable) the bug report URL. 2025-08-08 17:23:39 +02:00
Benoit Marty
18c325560b Store log files in subfolder based on the homeserver domain. 2025-08-07 11:31:05 +02:00
bmarty
284241a4ec Sync Strings from Localazy 2025-06-30 00:33:54 +00:00
夜坂雅
20270cdffe
feat: Support matrix: links (#4839) 2025-06-09 16:40:45 +02:00
Benoit Marty
5f191d9f9c
Fix coroutine scope (#4820)
* Inject the session scope instead of the application scope where it's possible.

* Create AppCoroutineScope annotation to let developers explicitly choose the appropriate CoroutineScope when injecting one.
2025-06-04 15:33:51 +00:00
Benoit Marty
0953789231
Add support for Android Auto. (#4818) 2025-06-04 13:00:01 +02:00
Benoit Marty
b398fb47d2
Fix mobile link (#4805)
* Fix path of mobile link. Adding a trailing `/`

* Reduce brain pressure.
2025-06-02 16:11:30 +02:00
Lucas
df62dd1dd5
fix: exclude more domains from being backed up by the system (#4773)
tries* to fix #3465
2025-06-02 14:17:43 +02:00