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