mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-06 12:28:29 +00:00
Add missing image provider to RoomChangeRolesScreenViewModel. (#2715)
* Add an assertion for a missing image provider. * Pass an image provider to RoomChangeRolesScreenViewModel. * Update snapshots.
This commit is contained in:
@@ -1093,6 +1093,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
|
|
||||||
private func presentRolesAndPermissionsScreen() {
|
private func presentRolesAndPermissionsScreen() {
|
||||||
let parameters = RoomRolesAndPermissionsFlowCoordinatorParameters(roomProxy: roomProxy,
|
let parameters = RoomRolesAndPermissionsFlowCoordinatorParameters(roomProxy: roomProxy,
|
||||||
|
mediaProvider: userSession.mediaProvider,
|
||||||
navigationStackCoordinator: navigationStackCoordinator,
|
navigationStackCoordinator: navigationStackCoordinator,
|
||||||
userIndicatorController: userIndicatorController,
|
userIndicatorController: userIndicatorController,
|
||||||
analytics: analytics)
|
analytics: analytics)
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ enum RoomRolesAndPermissionsFlowCoordinatorAction: Equatable {
|
|||||||
|
|
||||||
struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
||||||
let roomProxy: RoomProxyProtocol
|
let roomProxy: RoomProxyProtocol
|
||||||
|
let mediaProvider: MediaProviderProtocol
|
||||||
let navigationStackCoordinator: NavigationStackCoordinator
|
let navigationStackCoordinator: NavigationStackCoordinator
|
||||||
let userIndicatorController: UserIndicatorControllerProtocol
|
let userIndicatorController: UserIndicatorControllerProtocol
|
||||||
let analytics: AnalyticsService
|
let analytics: AnalyticsService
|
||||||
@@ -33,6 +34,7 @@ struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
|||||||
class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||||
private let roomProxy: RoomProxyProtocol
|
private let roomProxy: RoomProxyProtocol
|
||||||
private let navigationStackCoordinator: NavigationStackCoordinator
|
private let navigationStackCoordinator: NavigationStackCoordinator
|
||||||
|
private let mediaProvider: MediaProviderProtocol
|
||||||
private let userIndicatorController: UserIndicatorControllerProtocol
|
private let userIndicatorController: UserIndicatorControllerProtocol
|
||||||
private let analytics: AnalyticsService
|
private let analytics: AnalyticsService
|
||||||
|
|
||||||
@@ -75,6 +77,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
init(parameters: RoomRolesAndPermissionsFlowCoordinatorParameters) {
|
init(parameters: RoomRolesAndPermissionsFlowCoordinatorParameters) {
|
||||||
roomProxy = parameters.roomProxy
|
roomProxy = parameters.roomProxy
|
||||||
navigationStackCoordinator = parameters.navigationStackCoordinator
|
navigationStackCoordinator = parameters.navigationStackCoordinator
|
||||||
|
mediaProvider = parameters.mediaProvider
|
||||||
userIndicatorController = parameters.userIndicatorController
|
userIndicatorController = parameters.userIndicatorController
|
||||||
analytics = parameters.analytics
|
analytics = parameters.analytics
|
||||||
|
|
||||||
@@ -164,6 +167,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
|
|
||||||
let parameters = RoomChangeRolesScreenCoordinatorParameters(mode: mode,
|
let parameters = RoomChangeRolesScreenCoordinatorParameters(mode: mode,
|
||||||
roomProxy: roomProxy,
|
roomProxy: roomProxy,
|
||||||
|
mediaProvider: mediaProvider,
|
||||||
userIndicatorController: userIndicatorController,
|
userIndicatorController: userIndicatorController,
|
||||||
analytics: analytics)
|
analytics: analytics)
|
||||||
let coordinator = RoomChangeRolesScreenCoordinator(parameters: parameters)
|
let coordinator = RoomChangeRolesScreenCoordinator(parameters: parameters)
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ private struct LoadableImageContent<TransformerView: View, PlaceholderView: View
|
|||||||
imageProvider: ImageProviderProtocol?,
|
imageProvider: ImageProviderProtocol?,
|
||||||
transformer: @escaping (AnyView) -> TransformerView,
|
transformer: @escaping (AnyView) -> TransformerView,
|
||||||
placeholder: @escaping () -> PlaceholderView) {
|
placeholder: @escaping () -> PlaceholderView) {
|
||||||
|
assert(imageProvider != nil, "Missing image provider, make sure one has been supplied to the view model.")
|
||||||
|
|
||||||
self.mediaSource = mediaSource
|
self.mediaSource = mediaSource
|
||||||
self.mediaType = mediaType
|
self.mediaType = mediaType
|
||||||
self.blurhash = blurhash
|
self.blurhash = blurhash
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import SwiftUI
|
|||||||
struct RoomChangeRolesScreenCoordinatorParameters {
|
struct RoomChangeRolesScreenCoordinatorParameters {
|
||||||
let mode: RoomMemberDetails.Role
|
let mode: RoomMemberDetails.Role
|
||||||
let roomProxy: RoomProxyProtocol
|
let roomProxy: RoomProxyProtocol
|
||||||
|
let mediaProvider: MediaProviderProtocol
|
||||||
let userIndicatorController: UserIndicatorControllerProtocol
|
let userIndicatorController: UserIndicatorControllerProtocol
|
||||||
let analytics: AnalyticsService
|
let analytics: AnalyticsService
|
||||||
}
|
}
|
||||||
@@ -46,6 +47,7 @@ final class RoomChangeRolesScreenCoordinator: CoordinatorProtocol {
|
|||||||
|
|
||||||
viewModel = RoomChangeRolesScreenViewModel(mode: parameters.mode,
|
viewModel = RoomChangeRolesScreenViewModel(mode: parameters.mode,
|
||||||
roomProxy: parameters.roomProxy,
|
roomProxy: parameters.roomProxy,
|
||||||
|
mediaProvider: parameters.mediaProvider,
|
||||||
userIndicatorController: parameters.userIndicatorController,
|
userIndicatorController: parameters.userIndicatorController,
|
||||||
analytics: parameters.analytics)
|
analytics: parameters.analytics)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh
|
|||||||
|
|
||||||
init(mode: RoomMemberDetails.Role,
|
init(mode: RoomMemberDetails.Role,
|
||||||
roomProxy: RoomProxyProtocol,
|
roomProxy: RoomProxyProtocol,
|
||||||
|
mediaProvider: MediaProviderProtocol,
|
||||||
userIndicatorController: UserIndicatorControllerProtocol,
|
userIndicatorController: UserIndicatorControllerProtocol,
|
||||||
analytics: AnalyticsService) {
|
analytics: AnalyticsService) {
|
||||||
guard mode != .user else { fatalError("Invalid screen configuration: \(mode)") }
|
guard mode != .user else { fatalError("Invalid screen configuration: \(mode)") }
|
||||||
@@ -43,7 +44,8 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh
|
|||||||
administrators: [],
|
administrators: [],
|
||||||
moderators: [],
|
moderators: [],
|
||||||
users: [],
|
users: [],
|
||||||
bindings: .init()))
|
bindings: .init()),
|
||||||
|
imageProvider: mediaProvider)
|
||||||
|
|
||||||
roomProxy.membersPublisher
|
roomProxy.membersPublisher
|
||||||
.receive(on: DispatchQueue.main)
|
.receive(on: DispatchQueue.main)
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ struct RoomChangeRolesScreen_Previews: PreviewProvider, TestablePreview {
|
|||||||
static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel {
|
static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel {
|
||||||
RoomChangeRolesScreenViewModel(mode: mode,
|
RoomChangeRolesScreenViewModel(mode: mode,
|
||||||
roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
||||||
|
mediaProvider: MockMediaProvider(),
|
||||||
userIndicatorController: UserIndicatorControllerMock(),
|
userIndicatorController: UserIndicatorControllerMock(),
|
||||||
analytics: ServiceLocator.shared.analytics)
|
analytics: ServiceLocator.shared.analytics)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -483,6 +483,7 @@ class MockScreen: Identifiable {
|
|||||||
let navigationStackCoordinator = NavigationStackCoordinator()
|
let navigationStackCoordinator = NavigationStackCoordinator()
|
||||||
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
||||||
let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
||||||
|
mediaProvider: MockMediaProvider(),
|
||||||
navigationStackCoordinator: navigationStackCoordinator,
|
navigationStackCoordinator: navigationStackCoordinator,
|
||||||
userIndicatorController: ServiceLocator.shared.userIndicatorController,
|
userIndicatorController: ServiceLocator.shared.userIndicatorController,
|
||||||
analytics: ServiceLocator.shared.analytics))
|
analytics: ServiceLocator.shared.analytics))
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c050947321b872cef937327f956f6ce282b585164e334a2ded0c1a6871b97a25
|
oid sha256:09f5f5cb302f687328cbfe09cefc47ee73eae5e3658537906cbcef01c0c8794f
|
||||||
size 207373
|
size 224471
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:190ec9f06d0f707b2d992dc119a9d823431afc851364ed909026c144f95fb7f0
|
oid sha256:7a1f1ad2848db85030ca65c7e6d990598ceb54e32e3c86f6afc9fbe96e234a12
|
||||||
size 219356
|
size 223830
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:522510aba055a62fdcb83e53bc9878a88cf294b4d527cfd3aa00e7b539e3ddf1
|
oid sha256:1787a4298b8468ade9ad94a60f820213237427e6f9e3cd5026cf593a60df77e9
|
||||||
size 233731
|
size 250764
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:cdf1b427af9c26275b95bea13f54b9512c32517b5d555d56eae3586f40e0d814
|
oid sha256:47c83c1d4e3e03d7087bba50c187de8f33cb1bf5dbef719c787bd6abbcf61f69
|
||||||
size 261310
|
size 265488
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2fcb5ae8d29561a48629bf39d6650bdae16bb4c100120e1bbd62fcf3c4903dda
|
oid sha256:8213e9217d51d16819fbbaa0d725ff2ac9f0fc5195b0bc61179216fa35e8cda6
|
||||||
size 156870
|
size 176330
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7459909962885d224379cb5445ffa1fda6dd870b7fe23314122caf74c945e33e
|
oid sha256:3492c36e1ca5f650439207b152194510f5a29128f011a332aa83a7778c043afc
|
||||||
size 168977
|
size 177644
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f9941bc0720587c6feb921a8ab16a832dc75cf1a045612049a4d45d2a9fa2161
|
oid sha256:68a44d8d0936fc84cdd31d2af748f231ad7507c0ea2b213ec47dc6b03b5c2ca9
|
||||||
size 180352
|
size 200395
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:6033f58c1c9ee18d423fbbfa21514a2ba4244386c0d94efe77b02c33b2df84e4
|
oid sha256:09505b859b9df6bf34f8c4e735333c7ffac8f3f7680e5be14ab6000bf520337d
|
||||||
size 206795
|
size 215353
|
||||||
|
|||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4dabc72ecc786b2b66f05bc7fe58f0d3f0878e08d9448d447c3ddfd0d5bb9c3b
|
||||||
|
size 148571
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4dabc72ecc786b2b66f05bc7fe58f0d3f0878e08d9448d447c3ddfd0d5bb9c3b
|
||||||
|
size 148571
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9c84e73ae05903801dc7e1b00b01c78d9b5d80d8482697d3440874f5f94ea050
|
||||||
|
size 99523
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9c84e73ae05903801dc7e1b00b01c78d9b5d80d8482697d3440874f5f94ea050
|
||||||
|
size 99523
|
||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4d75f55e3e084ff607745ae9efd832f2c9ca8b8f590c9b58f54fce670bf6a464
|
oid sha256:e2d4e386414e20d561952acf5146b86b33519cdac64422f72f430bb2cffb920c
|
||||||
size 174990
|
size 193769
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a037983772251085fa9efbfcbb6a614f43939be42e2d698283385a4770a0b7ed
|
oid sha256:794a8682899ea72300576908643ad0f3d69215ac0cce5f82221d6c7a70b0040a
|
||||||
size 181006
|
size 222074
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2cee67d5a943103957e8a5856bf0d7daf74cb8afa9a486bad8774ea7040ccb83
|
oid sha256:3bb325888a115cb360a4a7bb4d84fd22ea71614c0807e3f90045abdfb26b67f9
|
||||||
size 179797
|
size 187518
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e42b73ed2750ed6a0ea0a32700fb2729ecf5b13aaf2e243563d38a5f0e086723
|
oid sha256:4bf1373234d865555c3166c3347eed7d027da19e1e34bb5e28ef6928c7f94d1c
|
||||||
size 180195
|
size 194734
|
||||||
|
|||||||
@@ -205,6 +205,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
|||||||
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
|
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
|
||||||
viewModel = RoomChangeRolesScreenViewModel(mode: mode,
|
viewModel = RoomChangeRolesScreenViewModel(mode: mode,
|
||||||
roomProxy: roomProxy,
|
roomProxy: roomProxy,
|
||||||
|
mediaProvider: MockMediaProvider(),
|
||||||
userIndicatorController: UserIndicatorControllerMock(),
|
userIndicatorController: UserIndicatorControllerMock(),
|
||||||
analytics: ServiceLocator.shared.analytics)
|
analytics: ServiceLocator.shared.analytics)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Fix a bug where avatars were missing from the RoomChangeRolesScreen.
|
||||||
Reference in New Issue
Block a user