Adam Brown
d5ed95988d
adding normalisation to the query string cases
2021-10-27 12:46:17 +01:00
Adam Brown
2681601d35
making value processing an injectable class, it will need to have its own dependencies to support normalisation
2021-10-27 12:30:23 +01:00
Adam Brown
72508c61d9
porting QueryStringValue to sealed interface with a sub category for the content based values
...
- allows for handling those cases separately for normalisation
2021-10-27 12:19:49 +01:00
Benoit Marty
54daee2798
Merge pull request #4347 from vector-im/dependabot/gradle/com.googlecode.libphonenumber-libphonenumber-8.12.36
...
Bump libphonenumber from 8.12.35 to 8.12.36
2021-10-27 10:07:24 +02:00
dependabot[bot]
82b3d17db6
Bump libphonenumber from 8.12.35 to 8.12.36
...
Bumps [libphonenumber](https://github.com/google/libphonenumber ) from 8.12.35 to 8.12.36.
- [Release notes](https://github.com/google/libphonenumber/releases )
- [Changelog](https://github.com/google/libphonenumber/blob/master/making-metadata-changes.md )
- [Commits](https://github.com/google/libphonenumber/compare/v8.12.35...v8.12.36 )
---
updated-dependencies:
- dependency-name: com.googlecode.libphonenumber:libphonenumber
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-10-26 23:08:52 +00:00
Adam Brown
fe9dde5a14
Merge pull request #4274 from vector-im/feature/adm/notification-redesign
...
Notifications redesign
2021-10-26 20:42:00 +01:00
Adam Brown
124061e1db
adding changelog entry
2021-10-26 20:03:10 +01:00
Adam Brown
6d9877d79c
filtering out redacted simple message events, we handle them by updating the notifications
2021-10-26 20:03:10 +01:00
Adam Brown
a5fe6f7212
removing redacted events from the room notification message list
2021-10-26 20:03:10 +01:00
Adam Brown
b146501f29
avoiding multiple list iterations via mapNotNull
2021-10-26 20:03:10 +01:00
Benoit Marty
be67836a3e
Tiny formatting
2021-10-26 20:03:10 +01:00
Benoit Marty
2bd2cbf84e
Compact code
2021-10-26 20:03:10 +01:00
Benoit Marty
c56101d227
Do not use the room member avatar as a room avatar
2021-10-26 20:03:10 +01:00
Adam Brown
e8bd27e785
adding changelog entries
2021-10-26 20:03:10 +01:00
Adam Brown
743a71c78d
renaming event lists to give more context and remove the list suffix/inconsistencies
2021-10-26 20:03:10 +01:00
Adam Brown
d1f6db4236
using dedicated ProcessedEvent data class instead of type alias for passing around the process notificatiable events
...
- also includes @JvmName on all conflicting extensions for consistency
2021-10-26 20:03:10 +01:00
Adam Brown
d3234b33d3
increase enum class allowance by 1
2021-10-26 20:03:10 +01:00
Adam Brown
63090ef681
updating tests with shortcut placement changes
2021-10-26 20:03:10 +01:00
Adam Brown
6fb7faa360
removing unused imports
2021-10-26 20:03:10 +01:00
Adam Brown
a6e47d8b85
replacing notification utils usage with the displayer and removing unused method
2021-10-26 20:03:10 +01:00
Adam Brown
c16e3e09e6
adding missing parameter from rebase and removing no longer needed singleton annotation
2021-10-26 20:03:10 +01:00
Adam Brown
4748a385ea
inlining single use extension functions
2021-10-26 20:03:10 +01:00
Adam Brown
86ce6a404e
adding missing fixture parameter from rebase
2021-10-26 20:03:10 +01:00
Adam Brown
9fa09def96
fixing line lengths
2021-10-26 20:03:10 +01:00
Adam Brown
4bbb637ace
adding documentation around the two notifiable event lists which act as our notification source of truth
2021-10-26 20:03:10 +01:00
Adam Brown
c67b9ee81e
ensuring that we remove read messages when they come through by respecting the processed type when creating the notifications
2021-10-26 20:03:10 +01:00
Adam Brown
0bdc65b47f
diffing the notification events against the currently rendered events allow us to dismiss notifications from removed events
2021-10-26 20:03:10 +01:00
Adam Brown
b27fb264fc
using a process state of keep/removed rather than mapping to an ignored event id
...
- this state will be used to diff the currently rendered events against the new ones
2021-10-26 20:03:10 +01:00
Adam Brown
b7b4c01bde
splitting the event processing from the rendering
...
- this allows us to only synchronise of the event list modifications rather than the entire notification creation/rendering which should in turn reduce some of our ANRs https://github.com/vector-im/element-android/issues/4214
2021-10-26 20:03:10 +01:00
Adam Brown
587466e009
relying on the notification refreshing to cancel/update the notifications
2021-10-26 20:03:10 +01:00
Adam Brown
03fe45da60
ensuring that we removing the summary group before removing individual notifications
...
- adds some comments to explain the positioning
2021-10-26 20:03:10 +01:00
Adam Brown
a94a1a0523
formatting
2021-10-26 20:03:10 +01:00
Adam Brown
8fb6bef503
removing this usages for project convention
2021-10-26 20:03:10 +01:00
Adam Brown
0d316e69de
handling creating the summary when notification events are filtered to empty due to only containing removals
2021-10-26 20:03:10 +01:00
Adam Brown
3d567d0dcd
removing no longer needed hasBeenDisplayed state, the eventList is our source of truth
...
- when events have finished being displayed they should be removed from the eventList via notification delete actions
2021-10-26 20:03:10 +01:00
Adam Brown
c85afa96d3
lifting settings change to cancel all notifications out of the renderer
...
- the renderer's responsibility it handling events
2021-10-26 20:03:10 +01:00
Adam Brown
3023cb4d39
chaining the event process, notification creation and display logic into a NotificationRender
...
- extract the displaying into its own class to avoid leaking the entire notificationutils
- cancel/display notification actions are completely driven by the event or abscense of event from the eventList
- attempts to avoid redundant render passes by checking if the eventList has changed since the last render
2021-10-26 20:03:10 +01:00
Adam Brown
0f4ec65b7a
creating the notifications separate to where they're displayed
...
- also handles when the event diff means the notifications should be removed
2021-10-26 20:03:10 +01:00
Adam Brown
7b0c483134
creating dedicated class for the processing the serialized events
...
- updates the logic to track when events are removed as a way for the notifications to remove themselves, null events mean they've been removed
2021-10-26 20:03:10 +01:00
Adam Brown
4459aab558
making the event body non null and immutable to allow less cases to be handled -
...
also puts in the basis for a separate notification refreshing implementation
2021-10-26 20:03:10 +01:00
Adam Brown
6cc6cc58f0
adding changelog entry
2021-10-26 20:03:10 +01:00
Adam Brown
beff5ab821
including the room name in the invitation event if the room sumary is available
2021-10-26 20:03:10 +01:00
Adam Brown
56e2b79774
formatting
2021-10-26 20:03:10 +01:00
Adam Brown
86b500445f
updating the push gateway property to reflect that it mean the event can be replaced
...
- makes the property immutable as only the creation of the event knows if it can be replace eg it came from a push or the /sync event stream
2021-10-26 20:03:10 +01:00
Adam Brown
b44a382893
separating the mutable vars from the immutable ones, they'll be removed or made immutable by the notification redesign
2021-10-26 20:03:10 +01:00
Adam Brown
db5d4ead38
making the noisy property immutable
2021-10-26 20:03:10 +01:00
Adam Brown
c99dd4a615
making the isRedacted event property immutable
...
- also makes the notifiable events sealed interfaces so that we can copy the data classes with new redacted values when it changes
2021-10-26 20:03:10 +01:00
Adam Brown
89d643a4be
removing unused property (written to but never read)
2021-10-26 20:03:10 +01:00
Adam Brown
81da185d8b
making non overriden properties immutable by passing the values intro the constructor
2021-10-26 20:03:10 +01:00
Adam Brown
51f7dee952
removing non common properties form the base event
2021-10-26 20:03:10 +01:00