Commit graph

566 commits

Author SHA1 Message Date
Benoit Marty
ba0c659df1
Merge pull request #5645 from element-hq/feature/bma/mutliAccountNotification
Improve rendering notification for multi account
2025-11-05 18:08:20 +01:00
Benoit Marty
cf742b42d0 Fix test. 2025-11-05 11:47:51 +01:00
Benoit Marty
1d79ab88bd Do not use the bastDescription but the cation for image/video/sticker because else the filename will be rendered in the notification and for media we do not want that.
Also fixes the issue when images is not rendered on some system and so they can be empty notification.

Closes #3945
2025-11-05 11:00:13 +01:00
Benoit Marty
af12ff3c9a Use new SessionStore API 2025-11-04 16:22:16 +01:00
Benoit Marty
1bba0d4dda Merge remote-tracking branch 'origin/develop' into feature/bma/mutliAccountNotification 2025-11-04 16:20:42 +01:00
Benoit Marty
d968d5aff0 Remove unused property 2025-11-04 15:53:50 +01:00
Benoit Marty
be807f4b5c Revert "NotificationDataFactory: improve API"
This reverts commit 7d7ea5d67c.

# Conflicts:
#	libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/NotificationDataFactoryTest.kt
2025-11-04 15:43:23 +01:00
Benoit Marty
d7e328dca7 Need to provide matchingFallbacks 2025-11-03 22:18:50 +01:00
Benoit Marty
776d734557 Use the new notification sound only on debug and night 2025-11-03 19:08:49 +01:00
Benoit Marty
66c8bd8ffb
Revert "Update notification sound" 2025-11-03 18:53:30 +01:00
Benoit Marty
b94d88eaa7 Update notification sound 2025-11-03 14:58:40 +01:00
Benoit Marty
fa55bfe70f Improve code. 2025-10-31 19:15:19 +01:00
Benoit Marty
fed09eeefb Fix test. 2025-10-31 10:10:00 +01:00
Benoit Marty
6cbb679375 Fix issue after rebase. 2025-10-31 10:09:24 +01:00
Benoit Marty
2b98a26694 Remove obsolete TODO 2025-10-31 09:32:41 +01:00
Benoit Marty
e759dca9db Small cleanup 2025-10-31 09:32:40 +01:00
Benoit Marty
674814e322 Move call to setGroup to configureWith 2025-10-31 09:31:57 +01:00
Benoit Marty
3382aa2cfc Use TestScope.backgroundScope 2025-10-31 09:29:48 +01:00
Benoit Marty
04e5d684d4 Let DefaultNotificationDrawerManager use NotificationDisplayer instead of NotificationManagerCompat 2025-10-31 09:29:48 +01:00
Benoit Marty
f4f623c417 Create const for diagnostic tag. 2025-10-31 09:27:35 +01:00
Benoit Marty
6fe85dc579 Use better names for API. 2025-10-31 09:27:34 +01:00
Benoit Marty
7ee00a65d8 Rename OneShotNotification.key to OneShotNotification.tag for clarity. 2025-10-31 09:25:04 +01:00
Benoit Marty
7d7ea5d67c NotificationDataFactory: improve API 2025-10-31 09:25:03 +01:00
Benoit Marty
57ac39673d Notification: show userId in notification when several accounts are configured. 2025-10-31 09:25:01 +01:00
Benoit Marty
be03c50aaf Ensure a Callback and only one is provided in the Plugin. Also reduce boilerplate code in Nodes. 2025-10-30 16:32:51 +01: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
eef0fbf4be Fix "Arrow is redundant when parameter list is empty"
And other issues that ktlint now reports
2025-10-30 14:33:25 +01:00
Jorge Martin Espinosa
84d0338ed3
Fix issues with WorkManager on Android 12 and below (#5606)
* Add `getForegroundInfo` implementation to try to fix issues with WorkManager on Android 12 and below

This may be a MIUI-only issue as I couldn't reproduce it with several emulators on Android 11, 12 and 13.

* Use `setExpedited` only on Android 13 or higher, it's not needed on older versions

* Use an actual string resource, fix tests

* Fix review comments

* Fix broken test with Element Pro:

Instead of using Robolectric with API < 33 (since Pro uses minSdk 33) use a `BuildVersionSdkIntProvider`

* Remove `getForegroundInfo` and the associated permission, as we expect it to be dead code

* Fix lint issues

* Cleanup NotificationIdProvider

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-10-28 20:06:57 +00:00
ElementBot
b1addb4521
Sync Strings from Localazy (#5610)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-10-27 13:53:07 +01:00
Benoit Marty
9baf948b35
Merge pull request #5592 from element-hq/feature/bma/constValKey
Improve how data is handled for the WorkManager.
2025-10-24 19:20:44 +02:00
Benoit Marty
a11af0c2b2 Remove element_logo_green.xml from the diagnostic notification. 2025-10-24 17:06:03 +02:00
Benoit Marty
6e9af83b6a Let notifications uses the brandColor. 2025-10-24 17:04:48 +02:00
Benoit Marty
211c07c7e9 Quick reply action: use icon from compound 2025-10-24 13:25:38 +02:00
Benoit Marty
ac5c3ba607 Accept / reject invitation actions: use icons from compound 2025-10-24 13:23:59 +02:00
Benoit Marty
e8ac2f5f7b Mark as read: use icon from compound 2025-10-24 13:22:00 +02:00
Benoit Marty
f1b8f878de
Merge pull request #5600 from element-hq/feature/bma/deletePinCode
Delete pin code only when the last session is deleted
2025-10-24 09:47:57 +02:00
Benoit Marty
a18eb6eb5e Add default implementation to SessionListener 2025-10-23 16:48:20 +02:00
Benoit Marty
9ca5fbdc08 Add parameter wasLastSession to SessionListener.onSessionDeleted 2025-10-23 16:20:15 +02:00
Benoit Marty
afdfe28ef4 Remove dependency on AppNavigationStateService from DefaultUnifiedPushCurrentUserPushConfigProvider 2025-10-23 15:37:31 +02:00
Benoit Marty
705b1b08f2 Remove dependency on AppNavigationStateService from DefaultGetCurrentPushProvider 2025-10-23 15:03:04 +02:00
Benoit Marty
3bd4aa746d Add missing test. 2025-10-23 09:59:24 +02:00
Benoit Marty
a440815404 Introduce WorkerDataConverter to avoid hard coded Json key and ensure serializing/deserializing is performed at the same place. 2025-10-23 09:51:21 +02: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
27a6e6aa82 Fix compilation issue 2025-10-22 18:24:20 +02:00
Jorge Martin Espinosa
dd395a5214
Enable SyncNotificationsWithWorkManager in nightly and debug builds (#5573)
* Enable `SyncNotificationsWithWorkManager` in nightly and debug builds

* Fix tests
2025-10-22 16:55:40 +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
Jorge Martin Espinosa
8b169c4265
Fix 'test push loop back' notification check (#5541)
Include a fake client secret as the HS would do, since it's now mandatory.
2025-10-15 14:07:18 +02:00