Bump the SDK to v25.06.25; adopt the new optional RoomInfo joinRule and isPublic.

This commit is contained in:
Stefan Ceriu
2025-06-25 15:29:42 +03:00
committed by Stefan Ceriu
parent 8dc389cd54
commit 46f49af930
15 changed files with 24 additions and 48 deletions
+1 -1
View File
@@ -8748,7 +8748,7 @@
repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift";
requirement = {
kind = exactVersion;
version = 25.06.24;
version = 25.06.25;
};
};
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
@@ -158,8 +158,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/element-hq/matrix-rust-components-swift",
"state" : {
"revision" : "f1fc74b64905ebde2f759916bf4018daf3406f40",
"version" : "25.6.24"
"revision" : "28083837b3c743eb76b23c12c6ef5873668190e6",
"version" : "25.6.25"
}
},
{
@@ -40,7 +40,6 @@ extension RoomInfoProxyMock {
avatarURL = configuration.avatarURL
isDirect = false
isPublic = false
isSpace = false
successor = nil
isFavourite = false
@@ -13427,16 +13427,6 @@ class RoomInfoProxyMock: RoomInfoProxyProtocol, @unchecked Sendable {
set(value) { underlyingIsDirect = value }
}
var underlyingIsDirect: Bool!
var isPublic: Bool {
get { return underlyingIsPublic }
set(value) { underlyingIsPublic = value }
}
var underlyingIsPublic: Bool!
var isPrivate: Bool {
get { return underlyingIsPrivate }
set(value) { underlyingIsPrivate = value }
}
var underlyingIsPrivate: Bool!
var isSpace: Bool {
get { return underlyingIsSpace }
set(value) { underlyingIsSpace = value }
@@ -44,7 +44,6 @@ extension RoomInfoProxyMock {
avatarURL = configuration.avatarURL
isDirect = false
isPublic = false
isSpace = false
successor = nil
isFavourite = false
@@ -21,7 +21,6 @@ struct JoinedRoomProxyMockConfiguration {
var avatarURL: URL?
var isDirect = false
var isSpace = false
var isPublic = false
var isEncrypted = true
var hasOngoingCall = true
var canonicalAlias: String?
@@ -38,7 +37,7 @@ struct JoinedRoomProxyMockConfiguration {
var shouldUseAutoUpdatingTimeline = false
var joinRule: JoinRule?
var joinRule: JoinRule? = .invite
var membership: Membership = .joined
var isVisibleInPublicDirectory = false
@@ -172,7 +171,6 @@ extension RoomInfoProxyMock {
topic = configuration.topic
avatarURL = configuration.avatarURL
isDirect = configuration.isDirect
isPublic = configuration.isPublic
isSpace = configuration.isSpace
successor = configuration.successor
isFavourite = false
@@ -40,7 +40,6 @@ extension RoomInfoProxyMock {
avatarURL = configuration.avatarURL
isDirect = false
isPublic = false
isSpace = false
successor = nil
isFavourite = false
@@ -364,7 +364,7 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
return
}
if roomProxy.infoPublisher.value.isPublic {
if !roomProxy.infoPublisher.value.isPrivate {
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isDirectOneToOneRoom, state: .public)
} else {
state.bindings.leaveRoomAlertItem = if roomProxy.infoPublisher.value.joinedMembersCount > 1 {
@@ -125,7 +125,7 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr
}
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomProxy.id,
isDM: roomProxy.isDirectOneToOneRoom,
state: roomProxy.infoPublisher.value.isPublic ? .public : .private)
state: roomProxy.infoPublisher.value.isPrivate ? .private : .public)
case .confirmLeave:
Task { await leaveRoom() }
case .processTapIgnore:
@@ -338,13 +338,13 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
RoomDetailsScreen(context: genericRoomViewModel.context)
.snapshotPreferences(expect: genericRoomViewModel.context.$viewState.map { state in
state.canSeeSecurityAndPrivacy == true
state.permalink != nil
})
.previewDisplayName("Generic Room")
RoomDetailsScreen(context: simpleRoomViewModel.context)
.snapshotPreferences(expect: simpleRoomViewModel.context.$viewState.map { state in
state.canSeeSecurityAndPrivacy == true
state.permalink != nil
})
.previewDisplayName("Simple Room")
@@ -356,7 +356,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview {
RoomDetailsScreen(context: dmRoomVerifiedViewModel.context)
.snapshotPreferences(expect: dmRoomVerifiedViewModel.context.$viewState.map { state in
state.accountOwner != nil
state.dmRecipientInfo?.verificationState == .verified
})
.previewDisplayName("DM Room Verified")
@@ -27,9 +27,8 @@ struct RoomInfoProxy: RoomInfoProxyProtocol {
var isEncrypted: Bool { roomInfo.encryptionState == .encrypted }
var isDirect: Bool { roomInfo.isDirect }
var isPublic: Bool { roomInfo.isPublic }
var isSpace: Bool { roomInfo.isSpace }
var successor: SuccessorRoom? { roomInfo.successorRoom }
var isFavourite: Bool { roomInfo.isFavourite }
var canonicalAlias: String? { roomInfo.canonicalAlias }
@@ -72,6 +71,6 @@ struct RoomPreviewInfoProxy: BaseRoomInfoProxyProtocol {
var activeMembersCount: Int { Int(roomPreviewInfo.numActiveMembers ?? roomPreviewInfo.numJoinedMembers) }
var joinedMembersCount: Int { Int(roomPreviewInfo.numJoinedMembers) }
var joinRule: JoinRule { roomPreviewInfo.joinRule }
var joinRule: JoinRule? { roomPreviewInfo.joinRule }
var membership: Membership? { roomPreviewInfo.membership }
}
@@ -35,13 +35,9 @@ protocol RoomInfoProxyProtocol: BaseRoomInfoProxyProtocol {
var isEncrypted: Bool { get }
var isDirect: Bool { get }
var isPublic: Bool { get }
var isPrivate: Bool { get }
var isSpace: Bool { get }
var isFavourite: Bool { get }
var canonicalAlias: String? { get }
var alternativeAliases: [String] { get }
var membership: Membership { get }
@@ -188,7 +188,7 @@ extension JoinedRoomProxyProtocol {
avatar: infoPublisher.value.avatar,
canonicalAlias: infoPublisher.value.canonicalAlias,
isEncrypted: infoPublisher.value.isEncrypted,
isPublic: infoPublisher.value.isPublic,
isPublic: !infoPublisher.value.isPrivate,
isDirect: infoPublisher.value.isDirect)
}
@@ -38,7 +38,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testLeaveRoomTappedWhenPublic() async throws {
let mockedMembers: [RoomMemberProxyMock] = [.mockBob, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", members: mockedMembers, joinRule: .public))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -61,7 +61,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testLeaveRoomTappedWhenRoomNotPublic() async throws {
let mockedMembers: [RoomMemberProxyMock] = [.mockBob, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", members: mockedMembers))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -85,7 +85,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testLeaveRoomTappedWithLessThanTwoMembers() async {
let mockedMembers: [RoomMemberProxyMock] = [.mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", members: mockedMembers))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -301,8 +301,8 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testCannotInvitePeople() async {
let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test",
isPublic: true,
members: mockedMembers,
joinRule: .public,
powerLevelsConfiguration: .init(canUserInvite: false)))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
@@ -321,7 +321,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testInvitePeople() async {
let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", members: mockedMembers, joinRule: .public))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -358,7 +358,6 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
let configuration = JoinedRoomProxyMockConfiguration(name: "Test",
isDirect: false,
isPublic: false,
members: mockedMembers)
roomProxyMock = JoinedRoomProxyMock(configuration)
@@ -399,7 +398,6 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
let configuration = JoinedRoomProxyMockConfiguration(name: "Test",
isDirect: false,
isPublic: false,
members: mockedMembers)
roomProxyMock = JoinedRoomProxyMock(configuration)
@@ -440,7 +438,6 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
let configuration = JoinedRoomProxyMockConfiguration(name: "Test",
isDirect: false,
isPublic: false,
members: mockedMembers)
roomProxyMock = JoinedRoomProxyMock(configuration)
@@ -478,7 +475,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testCannotEditRoom() async {
let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, members: mockedMembers))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -499,7 +496,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testCannotEditDirectRoom() async {
let mockedMembers: [RoomMemberProxyMock] = [.mockMeAdmin, .mockBob, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isPublic: false, members: mockedMembers))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, members: mockedMembers))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -728,7 +725,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testKnockRequestsCounter() async throws {
ServiceLocator.shared.settings.knockingEnabled = true
let mockedRequests: [KnockRequestProxyMock] = [.init(), .init()]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, knockRequestsState: .loaded(mockedRequests), joinRule: .knock))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, knockRequestsState: .loaded(mockedRequests), joinRule: .knock))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -751,7 +748,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
func testKnockRequestsCounterIsLoading() async throws {
ServiceLocator.shared.settings.knockingEnabled = true
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, knockRequestsState: .loading, joinRule: .knock))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, knockRequestsState: .loading, joinRule: .knock))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
@@ -774,7 +771,6 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
let mockedRequests: [KnockRequestProxyMock] = [.init(), .init()]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test",
isDirect: false,
isPublic: false,
knockRequestsState: .loaded(mockedRequests),
joinRule: .knock,
powerLevelsConfiguration: .init(canUserInvite: false)))
@@ -802,7 +798,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase {
ServiceLocator.shared.settings.knockingEnabled = true
let mockedRequests: [KnockRequestProxyMock] = [.init(), .init()]
let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockAlice]
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isPublic: false, members: mockedMembers, knockRequestsState: .loaded(mockedRequests), joinRule: .knock))
roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, members: mockedMembers, knockRequestsState: .loaded(mockedRequests), joinRule: .knock))
viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock,
clientProxy: ClientProxyMock(.init()),
mediaProvider: MediaProviderMock(configuration: .init()),
+1 -1
View File
@@ -65,7 +65,7 @@ packages:
# Element/Matrix dependencies
MatrixRustSDK:
url: https://github.com/element-hq/matrix-rust-components-swift
exactVersion: 25.06.24
exactVersion: 25.06.25
# path: ../matrix-rust-sdk
Compound:
url: https://github.com/element-hq/compound-ios