diff --git a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift index f12673fb1..e32490d30 100644 --- a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift @@ -1093,6 +1093,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol { private func presentRolesAndPermissionsScreen() { let parameters = RoomRolesAndPermissionsFlowCoordinatorParameters(roomProxy: roomProxy, + mediaProvider: userSession.mediaProvider, navigationStackCoordinator: navigationStackCoordinator, userIndicatorController: userIndicatorController, analytics: analytics) diff --git a/ElementX/Sources/FlowCoordinators/RoomRolesAndPermissionsFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/RoomRolesAndPermissionsFlowCoordinator.swift index d30e93782..eedf252c3 100644 --- a/ElementX/Sources/FlowCoordinators/RoomRolesAndPermissionsFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/RoomRolesAndPermissionsFlowCoordinator.swift @@ -25,6 +25,7 @@ enum RoomRolesAndPermissionsFlowCoordinatorAction: Equatable { struct RoomRolesAndPermissionsFlowCoordinatorParameters { let roomProxy: RoomProxyProtocol + let mediaProvider: MediaProviderProtocol let navigationStackCoordinator: NavigationStackCoordinator let userIndicatorController: UserIndicatorControllerProtocol let analytics: AnalyticsService @@ -33,6 +34,7 @@ struct RoomRolesAndPermissionsFlowCoordinatorParameters { class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol { private let roomProxy: RoomProxyProtocol private let navigationStackCoordinator: NavigationStackCoordinator + private let mediaProvider: MediaProviderProtocol private let userIndicatorController: UserIndicatorControllerProtocol private let analytics: AnalyticsService @@ -75,6 +77,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol { init(parameters: RoomRolesAndPermissionsFlowCoordinatorParameters) { roomProxy = parameters.roomProxy navigationStackCoordinator = parameters.navigationStackCoordinator + mediaProvider = parameters.mediaProvider userIndicatorController = parameters.userIndicatorController analytics = parameters.analytics @@ -164,6 +167,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol { let parameters = RoomChangeRolesScreenCoordinatorParameters(mode: mode, roomProxy: roomProxy, + mediaProvider: mediaProvider, userIndicatorController: userIndicatorController, analytics: analytics) let coordinator = RoomChangeRolesScreenCoordinator(parameters: parameters) diff --git a/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift b/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift index 0b04f8996..7ae8f09bc 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift @@ -102,6 +102,8 @@ private struct LoadableImageContent TransformerView, placeholder: @escaping () -> PlaceholderView) { + assert(imageProvider != nil, "Missing image provider, make sure one has been supplied to the view model.") + self.mediaSource = mediaSource self.mediaType = mediaType self.blurhash = blurhash diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenCoordinator.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenCoordinator.swift index bfa83d1fb..8c6383e70 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenCoordinator.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenCoordinator.swift @@ -22,6 +22,7 @@ import SwiftUI struct RoomChangeRolesScreenCoordinatorParameters { let mode: RoomMemberDetails.Role let roomProxy: RoomProxyProtocol + let mediaProvider: MediaProviderProtocol let userIndicatorController: UserIndicatorControllerProtocol let analytics: AnalyticsService } @@ -46,6 +47,7 @@ final class RoomChangeRolesScreenCoordinator: CoordinatorProtocol { viewModel = RoomChangeRolesScreenViewModel(mode: parameters.mode, roomProxy: parameters.roomProxy, + mediaProvider: parameters.mediaProvider, userIndicatorController: parameters.userIndicatorController, analytics: parameters.analytics) } diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenViewModel.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenViewModel.swift index ace913f6b..c86303f4d 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/RoomChangeRolesScreenViewModel.swift @@ -31,6 +31,7 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh init(mode: RoomMemberDetails.Role, roomProxy: RoomProxyProtocol, + mediaProvider: MediaProviderProtocol, userIndicatorController: UserIndicatorControllerProtocol, analytics: AnalyticsService) { guard mode != .user else { fatalError("Invalid screen configuration: \(mode)") } @@ -43,7 +44,8 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh administrators: [], moderators: [], users: [], - bindings: .init())) + bindings: .init()), + imageProvider: mediaProvider) roomProxy.membersPublisher .receive(on: DispatchQueue.main) diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift index 0752c205c..7dbd943b0 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift @@ -133,6 +133,7 @@ struct RoomChangeRolesScreen_Previews: PreviewProvider, TestablePreview { static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel { RoomChangeRolesScreenViewModel(mode: mode, roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + mediaProvider: MockMediaProvider(), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/UITests/UITestsAppCoordinator.swift b/ElementX/Sources/UITests/UITestsAppCoordinator.swift index 2ba820283..6c6d14e17 100644 --- a/ElementX/Sources/UITests/UITestsAppCoordinator.swift +++ b/ElementX/Sources/UITests/UITestsAppCoordinator.swift @@ -483,6 +483,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator()) let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + mediaProvider: MockMediaProvider(), navigationStackCoordinator: navigationStackCoordinator, userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics)) diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Administrators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Administrators.png index dc5593e4c..f568f582f 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Administrators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Administrators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c050947321b872cef937327f956f6ce282b585164e334a2ded0c1a6871b97a25 -size 207373 +oid sha256:09f5f5cb302f687328cbfe09cefc47ee73eae5e3658537906cbcef01c0c8794f +size 224471 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Moderators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Moderators.png index c2782e205..51f764653 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Moderators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-en-GB.Moderators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:190ec9f06d0f707b2d992dc119a9d823431afc851364ed909026c144f95fb7f0 -size 219356 +oid sha256:7a1f1ad2848db85030ca65c7e6d990598ceb54e32e3c86f6afc9fbe96e234a12 +size 223830 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Administrators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Administrators.png index 70d519de8..aa2f023ea 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Administrators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Administrators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:522510aba055a62fdcb83e53bc9878a88cf294b4d527cfd3aa00e7b539e3ddf1 -size 233731 +oid sha256:1787a4298b8468ade9ad94a60f820213237427e6f9e3cd5026cf593a60df77e9 +size 250764 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Moderators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Moderators.png index 4e50480a0..b19568751 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Moderators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPad-pseudo.Moderators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cdf1b427af9c26275b95bea13f54b9512c32517b5d555d56eae3586f40e0d814 -size 261310 +oid sha256:47c83c1d4e3e03d7087bba50c187de8f33cb1bf5dbef719c787bd6abbcf61f69 +size 265488 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Administrators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Administrators.png index 1ef2ed5d6..97cf7cbc4 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Administrators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Administrators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2fcb5ae8d29561a48629bf39d6650bdae16bb4c100120e1bbd62fcf3c4903dda -size 156870 +oid sha256:8213e9217d51d16819fbbaa0d725ff2ac9f0fc5195b0bc61179216fa35e8cda6 +size 176330 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Moderators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Moderators.png index 961a6ace1..e7ac263c0 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Moderators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-en-GB.Moderators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7459909962885d224379cb5445ffa1fda6dd870b7fe23314122caf74c945e33e -size 168977 +oid sha256:3492c36e1ca5f650439207b152194510f5a29128f011a332aa83a7778c043afc +size 177644 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Administrators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Administrators.png index 0dddff93a..e3d3ca212 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Administrators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Administrators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9941bc0720587c6feb921a8ab16a832dc75cf1a045612049a4d45d2a9fa2161 -size 180352 +oid sha256:68a44d8d0936fc84cdd31d2af748f231ad7507c0ea2b213ec47dc6b03b5c2ca9 +size 200395 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Moderators.png b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Moderators.png index fb0e7c729..3d4e5c514 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Moderators.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_roomChangeRolesScreen-iPhone-15-pseudo.Moderators.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6033f58c1c9ee18d423fbbfa21514a2ba4244386c0d94efe77b02c33b2df84e4 -size 206795 +oid sha256:09505b859b9df6bf34f8c4e735333c7ffac8f3f7680e5be14ab6000bf520337d +size 215353 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-en-GB.Replies.png b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-en-GB.Replies.png new file mode 100644 index 000000000..cec690985 --- /dev/null +++ b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-en-GB.Replies.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dabc72ecc786b2b66f05bc7fe58f0d3f0878e08d9448d447c3ddfd0d5bb9c3b +size 148571 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-pseudo.Replies.png b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-pseudo.Replies.png new file mode 100644 index 000000000..cec690985 --- /dev/null +++ b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPad-pseudo.Replies.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dabc72ecc786b2b66f05bc7fe58f0d3f0878e08d9448d447c3ddfd0d5bb9c3b +size 148571 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-en-GB.Replies.png b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-en-GB.Replies.png new file mode 100644 index 000000000..8262c52a5 --- /dev/null +++ b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-en-GB.Replies.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c84e73ae05903801dc7e1b00b01c78d9b5d80d8482697d3440874f5f94ea050 +size 99523 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-pseudo.Replies.png b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-pseudo.Replies.png new file mode 100644 index 000000000..8262c52a5 --- /dev/null +++ b/PreviewTests/__Snapshots__/PreviewTests/test_timelineItemPlainStylerView-iPhone-15-pseudo.Replies.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c84e73ae05903801dc7e1b00b01c78d9b5d80d8482697d3440874f5f94ea050 +size 99523 diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPad-10th-generation-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPad-10th-generation-en-GB.UI.png index 4e9149142..3763571d5 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPad-10th-generation-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPad-10th-generation-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d75f55e3e084ff607745ae9efd832f2c9ca8b8f590c9b58f54fce670bf6a464 -size 174990 +oid sha256:e2d4e386414e20d561952acf5146b86b33519cdac64422f72f430bb2cffb920c +size 193769 diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPhone-15-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPhone-15-en-GB.UI.png index 6cd31819d..d2671c3d2 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPhone-15-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-1-iPhone-15-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a037983772251085fa9efbfcbb6a614f43939be42e2d698283385a4770a0b7ed -size 181006 +oid sha256:794a8682899ea72300576908643ad0f3d69215ac0cce5f82221d6c7a70b0040a +size 222074 diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPad-10th-generation-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPad-10th-generation-en-GB.UI.png index affab1e87..6e940f912 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPad-10th-generation-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPad-10th-generation-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cee67d5a943103957e8a5856bf0d7daf74cb8afa9a486bad8774ea7040ccb83 -size 179797 +oid sha256:3bb325888a115cb360a4a7bb4d84fd22ea71614c0807e3f90045abdfb26b67f9 +size 187518 diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPhone-15-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPhone-15-en-GB.UI.png index c548f77d3..d37851811 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPhone-15-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-2-iPhone-15-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e42b73ed2750ed6a0ea0a32700fb2729ecf5b13aaf2e243563d38a5f0e086723 -size 180195 +oid sha256:4bf1373234d865555c3166c3347eed7d027da19e1e34bb5e28ef6928c7f94d1c +size 194734 diff --git a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift index 535a6943f..d3a24ef41 100644 --- a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift @@ -205,6 +205,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase { roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin)) viewModel = RoomChangeRolesScreenViewModel(mode: mode, roomProxy: roomProxy, + mediaProvider: MockMediaProvider(), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) } diff --git a/changelog.d/2713.bugfix b/changelog.d/2713.bugfix new file mode 100644 index 000000000..b85ccc0a8 --- /dev/null +++ b/changelog.d/2713.bugfix @@ -0,0 +1 @@ +Fix a bug where avatars were missing from the RoomChangeRolesScreen. \ No newline at end of file