This patch adds a new switch to VectorPreferences, the vector settings
preferences view and various classes propergating the set value of the
switch into parts of the application touched by the following patches.
Signed-off-by: networkException <git@nwex.de>
* develop: (114 commits)
Docs: Fix various formatting and spelling issues in notifications.md
Fixing non necessary breaking line
continuing to the originally supplied url when a rtl override character is detected
splitting url detection condition into separate branches
Cleaner code
Create extension `String?.toActiveSpaceOrOrphanRooms()` to reduce noise.
Add changelog
Fix test compilation
Add some Kdoc
Add some Kdoc
Create SpaceFilter.OrphanRooms to improve the API. Not 100% of the side effect. There is probably some (fixed?) bugs here.
Rename ActiveSpaceFilter to SpaceFilter
Remove `ActiveSpaceFilter.None` Prefer nullability for API coherency of `RoomSummaryQueryParams`
Add some Kdoc
Remove duplicated lines of code (the same code is done a few lines later)
Remove `RoomCategoryFilter.ALL` Prefer nullability for API coherency of `RoomSummaryQueryParams`
`displayName` default value is now `QueryStringValue.NoCondition`. It was working fine since in the DB we always have a name using `RoomDisplayNameFallbackProvider`, which in our current implementation always return a non empty String.
Small rework for nicer code
Remove duplicated code lines
Remove `roomId` from `RoomSummaryQueryParams.Builder()`. Create a new API in RoomService to observe a room summary from a roomId.
...
# Conflicts:
# vector/src/main/java/im/vector/app/features/location/live/map/LocationLiveMapViewFragment.kt
Persisting notification info fails for non-null Uris:
E NotificationEventPersistence: ## Failed to save cached notification info
E NotificationEventPersistence: java.io.NotSerializableException: android.net.Uri$HierarchicalUri
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1240)
E NotificationEventPersistence: at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1604)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1565)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
E NotificationEventPersistence: at java.util.ArrayList.writeObject(ArrayList.java:762)
E NotificationEventPersistence: at java.lang.reflect.Method.invoke(Native Method)
E NotificationEventPersistence: at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1036)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1552)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
E NotificationEventPersistence: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
E NotificationEventPersistence: at org.matrix.android.sdk.internal.session.securestorage.SecretStoringUtils.saveSecureObjectM(SecretStoringUtils.kt:283)
E NotificationEventPersistence: at org.matrix.android.sdk.internal.session.securestorage.SecretStoringUtils.securelyStoreObject(SecretStoringUtils.kt:150)
E NotificationEventPersistence: at org.matrix.android.sdk.internal.session.securestorage.DefaultSecureStorageService.securelyStoreObject(DefaultSecureStorageService.kt:27)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationEventPersistence.persistEvents(NotificationEventPersistence.kt:58)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationDrawerManager$persistEvents$1.invoke(NotificationDrawerManager.kt:183)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationDrawerManager$persistEvents$1.invoke(NotificationDrawerManager.kt:182)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationState.queuedEvents(NotificationState.kt:55)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationDrawerManager.persistEvents(NotificationDrawerManager.kt:182)
E NotificationEventPersistence: at im.vector.app.features.notifications.NotificationDrawerManager.refreshNotificationDrawerBg(NotificationDrawerManager.kt:177)
Accordingly, if a notification for an image is shown, and the
notification state is loaded from storage later, none of the previously
shown notifications will get dismissed once read.
Likely addresses https://github.com/vector-im/element-android/issues/4862.
Change-Id: I2d6be497e8b92e770b680e16e42b3610add57323
Previously the widget web view prompted to grant the widget permissions but it didn't
actually request those permissions from the system. So if the web view requested, e.g.
the camera permission but the app hadn't previously been granted that permission, the
web view wouldn't get camera access even when the widget permission request had been
confirmed.
With this commit, the app will also request camera and microphone permissions from the
system when needed.
Signed-off-by: Johannes Marbach <johannesm@element.io>