Commit Graph

7055 Commits

Author SHA1 Message Date
Onuray Sahin 40aa0175d0 Code review fixes. 2021-10-29 16:54:54 +03:00
Onuray Sahin a5a3a817e1 Merge branch 'develop' into feature/ons/poll
* develop: (129 commits)
  Improve Rx sequence regarding listener
  adding changelog entry
  using correct license for matrix-sdk test
  extending the room name resolved to create a dedicated room name data class which contains a normalized version of the room name
  Remove shortcut as soon as a PIN code is set
  ensuring the store migration class is always equal to other store migration instances - is needed as realm will throw if multiple migration instances are created and they don't match
  removing extra query definition by chaining the query creation with modifiers
  removing noisy log which duplicates a type clause and fixing when casing formatting to have a case per line
  documenting the different query cases
  making the isNormalized function an extension and internal to the sdk
  Cache immutable value
  Do not show shortcuts if a PIN code is set
  Remove (disable) shortcut if a room is left
  Ensure ShortcutsHandler get all the joined rooms #4168
  Add `sortOrder: RoomSortOrder` parameter, with no API break
  Clean code
  adding normalised room display name field and making use of it when filtering rooms by name - fixes non latin-1 character set room names from being ignored when searching with inexact casing
  adding normalisation to the query string cases
  making value processing an injectable class, it will need to have its own dependencies to support normalisation
  porting QueryStringValue to sealed interface with a sub category for the content based values - allows for handling those cases separately for normalisation
  ...

# Conflicts:
#	vector/src/main/java/im/vector/app/core/di/ScreenComponent.kt
2021-10-28 18:05:10 +03:00
Onuray Sahin db820efc3a Fix UI issues. 2021-10-28 15:43:51 +03:00
Onuray Sahin ac299d8c06 Remove poll command. 2021-10-28 14:48:20 +03:00
Benoit Marty 868548d0ab
Merge pull request #4352 from vector-im/feature/adm/room-filtering
Fixing case sensitive non latin room name filtering
2021-10-28 12:27:13 +02:00
Onuray Sahin dd58dd800c Create poll event content. 2021-10-28 10:50:29 +03:00
Benoit Marty 34e8cf84dc Improve Rx sequence regarding listener 2021-10-28 09:41:27 +02:00
Benoit Marty 6691edb59d Remove shortcut as soon as a PIN code is set 2021-10-27 16:17:53 +02:00
Benoit Marty 3a48e33c81 Cache immutable value 2021-10-27 15:26:31 +02:00
Benoit Marty 6f577d8232 Do not show shortcuts if a PIN code is set 2021-10-27 15:24:24 +02:00
Benoit Marty 3a81c10062 Remove (disable) shortcut if a room is left 2021-10-27 15:13:07 +02:00
Benoit Marty f166348a68 Ensure ShortcutsHandler get all the joined rooms #4168 2021-10-27 15:00:14 +02:00
Benoit Marty 9b75da5d4d Clean code 2021-10-27 15:00:14 +02:00
Adam Brown 4ae04fc297 adding normalised room display name field and making use of it when filtering rooms by name
- fixes non latin-1 character set room names from being ignored when searching with inexact casing
2021-10-27 13:09:53 +01:00
Onuray Sahin 6cee266a95 Create poll UI implementation. 2021-10-27 13:10:01 +03: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 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 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 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 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