Timeline item sender profiles (#463)

* Adopt timeline item sender profiles for displaying user avatars and display names
* Prevent images from automatically being evicted from the in-memory cache when entering background
* Get rid of all the `urlString: String`s and start using proper URLs
* Add back manual display name loading as the sender profiles aren't working properly yet
* Implement a sender profile.
* Bump the RustSDK to v1.0.32-alpha

Co-authored-by: Doug <douglase@element.io>
This commit is contained in:
Stefan Ceriu
2023-01-18 16:29:44 +02:00
committed by GitHub
parent 8f906c7be7
commit 8f3f83167b
70 changed files with 390 additions and 495 deletions
@@ -57,7 +57,7 @@ class MockClientProxy: ClientProxyProtocol {
.success("User display name")
}
func loadUserAvatarURLString() async -> Result<String, ClientProxyError> {
func loadUserAvatarURL() async -> Result<URL, ClientProxyError> {
.failure(.failedRetrievingAvatarURL)
}
@@ -69,8 +69,8 @@ class MockClientProxy: ClientProxyProtocol {
.failure(.failedSettingAccountData)
}
func mediaSourceForURLString(_ urlString: String) -> MediaSourceProxy {
.init(urlString: urlString)
func mediaSourceForURL(_ url: URL) -> MediaSourceProxy {
.init(url: url)
}
func loadMediaContentForSource(_ source: MediaSourceProxy) async throws -> Data {
@@ -103,7 +103,7 @@ class MockClientProxy: ClientProxyProtocol {
var setPusherDeviceDisplayName: String?
var setPusherProfileTag: String?
var setPusherLang: String?
var setPusherUrl: String?
var setPusherUrl: URL?
var setPusherFormat: PushFormat?
var setPusherDefaultPayload: [AnyHashable: Any]?
// swiftlint:disable:next function_parameter_count
@@ -114,7 +114,7 @@ class MockClientProxy: ClientProxyProtocol {
deviceDisplayName: String,
profileTag: String?,
lang: String,
url: String?,
url: URL?,
format: PushFormat?,
defaultPayload: [AnyHashable: Any]?) async throws {
if let setPusherErrorToThrow { throw setPusherErrorToThrow }