Commit Graph

11324 Commits

Author SHA1 Message Date
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
Adam Brown
67211605aa removing unused commented code 2021-10-26 20:03:10 +01:00
Adam Brown
1c0d69674d moving is invitation help to the event file 2021-10-26 20:03:10 +01:00
Adam Brown
37a7d449ae moving invitiation joined event filtering to the existing mapNotNull chain to avoid another list creation 2021-10-26 20:03:10 +01:00
Adam Brown
0c809b5ed1 now that we ignore duplicated invite joined events at the source we can avoid eager notification cancels and rely on the main notification refresh flow 2021-10-26 20:03:10 +01:00
Adam Brown
e95d49a3ae avoiding dispatching invitation accepted events
- we only want to notify users when they receive an invititation, not when they've accepted it
2021-10-26 20:03:10 +01:00
Benoit Marty
109a5a6664
Merge pull request #4332 from vector-im/feature/bma/do_not_inject_default
DI: Use interfaces instead of implementation
2021-10-26 20:45:13 +02:00
Benoit Marty
a19999a717
Merge pull request #4345 from vector-im/feature/adm/unable-to-join-by-name
Unable to join room by name
2021-10-26 19:35:44 +02:00
Benoit Marty
31abf44d0e
Merge pull request #4346 from vector-im/feature/bma/login_custom
Add API `LoginWizard.loginCustom(data: JsonDict): Session`
2021-10-26 19:28:30 +02:00
Benoit Marty
1d8a4a923a
Merge pull request #4344 from vector-im/feature/bma/device_id_param
Add optional deviceId to the login API
2021-10-26 19:24:09 +02:00
Adam Brown
272baa52ec adding remaining activity missing hilt injection annotations 2021-10-26 17:56:22 +01:00
Benoit Marty
e8ccae8cd0 Add API LoginWizard.loginCustom(data: JsonDict): Session to be able to login to a homeserver using arbitrary request content 2021-10-26 18:38:15 +02:00
Adam Brown
4361926075 adding changelog entry 2021-10-26 17:22:26 +01:00
Adam Brown
881157a725 applying the room navigation interceptor to only the room activity navigation, not the bottomsheets
- the bottomsheets require the activity to stay around as they host the sheet instance, fixes missing join sheets
2021-10-26 17:15:19 +01:00
Adam Brown
49c969601d adding missing bottomsheet handling for displaying the join room sheet when linking from the public rooms
- the activity is still finished causing the popup to not actually display
2021-10-26 17:14:24 +01:00
Benoit Marty
01a29f67d0 Version++ 2021-10-26 17:33:23 +02:00
Benoit Marty
8ac48b903a Merge branch 'hotfix/1.3.6' into develop 2021-10-26 17:31:10 +02:00
Benoit Marty
eb66a51891 Merge branch 'hotfix/1.3.6'
Conflicts:
	vector/src/main/java/im/vector/app/features/login/LoginViewModel.kt
2021-10-26 17:30:39 +02:00
Benoit Marty
6c485d5f6e Merge hotfix 1.3.6 2021-10-26 17:23:33 +02:00
Adam Brown
792444d1ac adding missing hilt annotation for injectable activity 2021-10-26 16:23:32 +01:00
Benoit Marty
edd29ec4ef fastlane change 2021-10-26 16:51:59 +02:00
Benoit Marty
093b5c76ab towncrier 2021-10-26 16:51:08 +02:00
Benoit Marty
f2330903ae Add named parameter for boolean 2021-10-26 16:49:38 +02:00
Benoit Marty
9f1efab18d Correctly handle url of type https://mobile.element.io/?hs_url=…&is_url=
Skip the choose server screen when such URL are open when Element
2021-10-26 16:49:21 +02:00
Benoit Marty
dc5739c11d Format 2021-10-26 16:46:20 +02:00
Benoit Marty
0236396c59 Add optional deviceId to the login API 2021-10-26 15:10:04 +02:00