From 5c9e13b2000255cb70883885ab688cc5be863a46 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Mon, 12 Aug 2024 12:05:43 +0300 Subject: [PATCH] Fixes #3147 - Remove the sliding sync proxy wait list --- ElementX.xcodeproj/project.pbxproj | 44 ------- .../AuthenticationFlowCoordinator.swift | 21 ---- .../LoginScreen/LoginScreenCoordinator.swift | 13 +- .../WaitlistScreen/View/WaitingDialog.swift | 84 ------------- .../WaitlistScreen/View/WaitlistScreen.swift | 83 ------------ .../WaitlistScreenCoordinator.swift | 119 ------------------ .../WaitlistScreen/WaitlistScreenModels.swift | 57 --------- .../WaitlistScreenViewModel.swift | 38 ------ .../WaitlistScreenViewModelProtocol.swift | 17 --- .../AuthenticationService.swift | 4 - .../AuthenticationServiceProtocol.swift | 1 - .../Sources/Services/Client/ClientError.swift | 8 -- ...test_waitlistScreen-iPad-en-GB.Success.png | 3 - ...test_waitlistScreen-iPad-en-GB.Waiting.png | 3 - ...est_waitlistScreen-iPad-pseudo.Success.png | 3 - ...est_waitlistScreen-iPad-pseudo.Waiting.png | 3 - ...waitlistScreen-iPhone-15-en-GB.Success.png | 3 - ...waitlistScreen-iPhone-15-en-GB.Waiting.png | 3 - ...aitlistScreen-iPhone-15-pseudo.Success.png | 3 - ...aitlistScreen-iPhone-15-pseudo.Waiting.png | 3 - .../WaitlistScreenViewModelTests.swift | 30 ----- 21 files changed, 1 insertion(+), 542 deletions(-) delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitingDialog.swift delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenCoordinator.swift delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenModels.swift delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModel.swift delete mode 100644 ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModelProtocol.swift delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Success.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Waiting.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Success.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Waiting.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Success.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Waiting.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Success.png delete mode 100644 PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Waiting.png delete mode 100644 UnitTests/Sources/WaitlistScreenViewModelTests.swift diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index e978482c4..2167612d6 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -208,7 +208,6 @@ 2F1CF90A3460C153154427F0 /* RoomScreenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086B997409328F091EBA43CE /* RoomScreenUITests.swift */; }; 2F6207CB5C4715FE313B1E95 /* TimelineViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6509708F54FC883604DFDC95 /* TimelineViewModelTests.swift */; }; 2F623DA1122140A987B34D08 /* NotificationSettingsEditScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BB497B2F539C17E88F6B7 /* NotificationSettingsEditScreenViewModelProtocol.swift */; }; - 2F66701B15657A87B4AC3A0A /* WaitlistScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CE2B7AD979BDEE09FEDB08 /* WaitlistScreenModels.swift */; }; 2F94054F50E312AF30BE07F3 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B21E611DADDEF00307E7AC /* String.swift */; }; 2FEC6652055984389CE1BBEC /* TimelineProxyProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B50F03079F6B5EF9CA005F14 /* TimelineProxyProtocol.swift */; }; 3041EBA2660F28FFB7BDA339 /* EncryptionResetScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0FF9CB3EFA753277291F609 /* EncryptionResetScreenCoordinator.swift */; }; @@ -481,7 +480,6 @@ 6EC7A40A537CFB3D526A111C /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47EBB5D698CE9A25BB553A2D /* Strings.swift */; }; 6F26CBC84AE87EB4068D398B /* LRUCache in Frameworks */ = {isa = PBXBuildFile; productRef = 78B28D75FF7AF8E6146DEE2A /* LRUCache */; }; 6F2AB43A1EFAD8A97AF41A15 /* Collections in Frameworks */ = {isa = PBXBuildFile; productRef = 9C73F37731C9FDED1BB24C1C /* Collections */; }; - 6F2D5D4F2590310DFAE973E4 /* WaitingDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D698BFD68B061350553930 /* WaitingDialog.swift */; }; 6F86349BDEAF4495EAE38931 /* PHGPostHogMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2AD8A56CD37E23071A2F4BF /* PHGPostHogMock.swift */; }; 6FC10A00D268FCD48B631E37 /* ViewFrameReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFF7BF82A950B91BC5469E91 /* ViewFrameReader.swift */; }; 6FD8053301C5FEFA82D2F246 /* URLComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BFDCA5A09EE70BC17F2EFA7 /* URLComponents.swift */; }; @@ -550,7 +548,6 @@ 7BF368A78E6D9AFD222F25AF /* SecureBackupScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AE094FCB6387D268C436161 /* SecureBackupScreenViewModel.swift */; }; 7C0E29E0279866C62EC67A28 /* JoinRoomScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE5127D6EA05B2E45D0A7D59 /* JoinRoomScreenViewModelTests.swift */; }; 7C1A7B594B2F8143F0DD0005 /* ElementXAttributeScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = C024C151639C4E1B91FCC68B /* ElementXAttributeScope.swift */; }; - 7C384A8E54A4B60A14CDE8E5 /* WaitlistScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F1E7F9C2BE8BB751037826 /* WaitlistScreenCoordinator.swift */; }; 7C6376192F578E0BA801BFEC /* AnalyticsSettingsScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C64A14EE89928207E3B42B /* AnalyticsSettingsScreenModels.swift */; }; 7CD16990BA843BE9ED639129 /* ImageRoomTimelineItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DFE4453AB0B34C203447162 /* ImageRoomTimelineItem.swift */; }; 7D249465ED00988EEEC14E05 /* JoinedRoomProxyMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 867DC9530C42F7B5176BE465 /* JoinedRoomProxyMock.swift */; }; @@ -691,7 +688,6 @@ 9A3B0CDF097E3838FB1B9595 /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6E89E530A8E92EC44301CA1 /* Bundle.swift */; }; 9A4E3D5AA44B041DAC3A0D81 /* OIDCAuthenticationPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92390F9FA98255440A6BF5F8 /* OIDCAuthenticationPresenter.swift */; }; 9AC5F8142413862A9E3A2D98 /* DTCoreText in Frameworks */ = {isa = PBXBuildFile; productRef = 531CE4334AC5CA8DFF6AEB84 /* DTCoreText */; }; - 9AFEE46B03B7E995B3E1A53D /* WaitlistScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C4927D09099497233E9980 /* WaitlistScreen.swift */; }; 9B03943616A1147539DF7F08 /* RoomChangePermissionsScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D041A857614A9AE13C7795 /* RoomChangePermissionsScreenViewModelTests.swift */; }; 9B356742E035D90A8BB5CABE /* ProposedViewSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DFE0E493FB55E5A62E7852A /* ProposedViewSize.swift */; }; 9B872FF37DBE6BE054903831 /* MediaUploadPreviewScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54E12B98252F6C527E31FEE /* MediaUploadPreviewScreenViewModelProtocol.swift */; }; @@ -811,7 +807,6 @@ B6DA66EFC13A90846B625836 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 91DE43B8815918E590912DDA /* InfoPlist.strings */; }; B6DF6B6FA8734B70F9BF261E /* BlurHashDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5272BC4A60B6AD7553BACA1 /* BlurHashDecode.swift */; }; B6EC2148FA5443C9289BEEBA /* MediaProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */; }; - B717A820BE02C6FE2CB53F6E /* WaitlistScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B697816AF93DA06EC58C5D70 /* WaitlistScreenViewModelProtocol.swift */; }; B721125D17A0BA86794F29FB /* MockServerSelectionScreenState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8E057FB1F07A5C201C89061 /* MockServerSelectionScreenState.swift */; }; B773ACD8881DB18E876D950C /* WaveformSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94028A227645FA880B966211 /* WaveformSource.swift */; }; B7888FC1E1DEF816D175C8D6 /* SecureBackupKeyBackupScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD72A9B720D75DBE60AC299F /* SecureBackupKeyBackupScreenModels.swift */; }; @@ -915,7 +910,6 @@ CE9530A4CA661E090635C2F2 /* NotificationItemProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25F7FE40EF7490A7E09D7BE6 /* NotificationItemProxy.swift */; }; CEAEA57B7665C8E790599A78 /* BlockedUsersScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 240610DF32F3213BEC5611D7 /* BlockedUsersScreenViewModelTests.swift */; }; CEB8FB1269DE20536608B957 /* LoginMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B41FABA2B0AEF4389986495 /* LoginMode.swift */; }; - CF3827071B0BC9638BD44F5D /* WaitlistScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB58EF0176D4CFB1040DA22 /* WaitlistScreenViewModel.swift */; }; CF38B70D8C6DD42C00A56A27 /* LogViewerScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84D413BF49F0E980F010A6B /* LogViewerScreenCoordinator.swift */; }; CF4044A8EED5C41BC0ED6ABE /* SoftLogoutScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D316BB02636AF2174F2580E6 /* SoftLogoutScreenViewModelProtocol.swift */; }; CFEC53440C572CEEABC4A6A0 /* ElementXAttributeScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = C024C151639C4E1B91FCC68B /* ElementXAttributeScope.swift */; }; @@ -1107,7 +1101,6 @@ FB0A9D06FC9122E37992D962 /* LayoutDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14D83B2B7CD5501A0089EFC /* LayoutDirection.swift */; }; FB53CD9B74A15B3B94F9F788 /* CreateRoomModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B849D2FF2CC12BA411A1651 /* CreateRoomModels.swift */; }; FB595EC9C00AB32F39034055 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A37E2FACFD041CE466223CD /* SceneDelegate.swift */; }; - FB9A1DD83EF641A75ABBCE69 /* WaitlistScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C796FC1DFDBCDD5573D0360F /* WaitlistScreenViewModelTests.swift */; }; FBD402E3170EB1ED0D1AA672 /* EncryptionKeyProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2355398E4A55DA5A89128AD1 /* EncryptionKeyProvider.swift */; }; FBF09B6C900415800DDF2A21 /* EmojiProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C113E0CB7E15E9765B1817A /* EmojiProvider.swift */; }; FC10228E73323BDC09526F97 /* PostHog in Frameworks */ = {isa = PBXBuildFile; productRef = 4278261E147DB2DE5CFB7FC5 /* PostHog */; }; @@ -1226,7 +1219,6 @@ 086C19086DD16E9B38E25954 /* ReportContentViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportContentViewModelTests.swift; sourceTree = ""; }; 095AED4CF56DFF3EB7BB84C8 /* RoomTimelineProviderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineProviderProtocol.swift; sourceTree = ""; }; 099F2D36C141D845A445B1E6 /* EmojiProviderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiProviderTests.swift; sourceTree = ""; }; - 09CE2B7AD979BDEE09FEDB08 /* WaitlistScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenModels.swift; sourceTree = ""; }; 0A3E77399BD262D301451BF2 /* RoomDetailsEditScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsEditScreenCoordinator.swift; sourceTree = ""; }; 0A459AE4B6566B2FA99E86B2 /* TimelineItemBubbledStylerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemBubbledStylerView.swift; sourceTree = ""; }; 0B0E0B55E2EE75AF67029924 /* SwipeToReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwipeToReplyView.swift; sourceTree = ""; }; @@ -1265,7 +1257,6 @@ 127A57D053CE8C87B5EFB089 /* Consumable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Consumable.swift; sourceTree = ""; }; 127C8472672A5BA09EF1ACF8 /* CurrentValuePublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrentValuePublisher.swift; sourceTree = ""; }; 128501375217576AF0FE3E92 /* RoomAttachmentPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomAttachmentPicker.swift; sourceTree = ""; }; - 12F1E7F9C2BE8BB751037826 /* WaitlistScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenCoordinator.swift; sourceTree = ""; }; 1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; path = IntegrationTests.xctestplan; sourceTree = ""; }; 130ED565A078F7E0B59D9D25 /* UNTextInputNotificationResponse+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNTextInputNotificationResponse+Creator.swift"; sourceTree = ""; }; 136F80A613B55BDD071DCEA5 /* JoinRoomScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinRoomScreenModels.swift; sourceTree = ""; }; @@ -1291,7 +1282,6 @@ 1A18F6CE4D694D21E4EA9B25 /* Strings+Untranslated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Strings+Untranslated.swift"; sourceTree = ""; }; 1A4D29F2683F5772AC72406F /* MapTilerStaticMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTilerStaticMap.swift; sourceTree = ""; }; 1A7ED2EF5BDBAD2A7DBC4636 /* GeoURITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeoURITests.swift; sourceTree = ""; }; - 1AB58EF0176D4CFB1040DA22 /* WaitlistScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenViewModel.swift; sourceTree = ""; }; 1B2AC540DE619B36832A5DB5 /* LocationRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationRoomTimelineItem.swift; sourceTree = ""; }; 1B53D6C5C0D14B04D3AB3F6E /* PillAttachmentViewProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillAttachmentViewProvider.swift; sourceTree = ""; }; 1B564D748B67A156F413CD97 /* NotificationSettingsEditScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsEditScreenModels.swift; sourceTree = ""; }; @@ -1723,7 +1713,6 @@ 7FB2253D36E81E045E1CB432 /* Duration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Duration.swift; sourceTree = ""; }; 7FDF541AE914059942B575B4 /* IdentityConfirmationScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdentityConfirmationScreenModels.swift; sourceTree = ""; }; 8063E65441E771200108C558 /* ReadReceiptsSummaryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReadReceiptsSummaryView.swift; sourceTree = ""; }; - 80C4927D09099497233E9980 /* WaitlistScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreen.swift; sourceTree = ""; }; 80E815FF3CC5E5A355E3A25E /* RoomMessageEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMessageEventStringBuilder.swift; sourceTree = ""; }; 8112846C9D9D3817689CBAF8 /* TimelineTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineTableViewController.swift; sourceTree = ""; }; 811E8BF34E931D51552C9C13 /* EncryptionResetScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionResetScreen.swift; sourceTree = ""; }; @@ -1961,7 +1950,6 @@ B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; path = ConfettiScene.scn; sourceTree = ""; }; B63B69F9A2BC74DD40DC75C8 /* AdvancedSettingsScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsScreenViewModel.swift; sourceTree = ""; }; B6404166CBF5CC88673FF9E2 /* RoomDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetails.swift; sourceTree = ""; }; - B697816AF93DA06EC58C5D70 /* WaitlistScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenViewModelProtocol.swift; sourceTree = ""; }; B6E4AB573FAEBB7B853DD04C /* AppHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppHooks.swift; sourceTree = ""; }; B6E89E530A8E92EC44301CA1 /* Bundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = ""; }; B70A50C41C5871B4DB905E7E /* VoiceMessageRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRoomTimelineView.swift; sourceTree = ""; }; @@ -2039,7 +2027,6 @@ C733D11B421CFE3A657EF230 /* test_image.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = test_image.png; sourceTree = ""; }; C75EF87651B00A176AB08E97 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C7661EFFCAA307A97D71132A /* HomeScreenRoomList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeScreenRoomList.swift; sourceTree = ""; }; - C796FC1DFDBCDD5573D0360F /* WaitlistScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenViewModelTests.swift; sourceTree = ""; }; C830A64609CBD152F06E0457 /* NotificationConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationConstants.swift; sourceTree = ""; }; C833673B334A0651AB46F30B /* StaticLocationScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLocationScreenViewModelTests.swift; sourceTree = ""; }; C90514BE9B8ACCBCF0AD2489 /* ComposerToolbarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarViewModel.swift; sourceTree = ""; }; @@ -2237,7 +2224,6 @@ F5D8FEB1FED10E995CB002F7 /* TimelineBubbleLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineBubbleLayout.swift; sourceTree = ""; }; F5E23D8EE6CBACF32F1EC874 /* MediaPlayerProviderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPlayerProviderProtocol.swift; sourceTree = ""; }; F64A8582F65567AC38C2976A /* PollFormScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenViewModel.swift; sourceTree = ""; }; - F6D698BFD68B061350553930 /* WaitingDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitingDialog.swift; sourceTree = ""; }; F72EFC8C634469F9262659C7 /* NSItemProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSItemProvider.swift; sourceTree = ""; }; F733F135E6D67BBBEB76CC30 /* AppLockUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockUITests.swift; sourceTree = ""; }; F74532E01B317C56C1BE8FA8 /* RoomTimelineProviderMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineProviderMock.swift; sourceTree = ""; }; @@ -3814,7 +3800,6 @@ 283974987DA7EC61D2AB57D9 /* VoiceMessageCacheTests.swift */, AC4F10BDD56FA77FEC742333 /* VoiceMessageMediaManagerTests.swift */, D93C94C30E3135BC9290DE13 /* VoiceMessageRecorderTests.swift */, - C796FC1DFDBCDD5573D0360F /* WaitlistScreenViewModelTests.swift */, 53280D2292E6C9C7821773FD /* UserSession */, 9613851C68D8C01EABFB3569 /* AppLock */, 70C5B842301AC281DF374E41 /* Extensions */, @@ -4426,15 +4411,6 @@ path = Pills; sourceTree = ""; }; - 9F4A1E90C924DE7954BA5005 /* View */ = { - isa = PBXGroup; - children = ( - F6D698BFD68B061350553930 /* WaitingDialog.swift */, - 80C4927D09099497233E9980 /* WaitlistScreen.swift */, - ); - path = View; - sourceTree = ""; - }; 9F7C2D63C42828D8931D5286 /* CollapsibleFlowLayout */ = { isa = PBXGroup; children = ( @@ -4525,18 +4501,6 @@ path = UnitTests; sourceTree = ""; }; - A67C1933D33AAC64642E9A82 /* WaitlistScreen */ = { - isa = PBXGroup; - children = ( - 12F1E7F9C2BE8BB751037826 /* WaitlistScreenCoordinator.swift */, - 09CE2B7AD979BDEE09FEDB08 /* WaitlistScreenModels.swift */, - 1AB58EF0176D4CFB1040DA22 /* WaitlistScreenViewModel.swift */, - B697816AF93DA06EC58C5D70 /* WaitlistScreenViewModelProtocol.swift */, - 9F4A1E90C924DE7954BA5005 /* View */, - ); - path = WaitlistScreen; - sourceTree = ""; - }; A6AA0A048CAE428A5CA4CBBB /* LayoutTests */ = { isa = PBXGroup; children = ( @@ -5231,7 +5195,6 @@ BA1938A75D8C780F694CEB62 /* ServerConfirmationScreen */, 2D0D49B0533C4C2EB889BF3A /* ServerSelectionScreen */, 5B2C520AB9863B8CBC8EB3CA /* SoftLogoutScreen */, - A67C1933D33AAC64642E9A82 /* WaitlistScreen */, ); path = Authentication; sourceTree = ""; @@ -6081,7 +6044,6 @@ 21AFEFB8CEFE56A3811A1F5B /* VoiceMessageCacheTests.swift in Sources */, 44BDD670FF9095ACE240A3A2 /* VoiceMessageMediaManagerTests.swift in Sources */, A3D7110C1E75E7B4A73BE71C /* VoiceMessageRecorderTests.swift in Sources */, - FB9A1DD83EF641A75ABBCE69 /* WaitlistScreenViewModelTests.swift in Sources */, 3116693C5EB476E028990416 /* XCTestCase.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6892,12 +6854,6 @@ A9482B967FC85DA611514D35 /* VoiceMessageRoomPlaybackView.swift in Sources */, 024E70451A7CD9E4E034D8A9 /* VoiceMessageRoomTimelineItem.swift in Sources */, 87B4E59A4467F8EC75F82372 /* VoiceMessageRoomTimelineView.swift in Sources */, - 6F2D5D4F2590310DFAE973E4 /* WaitingDialog.swift in Sources */, - 9AFEE46B03B7E995B3E1A53D /* WaitlistScreen.swift in Sources */, - 7C384A8E54A4B60A14CDE8E5 /* WaitlistScreenCoordinator.swift in Sources */, - 2F66701B15657A87B4AC3A0A /* WaitlistScreenModels.swift in Sources */, - CF3827071B0BC9638BD44F5D /* WaitlistScreenViewModel.swift in Sources */, - B717A820BE02C6FE2CB53F6E /* WaitlistScreenViewModelProtocol.swift in Sources */, CA12AE0DCD57D49CD96C699A /* WaveformCursorView.swift in Sources */, 63CDC201A5980F304F6D0A1C /* WaveformInteractionModifier.swift in Sources */, B773ACD8881DB18E876D950C /* WaveformSource.swift in Sources */, diff --git a/ElementX/Sources/FlowCoordinators/AuthenticationFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/AuthenticationFlowCoordinator.swift index aa6477cf8..b463f0ee9 100644 --- a/ElementX/Sources/FlowCoordinators/AuthenticationFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/AuthenticationFlowCoordinator.swift @@ -255,34 +255,13 @@ class AuthenticationFlowCoordinator: FlowCoordinatorProtocol { case .configuredForOIDC: // Pop back to the confirmation screen for OIDC login to continue. navigationStackCoordinator.pop(animated: false) - case .isOnWaitlist(let credentials): - showWaitlistScreen(for: credentials) } } .store(in: &cancellables) navigationStackCoordinator.push(coordinator) } - - private func showWaitlistScreen(for credentials: WaitlistScreenCredentials) { - let parameters = WaitlistScreenCoordinatorParameters(credentials: credentials, - authenticationService: authenticationService) - let coordinator = WaitlistScreenCoordinator(parameters: parameters) - coordinator.actions.sink { [weak self] action in - guard let self else { return } - switch action { - case .signedIn(let userSession): - userHasSignedIn(userSession: userSession) - case .cancel: - navigationStackCoordinator.pop() - } - } - .store(in: &cancellables) - - navigationStackCoordinator.push(coordinator) - } - private func userHasSignedIn(userSession: UserSessionProtocol) { delegate?.authenticationFlowCoordinator(didLoginWithSession: userSession) } diff --git a/ElementX/Sources/Screens/Authentication/LoginScreen/LoginScreenCoordinator.swift b/ElementX/Sources/Screens/Authentication/LoginScreen/LoginScreenCoordinator.swift index b83d552c6..07b22953c 100644 --- a/ElementX/Sources/Screens/Authentication/LoginScreen/LoginScreenCoordinator.swift +++ b/ElementX/Sources/Screens/Authentication/LoginScreen/LoginScreenCoordinator.swift @@ -21,8 +21,6 @@ enum LoginScreenCoordinatorAction { case configuredForOIDC /// Login was successful. case signedIn(UserSessionProtocol) - /// The user's request to login failed due to being on the proxy waitlist. - case isOnWaitlist(WaitlistScreenCredentials) } final class LoginScreenCoordinator: CoordinatorProtocol { @@ -132,16 +130,7 @@ final class LoginScreenCoordinator: CoordinatorProtocol { case .failure(let error): stopLoading() parameters.analytics.signpost.endLogin() - switch error { - case .isOnWaitlist: - actionsSubject.send(.isOnWaitlist(.init(username: username, - password: password, - initialDeviceName: UIDevice.current.initialDeviceName, - deviceID: nil, - homeserver: authenticationService.homeserver.value))) - default: - handleError(error) - } + handleError(error) } } } diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitingDialog.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitingDialog.swift deleted file mode 100644 index ddaab4068..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitingDialog.swift +++ /dev/null @@ -1,84 +0,0 @@ -// -// Copyright 2023, 2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import SwiftUI - -/// A standardised layout for waiting dialogs shown during the onboarding flow. -struct WaitingDialog: View { - @Environment(\.horizontalSizeClass) private var horizontalSizeClass - @Environment(\.verticalSizeClass) private var verticalSizeClass - - /// Not using the default to allow the gradient to fill edge to edge. - private let horizontalPadding = 16.0 - /// The top padding of the content, used to keep the text below the image. - private var contentTopPadding: CGFloat { - if verticalSizeClass == .compact { - // Reduced value for iPhones in landscape. - return UIConstants.startScreenBreakerScreenTopPadding - } else if horizontalSizeClass == .compact { - // The default value for portrait iPhones. - return 2 * UIConstants.startScreenBreakerScreenTopPadding - } else { - // Larger on iPad specifically for 11" in Landscape. - return 2.7 * UIConstants.startScreenBreakerScreenTopPadding - } - } - - /// The main content shown at the top of the layout. - @ViewBuilder var content: () -> Content - /// The content shown at the bottom of the layout. - @ViewBuilder var bottomContent: () -> BottomContent - - var body: some View { - FullscreenDialog(topPadding: UIConstants.startScreenBreakerScreenTopPadding, horizontalPadding: 0) { - content() - .padding(.top, contentTopPadding) - .padding(.horizontal, horizontalPadding) - } bottomContent: { - bottomContent() - .padding(.horizontal, horizontalPadding) - } - .background { - background - .ignoresSafeArea(edges: [.horizontal, .bottom]) - } - .ignoresSafeArea(edges: [.horizontal, .bottom]) - .environment(\.backgroundStyle, AnyShapeStyle(Color.compound.bgCanvasDefault)) - .environment(\.colorScheme, .dark) - .toolbar(.visible, for: .navigationBar) // Layout consistency in all states. - .toolbarBackground(.hidden, for: .navigationBar) - .preferredColorScheme(.light) // Has no effect on Previews, works fine in-app. - } - - var background: some View { - // Negative spacing to hide a rendering bug that shows the white background. - GeometryReader { geometry in - VStack(spacing: -5) { - Color.white - .frame(maxHeight: UIConstants.startScreenBreakerScreenTopPadding) - - Image(asset: Asset.Images.waitingGradient) - .resizable() - .frame(width: horizontalSizeClass == .compact ? nil : geometry.size.width) // Forced for landscape iPhone and nicer iPad. - .scaledToFit() - .layoutPriority(1) // Force for all landscape layouts. - - Color.compound.bgCanvasDefault - } - } - } -} - -struct WaitingDialog_Previews: PreviewProvider, TestablePreview { - static let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) - - static var previews: some View { - NavigationStack { - WaitlistScreen(context: viewModel.context) - } - } -} diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift deleted file mode 100644 index 93c8ef776..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import SwiftUI - -struct WaitlistScreen: View { - @ObservedObject var context: WaitlistScreenViewModel.Context - - var body: some View { - WaitingDialog { - content - } bottomContent: { - buttons - } - .navigationBarBackButtonHidden() - .toolbar { toolbar } - } - - /// The main content of the view to be shown in a scroll view. - var content: some View { - VStack(spacing: 16) { - Text(context.viewState.title.tinting(".", color: Asset.Colors.brandColor.swiftUIColor)) - .font(.compound.headingXLBold) - .multilineTextAlignment(.center) - .foregroundColor(.compound.textPrimary) - .fixedSize(horizontal: false, vertical: true) - - Text(context.viewState.message) - .font(.compound.bodyLG) - .multilineTextAlignment(.center) - .foregroundColor(.compound.textPrimary) - } - } - - /// The action buttons shown at the bottom of the view. - @ViewBuilder - var buttons: some View { - if let userSession = context.viewState.userSession { - Button { context.send(viewAction: .continue(userSession)) } label: { - Text(L10n.actionContinue) - } - .buttonStyle(.compound(.primary)) - } - } - - @ToolbarContentBuilder - var toolbar: some ToolbarContent { - if context.viewState.isWaiting { - ToolbarItem(placement: .cancellationAction) { - Button(L10n.actionCancel) { - context.send(viewAction: .cancel) - } - } - } - } -} - -// MARK: - Previews - -struct WaitlistScreen_Previews: PreviewProvider, TestablePreview { - static let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) - static let successViewModel = { - let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) - viewModel.update(userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org"))))) - return viewModel - }() - - static var previews: some View { - NavigationStack { - WaitlistScreen(context: viewModel.context) - } - .previewDisplayName("Waiting") - - NavigationStack { - WaitlistScreen(context: successViewModel.context) - } - .previewDisplayName("Success") - } -} diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenCoordinator.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenCoordinator.swift deleted file mode 100644 index 060629408..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenCoordinator.swift +++ /dev/null @@ -1,119 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import Combine -import SwiftUI - -struct WaitlistScreenCoordinatorParameters { - /// The credentials for the login. - let credentials: WaitlistScreenCredentials - /// The service used to authenticate the user. - let authenticationService: AuthenticationServiceProtocol - /// The service locator for the screen. - var userIndicatorController: UserIndicatorControllerProtocol = ServiceLocator.shared.userIndicatorController -} - -enum WaitlistScreenCoordinatorAction { - /// Login was successful after a retry attempt. - case signedIn(UserSessionProtocol) - /// The user would like to try sign in another way. - case cancel -} - -final class WaitlistScreenCoordinator: CoordinatorProtocol { - private let parameters: WaitlistScreenCoordinatorParameters - private var viewModel: WaitlistScreenViewModelProtocol - private let actionsSubject: PassthroughSubject = .init() - private var cancellables = Set() - private var refreshCancellable: AnyCancellable? - - var actions: AnyPublisher { - actionsSubject.eraseToAnyPublisher() - } - - init(parameters: WaitlistScreenCoordinatorParameters) { - self.parameters = parameters - - viewModel = WaitlistScreenViewModel(homeserver: parameters.credentials.homeserver) - - refreshCancellable = NotificationCenter.default.publisher(for: UIApplication.willEnterForegroundNotification) - .sink { [weak self] _ in - self?.refresh() - } - } - - func start() { - viewModel.actions.sink { [weak self] action in - guard let self else { return } - switch action { - case .cancel: - actionsSubject.send(.cancel) - case .continue(let userSession): - actionsSubject.send(.signedIn(userSession)) - } - } - .store(in: &cancellables) - } - - func toPresentable() -> AnyView { - AnyView(WaitlistScreen(context: viewModel.context)) - } - - // MARK: - Private - - /// Refresh the screen by retrying login to see if the waitlist has opened up. - private func refresh() { - guard parameters.credentials.homeserver == parameters.authenticationService.homeserver.value else { - MXLog.warning("Homeserver configuration changed.") - actionsSubject.send(.cancel) - return - } - - showRefreshIndicator() - - Task { - switch await parameters.authenticationService.login(username: parameters.credentials.username, - password: parameters.credentials.password, - initialDeviceName: parameters.credentials.initialDeviceName, - deviceID: parameters.credentials.deviceID) { - case .success(let userSession): - hideRefreshIndicator() - refreshCancellable = nil - viewModel.update(userSession: userSession) - case .failure(.isOnWaitlist): - hideRefreshIndicator() // Nothing to do, still waiting for availability. - case .failure(.invalidCredentials): - hideRefreshIndicator() - actionsSubject.send(.cancel) - case .failure: - hideRefreshIndicator() - showFailureIndicator() - } - } - } - - private static let refreshIndicatorID = "WaitlistCoordinatorRefresh" - private static let failureIndicatorID = "WaitlistCoordinatorFailure" - - private func showRefreshIndicator() { - parameters.userIndicatorController.submitIndicator(UserIndicator(id: Self.refreshIndicatorID, - type: .modal, - title: L10n.commonRefreshing, - persistent: true)) - } - - private func hideRefreshIndicator() { - parameters.userIndicatorController.retractIndicatorWithId(Self.refreshIndicatorID) - } - - private func showFailureIndicator() { - parameters.userIndicatorController.submitIndicator(UserIndicator(id: Self.failureIndicatorID, - type: .toast, - title: L10n.errorUnknown, - iconName: "xmark")) - } -} diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenModels.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenModels.swift deleted file mode 100644 index 43729adfc..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenModels.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import Foundation - -enum WaitlistScreenViewModelAction { - case cancel - case `continue`(UserSessionProtocol) -} - -/// The user's credentials used to retry login and refresh the waiting list. -struct WaitlistScreenCredentials: CustomStringConvertible, CustomDebugStringConvertible { - let username: String - let password: String - let initialDeviceName: String? - let deviceID: String? - - let homeserver: LoginHomeserver - - var description: String { "Redacted" } - var debugDescription: String { "Redacted" } -} - -struct WaitlistScreenViewState: BindableState { - /// The homeserver the user is waiting for. - let homeserver: LoginHomeserver - /// When refresh was successful, the user session that was returned by the login. - var userSession: UserSessionProtocol? - - /// Whether or not the user is still waiting in the queue. - var isWaiting: Bool { userSession == nil } - - var title: String { - if isWaiting { - return L10n.screenWaitlistTitle - } else { - return L10n.screenWaitlistTitleSuccess - } - } - - var message: String { - if isWaiting { - return L10n.screenWaitlistMessage(InfoPlistReader.main.bundleDisplayName, homeserver.address) - } else { - return L10n.screenWaitlistMessageSuccess(InfoPlistReader.main.bundleDisplayName) - } - } -} - -enum WaitlistScreenViewAction { - case cancel - case `continue`(UserSessionProtocol) -} diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModel.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModel.swift deleted file mode 100644 index 367b3fc3b..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModel.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import Combine -import SwiftUI - -typealias WaitlistScreenViewModelType = StateStoreViewModel - -class WaitlistScreenViewModel: WaitlistScreenViewModelType, WaitlistScreenViewModelProtocol { - private var actionsSubject: PassthroughSubject = .init() - - var actions: AnyPublisher { - actionsSubject.eraseToAnyPublisher() - } - - init(homeserver: LoginHomeserver) { - super.init(initialViewState: WaitlistScreenViewState(homeserver: homeserver)) - } - - // MARK: - Public - - override func process(viewAction: WaitlistScreenViewAction) { - switch viewAction { - case .cancel: - actionsSubject.send(.cancel) - case .continue(let userSession): - actionsSubject.send(.continue(userSession)) - } - } - - func update(userSession: UserSessionProtocol) { - state.userSession = userSession - } -} diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModelProtocol.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModelProtocol.swift deleted file mode 100644 index 84761283b..000000000 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/WaitlistScreenViewModelProtocol.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import Combine - -@MainActor -protocol WaitlistScreenViewModelProtocol { - var actions: AnyPublisher { get } - var context: WaitlistScreenViewModelType.Context { get } - - /// Set a user session on the screen to transition to the success state. - func update(userSession: UserSessionProtocol) -} diff --git a/ElementX/Sources/Services/Authentication/AuthenticationService.swift b/ElementX/Sources/Services/Authentication/AuthenticationService.swift index ea5b9f98a..5f241f720 100644 --- a/ElementX/Sources/Services/Authentication/AuthenticationService.swift +++ b/ElementX/Sources/Services/Authentication/AuthenticationService.swift @@ -114,10 +114,6 @@ class AuthenticationService: AuthenticationServiceProtocol { // FIXME: How about we make a proper type in the FFI? 😅 guard let error = error as? ClientError else { return .failure(.failedLoggingIn) } - if error.isElementWaitlist { - return .failure(.isOnWaitlist) - } - switch error.code { case .forbidden: return .failure(.invalidCredentials) diff --git a/ElementX/Sources/Services/Authentication/AuthenticationServiceProtocol.swift b/ElementX/Sources/Services/Authentication/AuthenticationServiceProtocol.swift index 605f5fead..ee6b97ca8 100644 --- a/ElementX/Sources/Services/Authentication/AuthenticationServiceProtocol.swift +++ b/ElementX/Sources/Services/Authentication/AuthenticationServiceProtocol.swift @@ -26,7 +26,6 @@ enum AuthenticationServiceError: Error { case slidingSyncNotAvailable case accountDeactivated case failedLoggingIn - case isOnWaitlist case sessionTokenRefreshNotSupported } diff --git a/ElementX/Sources/Services/Client/ClientError.swift b/ElementX/Sources/Services/Client/ClientError.swift index 27fc19326..25d460379 100644 --- a/ElementX/Sources/Services/Client/ClientError.swift +++ b/ElementX/Sources/Services/Client/ClientError.swift @@ -25,12 +25,4 @@ extension ClientError { return first } - - /// Whether or not the error is related to the sliding sync proxy being full. - /// - /// This is a temporary error whilst we scale the backend infrastructure. - var isElementWaitlist: Bool { - guard case let .Generic(message) = self else { return false } - return message.contains("IO_ELEMENT_X_WAIT_LIST") - } } diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Success.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Success.png deleted file mode 100644 index 191a20d3a..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Success.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21e4de884751459f8342fcf9ada60b9ff488ce64db103d932eadd18baa404b59 -size 1193754 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Waiting.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Waiting.png deleted file mode 100644 index 704ce7f30..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-en-GB.Waiting.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2af0134c93abf64481cde1c994a44f5bba227ea824c24aa1a7c8a4a67fb31ebb -size 1215007 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Success.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Success.png deleted file mode 100644 index 7db76a663..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Success.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e8279670f880af54f2e4d6c40174ce98541aba7a6f5d009f678d2a7293cd19b -size 1200222 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Waiting.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Waiting.png deleted file mode 100644 index b6186ec1e..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPad-pseudo.Waiting.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0179d98b62d00101064e0335afe48bd47eed91f668e7e0a8e8b957956ab2be23 -size 1242154 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Success.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Success.png deleted file mode 100644 index d4ed44778..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Success.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ec37e31bfa6992ac877e8018a8007664bd2407889124105d752bbef08b6cbb4 -size 260131 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Waiting.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Waiting.png deleted file mode 100644 index ed83aff61..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-en-GB.Waiting.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7474241b732bf088ba694176fcd4bef741336380acb16411fd48f498600137f -size 283670 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Success.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Success.png deleted file mode 100644 index 2879c076e..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Success.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a17c619c603f9fb7439b101e2d7832f437e4843ec0c3dabf158bc8de03393f1 -size 264477 diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Waiting.png b/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Waiting.png deleted file mode 100644 index 9c5682854..000000000 --- a/PreviewTests/__Snapshots__/PreviewTests/test_waitlistScreen-iPhone-15-pseudo.Waiting.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0d9b27fc3f806b3798815dbd1398a4c4bd4dfde77faee1779d32444a806f0bb -size 316202 diff --git a/UnitTests/Sources/WaitlistScreenViewModelTests.swift b/UnitTests/Sources/WaitlistScreenViewModelTests.swift deleted file mode 100644 index e874b0239..000000000 --- a/UnitTests/Sources/WaitlistScreenViewModelTests.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import XCTest - -@testable import ElementX - -@MainActor -class WaitlistScreenViewModelTests: XCTestCase { - var viewModel: WaitlistScreenViewModelProtocol! - var context: WaitlistScreenViewModelType.Context { viewModel.context } - - override func setUpWithError() throws { - viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) - } - - func testSuccess() async throws { - XCTAssertNil(context.viewState.userSession, "No user session should be set on a new view model.") - XCTAssertTrue(context.viewState.isWaiting, "The view should start off in the waiting state.") - - viewModel.update(userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org"))))) - - XCTAssertNotNil(context.viewState.userSession, "The user session should have been updated.") - XCTAssertFalse(context.viewState.isWaiting, "The view should not be in the waiting state after setting a user session.") - } -}