diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index fc98a27b9..f09a8d4bb 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 56; objects = { /* Begin PBXAggregateTarget section */ @@ -800,6 +800,7 @@ A6F345328CCC5C9B0DAE2257 /* LogViewerScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB05221D7D941CC82DC8480 /* LogViewerScreenViewModel.swift */; }; A722F426FD81FC67706BB1E0 /* CustomLayoutLabelStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42236480CF0431535EBE8387 /* CustomLayoutLabelStyle.swift */; }; A74438ED16F8683A4B793E6A /* AnalyticsSettingsScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BCE3FAF40932AC7C7639AC4 /* AnalyticsSettingsScreenViewModel.swift */; }; + A7A369F22CE62AF800819CCB /* KnockRequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A369F12CE62AE900819CCB /* KnockRequestCell.swift */; }; A7D48E44D485B143AADDB77D /* Strings+Untranslated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A18F6CE4D694D21E4EA9B25 /* Strings+Untranslated.swift */; }; A808DC3F72D15C6C5A52317E /* TimelineItemDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCDA016D05107DED3B9495CB /* TimelineItemDebugView.swift */; }; A816F7087C495D85048AC50E /* RoomMemberDetailsScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B6E30BB748F3F480F077969 /* RoomMemberDetailsScreenModels.swift */; }; @@ -1265,13 +1266,13 @@ 033DB41C51865A2E83174E87 /* target.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = target.yml; sourceTree = ""; }; 035177BCD8E8308B098AC3C2 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; 0376C429FAB1687C3D905F3E /* MockCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCoder.swift; sourceTree = ""; }; - 0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */ = {isa = PBXFileReference; path = test_voice_message.m4a; sourceTree = ""; }; + 0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_voice_message.m4a; sourceTree = ""; }; 03DD998E523D4EC93C7ED703 /* RoomNotificationSettingsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenViewModelProtocol.swift; sourceTree = ""; }; 03FABD73FD8086EFAB699F42 /* MediaUploadPreviewScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadPreviewScreenViewModelTests.swift; sourceTree = ""; }; 044E501B8331B339874D1B96 /* CompoundIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundIcon.swift; sourceTree = ""; }; 045253F9967A535EE5B16691 /* Label.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Label.swift; sourceTree = ""; }; 046C0D3F53B0B5EF0A1F5BEA /* RoomSummaryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryTests.swift; sourceTree = ""; }; - 048A21188AB19349D026BECD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 048A21188AB19349D026BECD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 04BB8DDE245ED86C489BA983 /* AccessibilityIdentifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessibilityIdentifiers.swift; sourceTree = ""; }; 04DF593C3F7AF4B2FBAEB05D /* FileManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileManager.swift; sourceTree = ""; }; 0516C69708D5CBDE1A8E77EC /* RoomDirectorySearchProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDirectorySearchProxyProtocol.swift; sourceTree = ""; }; @@ -1337,7 +1338,7 @@ 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 = ""; }; - 1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; path = IntegrationTests.xctestplan; sourceTree = ""; }; + 1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; 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 = ""; }; 13802897C7AFA360EA74C0B0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; @@ -1431,7 +1432,7 @@ 25F7FE40EF7490A7E09D7BE6 /* NotificationItemProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationItemProxy.swift; sourceTree = ""; }; 25F8664F1FB95AF3C4202478 /* PollFormScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenCoordinator.swift; sourceTree = ""; }; 260004737C573A56FA01E86E /* Encodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Encodable.swift; sourceTree = ""; }; - 267BB1D5B08A9511F894CB57 /* PreviewTests.xctestplan */ = {isa = PBXFileReference; path = PreviewTests.xctestplan; sourceTree = ""; }; + 267BB1D5B08A9511F894CB57 /* PreviewTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = PreviewTests.xctestplan; sourceTree = ""; }; 26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorder.swift; sourceTree = ""; }; 26EAAB54C6CE91D64B69A9F8 /* AppLockServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockServiceProtocol.swift; sourceTree = ""; }; 2721D7B051F0159AA919DA05 /* RoomChangePermissionsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomChangePermissionsScreenViewModelProtocol.swift; sourceTree = ""; }; @@ -1502,7 +1503,7 @@ 3558A15CFB934F9229301527 /* RestorationToken.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestorationToken.swift; sourceTree = ""; }; 35AFCF4C05DEED04E3DB1A16 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; 35FA991289149D31F4286747 /* UserPreference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPreference.swift; sourceTree = ""; }; - 36DA824791172B9821EACBED /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 36DA824791172B9821EACBED /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 36FD673E24FBFCFDF398716A /* RoomMemberProxyMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberProxyMock.swift; sourceTree = ""; }; 376D941BF8BB294389C0DE24 /* MapTilerURLBuildersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTilerURLBuildersTests.swift; sourceTree = ""; }; 37A63A59BFDDC494B1C20119 /* CallScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallScreenViewModel.swift; sourceTree = ""; }; @@ -1613,7 +1614,7 @@ 4B41FABA2B0AEF4389986495 /* LoginMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginMode.swift; sourceTree = ""; }; 4BD371B60E07A5324B9507EF /* AnalyticsSettingsScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsSettingsScreenCoordinator.swift; sourceTree = ""; }; 4C8D988E82A8DFA13BE46F7C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = pl; path = pl.lproj/Localizable.stringsdict; sourceTree = ""; }; - 4CD6AC7546E8D7E5C73CEA48 /* ElementX.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = ElementX.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CD6AC7546E8D7E5C73CEA48 /* ElementX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ElementX.app; sourceTree = BUILT_PRODUCTS_DIR; }; 4CDDDDD9FE1A699D23A5E096 /* LoginScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginScreen.swift; sourceTree = ""; }; 4D3A7375AB22721C436EB056 /* ComposerToolbarModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarModels.swift; sourceTree = ""; }; 4E2245243369B99216C7D84E /* ImageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCache.swift; sourceTree = ""; }; @@ -1884,7 +1885,7 @@ 8D55702474F279D910D2D162 /* RoomStateEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateEventStringBuilder.swift; sourceTree = ""; }; 8D8169443E5AC5FF71BFB3DB /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; 8DA1E8F287680C8ED25EDBAC /* NetworkMonitorMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkMonitorMock.swift; sourceTree = ""; }; - 8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; path = UITests.xctestplan; sourceTree = ""; }; + 8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UITests.xctestplan; sourceTree = ""; }; 8E1584F8BCF407BB94F48F04 /* EncryptionResetPasswordScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionResetPasswordScreen.swift; sourceTree = ""; }; 8EAF4A49F3ACD8BB8B0D2371 /* ClientSDKMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientSDKMock.swift; sourceTree = ""; }; 8F21ED7205048668BEB44A38 /* AppActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppActivityView.swift; sourceTree = ""; }; @@ -1991,6 +1992,7 @@ A6EA0D8B0BBD8805F7D5A133 /* TextBasedRoomTimelineViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextBasedRoomTimelineViewProtocol.swift; sourceTree = ""; }; A73A07BAEDD74C48795A996A /* AsyncSequence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncSequence.swift; sourceTree = ""; }; A7978C9EFBDD7DE39BD86726 /* RestorationTokenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestorationTokenTests.swift; sourceTree = ""; }; + A7A369F12CE62AE900819CCB /* KnockRequestCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KnockRequestCell.swift; sourceTree = ""; }; A7C4EA55DA62F9D0F984A2AE /* CollapsibleTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleTimelineItem.swift; sourceTree = ""; }; A7D452AF7B5F7E3A0A7DB54C /* SessionVerificationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionVerificationScreenViewModelProtocol.swift; sourceTree = ""; }; A7E37072597F67C4DD8CC2DB /* ComposerDraftServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerDraftServiceProtocol.swift; sourceTree = ""; }; @@ -2065,7 +2067,7 @@ B50F03079F6B5EF9CA005F14 /* TimelineProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineProxyProtocol.swift; sourceTree = ""; }; B53AC78E49A297AC1D72A7CF /* AppMediator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMediator.swift; sourceTree = ""; }; B590BD4507D4F0A377FDE01A /* LoadableAvatarImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadableAvatarImage.swift; sourceTree = ""; }; - B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; path = ConfettiScene.scn; sourceTree = ""; }; + B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; 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 = ""; }; B655A536341D2695158C6664 /* AuthenticationClientBuilderFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationClientBuilderFactory.swift; sourceTree = ""; }; @@ -2183,7 +2185,7 @@ CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = ""; }; CDE3F3911FF7CC639BDE5844 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; CEE20623EB4A9B88FB29F2BA /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SAS.strings; sourceTree = ""; }; - CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; path = UnitTests.xctestplan; sourceTree = ""; }; + CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = ""; }; D01FD1171FF40E34D707FD00 /* BigIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BigIcon.swift; sourceTree = ""; }; D071F86CD47582B9196C9D16 /* UserDiscoverySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDiscoverySection.swift; sourceTree = ""; }; D086854995173E897F993C26 /* AdvancedSettingsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsScreenViewModelProtocol.swift; sourceTree = ""; }; @@ -2316,7 +2318,7 @@ ED0CBEAB5F796BEFBAF7BB6A /* VideoRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineView.swift; sourceTree = ""; }; ED1D792EB82506A19A72C8DE /* RoomTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemProtocol.swift; sourceTree = ""; }; ED33988DA4FD4FC666800106 /* SessionVerificationScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionVerificationScreenViewModel.swift; sourceTree = ""; }; - ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; path = message.caf; sourceTree = ""; }; + ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = message.caf; sourceTree = ""; }; ED49073BB1C1FC649DAC2CCD /* LocationRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationRoomTimelineView.swift; sourceTree = ""; }; ED60E4D2CD678E1EBF16F77A /* BlockedUsersScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockedUsersScreen.swift; sourceTree = ""; }; EE378083653EF0C9B5E9D580 /* EmoteRoomTimelineItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmoteRoomTimelineItemContent.swift; sourceTree = ""; }; @@ -2339,7 +2341,7 @@ F174A5627CDB3CAF280D1880 /* EmojiPickerScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerScreenModels.swift; sourceTree = ""; }; F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaProvider.swift; sourceTree = ""; }; F1B8500C152BC59445647DA8 /* UnsupportedRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnsupportedRoomTimelineItem.swift; sourceTree = ""; }; - F2D513D2477B57F90E98EEC0 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; path = portrait_test_video.mp4; sourceTree = ""; }; + F2D513D2477B57F90E98EEC0 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = portrait_test_video.mp4; sourceTree = ""; }; F2E4EF80DFB8FE7C4469B15D /* RoomDirectorySearchScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDirectorySearchScreen.swift; sourceTree = ""; }; F31F59030205A6F65B057E1A /* MatrixEntityRegexTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixEntityRegexTests.swift; sourceTree = ""; }; F348B5F2C12F9D4F4B4D3884 /* VideoRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineItem.swift; sourceTree = ""; }; @@ -2357,7 +2359,7 @@ 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 = ""; }; - F6B676B4866F5B383DE819B2 /* test_apple_image.heic */ = {isa = PBXFileReference; path = test_apple_image.heic; sourceTree = ""; }; + F6B676B4866F5B383DE819B2 /* test_apple_image.heic */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_apple_image.heic; 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 = ""; }; @@ -4801,6 +4803,22 @@ path = Application; sourceTree = ""; }; + A7A369EF2CE62AB300819CCB /* KnockRequestsListScreen */ = { + isa = PBXGroup; + children = ( + A7A369F02CE62AC900819CCB /* View */, + ); + path = KnockRequestsListScreen; + sourceTree = ""; + }; + A7A369F02CE62AC900819CCB /* View */ = { + isa = PBXGroup; + children = ( + A7A369F12CE62AE900819CCB /* KnockRequestCell.swift */, + ); + path = View; + sourceTree = ""; + }; A7F3784CAF9F4CF654BC52CD /* View */ = { isa = PBXGroup; children = ( @@ -5368,6 +5386,7 @@ E59565F441830B19DBAE567C /* Screens */ = { isa = PBXGroup; children = ( + A7A369EF2CE62AB300819CCB /* KnockRequestsListScreen */, 13263FFEA7749D822B51AA90 /* AppLock */, E74CD7681375AD2EAA34D66B /* Authentication */, 295BCC81AB45927F5F2033B1 /* AuthenticationStartScreen */, @@ -6938,6 +6957,7 @@ C8C7AF33AADF88B306CD2695 /* QRCodeLoginService.swift in Sources */, BB04B1D8E7401C90506D401E /* QRCodeLoginServiceProtocol.swift in Sources */, FDD5B4B616D9FF4DE3E9A418 /* QRCodeScannerView.swift in Sources */, + A7A369F22CE62AF800819CCB /* KnockRequestCell.swift in Sources */, C9A631FD968249B4BA0B7B3C /* ReactionsSummaryView.swift in Sources */, 743790BF6A5B0577EA74AF14 /* ReadMarkerRoomTimelineItem.swift in Sources */, 2BBC0EB1E07963810A5D7423 /* ReadMarkerRoomTimelineView.swift in Sources */, @@ -7537,9 +7557,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = ( - "-DIS_NSE", - ); + OTHER_SWIFT_FLAGS = "-DIS_NSE"; PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse"; PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)"; PRODUCT_NAME = NSE; @@ -7588,9 +7606,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = ( - "-DIS_MAIN_APP", - ); + OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP"; PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills"; PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(APP_NAME)"; @@ -7616,9 +7632,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = ( - "-DIS_MAIN_APP", - ); + OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP"; PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills"; PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(APP_NAME)"; @@ -7884,9 +7898,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = ( - "-DIS_NSE", - ); + OTHER_SWIFT_FLAGS = "-DIS_NSE"; PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse"; PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)"; PRODUCT_NAME = NSE; diff --git a/ElementX/Resources/Localizations/en.lproj/Localizable.strings b/ElementX/Resources/Localizations/en.lproj/Localizable.strings index 16616e367..5cbc8e5a2 100644 --- a/ElementX/Resources/Localizations/en.lproj/Localizable.strings +++ b/ElementX/Resources/Localizations/en.lproj/Localizable.strings @@ -125,7 +125,6 @@ "common_audio" = "Audio"; "common_blocked_users" = "Blocked users"; "common_bubbles" = "Bubbles"; -"common_call_invite" = "Call in progress (unsupported)"; "common_call_started" = "Call started"; "common_chat_backup" = "Chat backup"; "common_copyright" = "Copyright"; @@ -366,6 +365,7 @@ "screen_join_room_knock_message_description" = "Message (optional)"; "screen_join_room_knock_sent_description" = "You will receive an invite to join the room if your request is accepted."; "screen_join_room_knock_sent_title" = "Request to join sent"; +"screen_knock_requests_list_decline_and_ban_action_title" = "Decline and ban"; "screen_pinned_timeline_empty_state_description" = "Press on a message and choose “%1$@” to include here."; "screen_pinned_timeline_empty_state_headline" = "Pin important messages so that they can be easily discovered"; "screen_reset_encryption_password_error" = "An unknown error happened. Please check your account password is correct and try again."; diff --git a/ElementX/Sources/Generated/Strings.swift b/ElementX/Sources/Generated/Strings.swift index 11565013c..012eec9e9 100644 --- a/ElementX/Sources/Generated/Strings.swift +++ b/ElementX/Sources/Generated/Strings.swift @@ -288,8 +288,6 @@ internal enum L10n { internal static var commonBlockedUsers: String { return L10n.tr("Localizable", "common_blocked_users") } /// Bubbles internal static var commonBubbles: String { return L10n.tr("Localizable", "common_bubbles") } - /// Call in progress (unsupported) - internal static var commonCallInvite: String { return L10n.tr("Localizable", "common_call_invite") } /// Call started internal static var commonCallStarted: String { return L10n.tr("Localizable", "common_call_started") } /// Chat backup @@ -1290,6 +1288,8 @@ internal enum L10n { } /// Are you sure you want to turn off key storage and delete it? internal static var screenKeyBackupDisableTitle: String { return L10n.tr("Localizable", "screen_key_backup_disable_title") } + /// Decline and ban + internal static var screenKnockRequestsListDeclineAndBanActionTitle: String { return L10n.tr("Localizable", "screen_knock_requests_list_decline_and_ban_action_title") } /// This account has been deactivated. internal static var screenLoginErrorDeactivatedAccount: String { return L10n.tr("Localizable", "screen_login_error_deactivated_account") } /// Incorrect username and/or password diff --git a/ElementX/Sources/Other/Avatars.swift b/ElementX/Sources/Other/Avatars.swift index aae173e64..96fc58aaa 100644 --- a/ElementX/Sources/Other/Avatars.swift +++ b/ElementX/Sources/Other/Avatars.swift @@ -72,8 +72,9 @@ enum UserAvatarSizeOnScreen { case editUserDetails case suggestions case blockedUsers - case knockingUsersStack - case knockingUser + case knockingUsersBannerStack + case knockingUserBanner + case knockingUserList var value: CGFloat { switch self { @@ -103,10 +104,12 @@ enum UserAvatarSizeOnScreen { return 96 case .dmDetails: return 75 - case .knockingUsersStack: + case .knockingUsersBannerStack: return 28 - case .knockingUser: + case .knockingUserBanner: return 32 + case .knockingUserList: + return 52 } } } diff --git a/ElementX/Sources/Other/SwiftUI/Views/StackedAvatarsView.swift b/ElementX/Sources/Other/SwiftUI/Views/StackedAvatarsView.swift index 83cf78c0a..81db43cb8 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/StackedAvatarsView.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/StackedAvatarsView.swift @@ -53,13 +53,13 @@ struct StackedAvatarsView_Previews: PreviewProvider, TestablePreview { StackedAvatarsView(overlap: 16, lineWidth: 2, avatars: avatars, - avatarSize: .user(on: .knockingUsersStack), + avatarSize: .user(on: .knockingUsersBannerStack), mediaProvider: MediaProviderMock()) StackedAvatarsView(overlap: 16, lineWidth: 2, shouldStackFromLast: true, avatars: avatars, - avatarSize: .user(on: .knockingUsersStack), + avatarSize: .user(on: .knockingUsersBannerStack), mediaProvider: MediaProviderMock()) } } diff --git a/ElementX/Sources/Screens/KnockRequestsListScreen/View/KnockRequestCell.swift b/ElementX/Sources/Screens/KnockRequestsListScreen/View/KnockRequestCell.swift new file mode 100644 index 000000000..837f6d33d --- /dev/null +++ b/ElementX/Sources/Screens/KnockRequestsListScreen/View/KnockRequestCell.swift @@ -0,0 +1,162 @@ +// +// Copyright 2024 New Vector Ltd. +// +// SPDX-License-Identifier: AGPL-3.0-only +// Please see LICENSE in the repository root for full details. +// + +// +// Copyright 2022-2024 New Vector Ltd. +// +// SPDX-License-Identifier: AGPL-3.0-only +// Please see LICENSE in the repository root for full details. +// + +import Compound +import SwiftUI + +struct KnockRequestCellInfo { + let userID: String + let displayName: String? + let avatarUrl: URL? + let timestamp: String? + let reason: String? +} + +struct KnockRequestCell: View { + let cellInfo: KnockRequestCellInfo + var mediaProvider: MediaProviderProtocol? + let onAccept: (String) -> Void + let onDecline: (String) -> Void + let onDeclineAndBan: (String) -> Void + + var body: some View { + VStack(spacing: 0) { + HStack(alignment: .top, spacing: 16) { + LoadableAvatarImage(url: cellInfo.avatarUrl, + name: cellInfo.displayName, + contentID: cellInfo.userID, + avatarSize: .user(on: .knockingUserList), + mediaProvider: mediaProvider) + VStack(alignment: .leading, spacing: 12) { + VStack(alignment: .leading, spacing: 0) { + HStack(alignment: .top, spacing: 0) { + Text(cellInfo.displayName ?? cellInfo.userID) + .font(.compound.bodyLGSemibold) + .foregroundStyle(.compound.textPrimary) + .frame(maxWidth: .infinity, alignment: .leading) + if let timestamp = cellInfo.timestamp { + Text(timestamp) + .font(.compound.bodySM) + .foregroundStyle(.compound.textSecondary) + } + } + if cellInfo.displayName != nil { + Text(cellInfo.userID) + .font(.compound.bodyMD) + .foregroundStyle(.compound.textSecondary) + } + } + if let reason = cellInfo.reason { + DisclosableText(text: reason) + } + actions + } + } + .padding(16) + Divider() + } + } + + @ViewBuilder + private var actions: some View { + HStack(spacing: 16) { + Button(L10n.actionDecline) { + onDecline(cellInfo.userID) + } + .buttonStyle(.compound(.secondary)) + Button(L10n.actionAccept) { + onAccept(cellInfo.userID) + } + .buttonStyle(.compound(.primary)) + } + Button(L10n.screenKnockRequestsListDeclineAndBanActionTitle, role: .destructive) { + onDeclineAndBan(cellInfo.userID) + } + .buttonStyle(.compound(.plain)) + .frame(maxWidth: .infinity) + .padding(.top, 12) + .padding(.bottom, 4) + } +} + +private struct DisclosableText: View { + let text: String + @State private var collapsedHeight = CGFloat.zero + @State private var expandedHeight = CGFloat.zero + @State private var isExpanded = false + + var body: some View { + HStack(alignment: .top, spacing: 4) { + Text(text) + .multilineTextAlignment(.leading) + .lineLimit(isExpanded ? nil : 3) + .font(.compound.bodyMD) + .foregroundStyle(.compound.textPrimary) + .frame(maxWidth: .infinity, alignment: .leading) + .onGeometryChange(for: CGFloat.self) { geometry in + geometry.size.height + } action: { newValue in + if !isExpanded { + collapsedHeight = newValue + } + } + .background { + Text(text) + .multilineTextAlignment(.leading) + .font(.compound.bodyMD) + .foregroundStyle(.compound.textPrimary) + .fixedSize(horizontal: false, vertical: true) + .onGeometryChange(for: CGFloat.self) { geometry in + geometry.size.height + } action: { newValue in + expandedHeight = newValue + } + .hidden() + } + Button { + withAnimation { + isExpanded.toggle() + } + } label: { + CompoundIcon(\.chevronDown, size: .medium, relativeTo: .compound.bodyMD) + } + .rotationEffect(.degrees(isExpanded ? 180 : 0)) + .foregroundStyle(.compound.iconTertiary) + .opacity(collapsedHeight < expandedHeight ? 1 : 0) + .disabled(collapsedHeight >= expandedHeight) + } + } +} + +struct KnockRequestCell_Previews: PreviewProvider, TestablePreview { + // swiftlint:disable:next line_length + static let aliceWithLongReason = KnockRequestCellInfo(userID: "@alice:matrix.org", displayName: "Alice", avatarUrl: nil, timestamp: "20 Nov 2024", reason: "Hello would like to join this room, also this is a very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long reason") + + static let aliceWithShortReason = KnockRequestCellInfo(userID: "@alice:matrix.org", displayName: "Alice", avatarUrl: nil, timestamp: "20 Nov 2024", reason: "Hello, I am Alice and would like to join this room, please") + + static let aliceWithNoReason = KnockRequestCellInfo(userID: "@alice:matrix.org", displayName: "Alice", avatarUrl: nil, timestamp: "20 Nov 2024", reason: nil) + + static let aliceWithNoName = KnockRequestCellInfo(userID: "@alice:matrix.org", displayName: nil, avatarUrl: nil, timestamp: "20 Nov 2024", reason: nil) + + static var previews: some View { + KnockRequestCell(cellInfo: aliceWithLongReason, onAccept: { _ in }, onDecline: { _ in }, onDeclineAndBan: { _ in }) + .previewDisplayName("Long reason") + KnockRequestCell(cellInfo: aliceWithShortReason, onAccept: { _ in }, onDecline: { _ in }, onDeclineAndBan: { _ in }) + .previewDisplayName("Short reason") + KnockRequestCell(cellInfo: aliceWithNoReason, onAccept: { _ in }, onDecline: { _ in }, onDeclineAndBan: { _ in }) + .previewDisplayName("No reason") + KnockRequestCell(cellInfo: aliceWithNoName, onAccept: { _ in }, onDecline: { _ in }, onDeclineAndBan: { _ in }) + .previewDisplayName("No name") + } +} diff --git a/ElementX/Sources/Screens/RoomScreen/View/KnockRequestsBannerView.swift b/ElementX/Sources/Screens/RoomScreen/View/KnockRequestsBannerView.swift index c41497932..dab249999 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/KnockRequestsBannerView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/KnockRequestsBannerView.swift @@ -69,7 +69,7 @@ private struct SingleKnockRequestBannerContent: View { LoadableAvatarImage(url: request.avatarURL, name: request.displayName, contentID: request.userID, - avatarSize: .user(on: .knockingUser), mediaProvider: mediaProvider) + avatarSize: .user(on: .knockingUserBanner), mediaProvider: mediaProvider) VStack(spacing: 0) { HStack(alignment: .top, spacing: 0) { Text(L10n.screenRoomSingleKnockRequestTitle(request.displayName ?? request.userID)) @@ -129,7 +129,7 @@ private struct MultipleKnockRequestsBannerContent: View { var body: some View { VStack(spacing: 14) { HStack(spacing: 10) { - StackedAvatarsView(overlap: 16, lineWidth: 2, shouldStackFromLast: true, avatars: avatars, avatarSize: .user(on: .knockingUsersStack), mediaProvider: mediaProvider) + StackedAvatarsView(overlap: 16, lineWidth: 2, shouldStackFromLast: true, avatars: avatars, avatarSize: .user(on: .knockingUsersBannerStack), mediaProvider: mediaProvider) HStack(alignment: .top, spacing: 0) { Text(multipleKnockRequestsTitle) .lineLimit(2) diff --git a/PreviewTests/Sources/GeneratedPreviewTests.swift b/PreviewTests/Sources/GeneratedPreviewTests.swift index bac611669..f18c1d927 100644 --- a/PreviewTests/Sources/GeneratedPreviewTests.swift +++ b/PreviewTests/Sources/GeneratedPreviewTests.swift @@ -305,6 +305,12 @@ extension PreviewTests { } } + func test_knockRequestCell() { + for preview in KnockRequestCell_Previews._allPreviews { + assertSnapshots(matching: preview) + } + } + func test_knockRequestsBannerView() { for preview in KnockRequestsBannerView_Previews._allPreviews { assertSnapshots(matching: preview) diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Long-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Long-reason.png new file mode 100644 index 000000000..e3ea93d79 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Long-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5466569f96a2d74dc598b7d870ae76d237c0e7dbf181f3e0adf497b0956e2649 +size 119491 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-name.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-name.png new file mode 100644 index 000000000..c7c77c488 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-name.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b61e8c99338ff1316736d3f8945cbc32c407a276493a63de0ffe9f1325479cc3 +size 93546 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-reason.png new file mode 100644 index 000000000..cbd704292 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.No-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a32205860de5d076cbf226156962519586058e50a89ea7c29cf15b2d66fb75 +size 94500 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Short-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Short-reason.png new file mode 100644 index 000000000..afb85ca2e --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-en-GB.Short-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc9ebf6bcd889f2d0a0a855404b6be2ae140d40a69a21767dc9ecc3958539a79 +size 103862 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Long-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Long-reason.png new file mode 100644 index 000000000..049a445c8 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Long-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af31b5df7d0f0d97a8c306ece8cbaa611bfbc3a98e78a189ed5349f16faa5cc5 +size 121175 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-name.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-name.png new file mode 100644 index 000000000..ef4aebf23 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-name.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98eec884b96bcaa6eec3510a8c362762d2a0d3238eecd287782e2d41a778af83 +size 95103 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-reason.png new file mode 100644 index 000000000..9f63dd529 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.No-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b974d372c92c5fb724778d384fc3072d95cc2bea1c9662d123fc24fbfba6890a +size 96049 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Short-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Short-reason.png new file mode 100644 index 000000000..bb5e34c8a --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPad-pseudo.Short-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97c9af346e966100a44f1db6814e516455ba90c3a4154de9a5f657f955dfefa3 +size 105493 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Long-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Long-reason.png new file mode 100644 index 000000000..403ce85c6 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Long-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce6497c50fbf9e9b0f6bb6713cacb55bb389a31232785faa1368b341d300b563 +size 62895 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-name.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-name.png new file mode 100644 index 000000000..0e554bf98 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-name.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6360a04a6d30220c3b8d9aed2de8309aa54b4234824fa73cc44ac40c0c89ed2 +size 50804 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-reason.png new file mode 100644 index 000000000..19c432cb9 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.No-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ca01bbaee8ec50a79370b222b15fcb9d028db3b3782d5ab0757cce738497821 +size 51417 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Short-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Short-reason.png new file mode 100644 index 000000000..fc89ccaed --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-en-GB.Short-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb2cfa269efe2a538abd7c93d577878366b84f4e44701f8a4314a2f4eb53a3d8 +size 60576 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Long-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Long-reason.png new file mode 100644 index 000000000..9f39dd4ad --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Long-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14478f6bac6fb2a792c369f8568e4cf51a89029dd4b9434262db4eb0e76e7328 +size 70929 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-name.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-name.png new file mode 100644 index 000000000..41e77b4ff --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-name.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:388b944b239c1dd130e6c1463e777c9aa85186e3bf70402d8853e88b7c19be22 +size 59396 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-reason.png new file mode 100644 index 000000000..101c51af8 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.No-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1257061c8bef2b9fd9173e696ffecbfbd017b0f06eabe1228e80d3873007e271 +size 60458 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Short-reason.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Short-reason.png new file mode 100644 index 000000000..c0c7df261 --- /dev/null +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_knockRequestCell-iPhone-16-pseudo.Short-reason.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e982a79556a5fdef82435ec63dca8a24970e8c80248c751fb89f06b09fa6061 +size 68971