mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 21:39:12 +00:00
Added a disclaimer in Notification Settings for "Mentions Only" (#2081)
This commit is contained in:
parent
eb6f7e0409
commit
342feb4113
@ -3,7 +3,7 @@
|
|||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 56;
|
objectVersion = 54;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
@ -31,6 +31,7 @@
|
|||||||
06F8EDF52E33A2D36BCC1161 /* AppLockScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D6F88FE35A0979D2821E06 /* AppLockScreen.swift */; };
|
06F8EDF52E33A2D36BCC1161 /* AppLockScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D6F88FE35A0979D2821E06 /* AppLockScreen.swift */; };
|
||||||
071A017E415AD378F2961B11 /* URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 227AC5D71A4CE43512062243 /* URL.swift */; };
|
071A017E415AD378F2961B11 /* URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 227AC5D71A4CE43512062243 /* URL.swift */; };
|
||||||
07756D532EFE33DD1FA258E5 /* GeoURITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A7ED2EF5BDBAD2A7DBC4636 /* GeoURITests.swift */; };
|
07756D532EFE33DD1FA258E5 /* GeoURITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A7ED2EF5BDBAD2A7DBC4636 /* GeoURITests.swift */; };
|
||||||
|
077CB230153E072C94B1E6C3 /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D65BCC659FD9087E49B3C25 /* AppAppearance.swift */; };
|
||||||
07CC13C5729C24255348CBBD /* ElementCallWidgetDriver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 309AD8BAE6437C31BA7157BF /* ElementCallWidgetDriver.swift */; };
|
07CC13C5729C24255348CBBD /* ElementCallWidgetDriver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 309AD8BAE6437C31BA7157BF /* ElementCallWidgetDriver.swift */; };
|
||||||
086D01E79C8E8D3F004FAF21 /* AudioPlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC9104846487244648D32C6D /* AudioPlayerProtocol.swift */; };
|
086D01E79C8E8D3F004FAF21 /* AudioPlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC9104846487244648D32C6D /* AudioPlayerProtocol.swift */; };
|
||||||
08CB4BD12CEEDE6AAE4A18DD /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035177BCD8E8308B098AC3C2 /* WindowManager.swift */; };
|
08CB4BD12CEEDE6AAE4A18DD /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035177BCD8E8308B098AC3C2 /* WindowManager.swift */; };
|
||||||
@ -518,7 +519,6 @@
|
|||||||
890F0D453FE388756479AC97 /* AnalyticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C687844F60BFF532D49A994C /* AnalyticsTests.swift */; };
|
890F0D453FE388756479AC97 /* AnalyticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C687844F60BFF532D49A994C /* AnalyticsTests.swift */; };
|
||||||
8944548A684F1C837CEC47F4 /* RoomMembersListScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0946F77B696176E062D037 /* RoomMembersListScreenModels.swift */; };
|
8944548A684F1C837CEC47F4 /* RoomMembersListScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0946F77B696176E062D037 /* RoomMembersListScreenModels.swift */; };
|
||||||
89658A44C9FC19B58FD1C226 /* ServerConfirmationScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08776C48FFB47CACF64ED10 /* ServerConfirmationScreenViewModelTests.swift */; };
|
89658A44C9FC19B58FD1C226 /* ServerConfirmationScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08776C48FFB47CACF64ED10 /* ServerConfirmationScreenViewModelTests.swift */; };
|
||||||
897760FA1B292D3BDC0E2059 /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4798BA766EBF46C00CE3C8E /* AppAppearance.swift */; };
|
|
||||||
899359A4D1147601F6C4E364 /* PillConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB8D34E94AB07128DB73D6C7 /* PillConstants.swift */; };
|
899359A4D1147601F6C4E364 /* PillConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB8D34E94AB07128DB73D6C7 /* PillConstants.swift */; };
|
||||||
899793EFC63DF93C3E0141E7 /* RoomMemberDetailsScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FA60F848D1C14F873F9621A /* RoomMemberDetailsScreenCoordinator.swift */; };
|
899793EFC63DF93C3E0141E7 /* RoomMemberDetailsScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FA60F848D1C14F873F9621A /* RoomMemberDetailsScreenCoordinator.swift */; };
|
||||||
8A0BD60CA4A6004DB06B5403 /* MediaUploadingPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 669F35C505ACE1110589F875 /* MediaUploadingPreprocessor.swift */; };
|
8A0BD60CA4A6004DB06B5403 /* MediaUploadingPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 669F35C505ACE1110589F875 /* MediaUploadingPreprocessor.swift */; };
|
||||||
@ -1043,7 +1043,7 @@
|
|||||||
033DB41C51865A2E83174E87 /* target.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = target.yml; sourceTree = "<group>"; };
|
033DB41C51865A2E83174E87 /* target.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = target.yml; sourceTree = "<group>"; };
|
||||||
035177BCD8E8308B098AC3C2 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = "<group>"; };
|
035177BCD8E8308B098AC3C2 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = "<group>"; };
|
||||||
0376C429FAB1687C3D905F3E /* MockCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCoder.swift; sourceTree = "<group>"; };
|
0376C429FAB1687C3D905F3E /* MockCoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCoder.swift; sourceTree = "<group>"; };
|
||||||
0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_voice_message.m4a; sourceTree = "<group>"; };
|
0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */ = {isa = PBXFileReference; path = test_voice_message.m4a; sourceTree = "<group>"; };
|
||||||
03DD998E523D4EC93C7ED703 /* RoomNotificationSettingsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenViewModelProtocol.swift; sourceTree = "<group>"; };
|
03DD998E523D4EC93C7ED703 /* RoomNotificationSettingsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenViewModelProtocol.swift; sourceTree = "<group>"; };
|
||||||
03FABD73FD8086EFAB699F42 /* MediaUploadPreviewScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadPreviewScreenViewModelTests.swift; sourceTree = "<group>"; };
|
03FABD73FD8086EFAB699F42 /* MediaUploadPreviewScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadPreviewScreenViewModelTests.swift; sourceTree = "<group>"; };
|
||||||
044E501B8331B339874D1B96 /* CompoundIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundIcon.swift; sourceTree = "<group>"; };
|
044E501B8331B339874D1B96 /* CompoundIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundIcon.swift; sourceTree = "<group>"; };
|
||||||
@ -1104,7 +1104,7 @@
|
|||||||
127C8472672A5BA09EF1ACF8 /* CurrentValuePublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrentValuePublisher.swift; sourceTree = "<group>"; };
|
127C8472672A5BA09EF1ACF8 /* CurrentValuePublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrentValuePublisher.swift; sourceTree = "<group>"; };
|
||||||
12EDAFB64FA5F6812D54F39A /* MigrationScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationScreenViewModel.swift; sourceTree = "<group>"; };
|
12EDAFB64FA5F6812D54F39A /* MigrationScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationScreenViewModel.swift; sourceTree = "<group>"; };
|
||||||
12F1E7F9C2BE8BB751037826 /* WaitlistScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenCoordinator.swift; sourceTree = "<group>"; };
|
12F1E7F9C2BE8BB751037826 /* WaitlistScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenCoordinator.swift; sourceTree = "<group>"; };
|
||||||
1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = IntegrationTests.xctestplan; sourceTree = "<group>"; };
|
1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; path = IntegrationTests.xctestplan; sourceTree = "<group>"; };
|
||||||
130ED565A078F7E0B59D9D25 /* UNTextInputNotificationResponse+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNTextInputNotificationResponse+Creator.swift"; sourceTree = "<group>"; };
|
130ED565A078F7E0B59D9D25 /* UNTextInputNotificationResponse+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNTextInputNotificationResponse+Creator.swift"; sourceTree = "<group>"; };
|
||||||
13802897C7AFA360EA74C0B0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
13802897C7AFA360EA74C0B0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
1423AB065857FA546444DB15 /* NotificationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = "<group>"; };
|
1423AB065857FA546444DB15 /* NotificationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = "<group>"; };
|
||||||
@ -1251,6 +1251,7 @@
|
|||||||
3D1D4A6D451F43A03CACD01D /* PINTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PINTextField.swift; sourceTree = "<group>"; };
|
3D1D4A6D451F43A03CACD01D /* PINTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PINTextField.swift; sourceTree = "<group>"; };
|
||||||
3D487C1185D658F8B15B8F55 /* SettingsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModelTests.swift; sourceTree = "<group>"; };
|
3D487C1185D658F8B15B8F55 /* SettingsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModelTests.swift; sourceTree = "<group>"; };
|
||||||
3D4DD336905C72F95EAF34B7 /* ElementX-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ElementX-Bridging-Header.h"; sourceTree = "<group>"; };
|
3D4DD336905C72F95EAF34B7 /* ElementX-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ElementX-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
|
3D65BCC659FD9087E49B3C25 /* AppAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearance.swift; sourceTree = "<group>"; };
|
||||||
3D9FCE4D1E3A81AC1CC5CB91 /* AppLockSetupSettingsScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupSettingsScreenCoordinator.swift; sourceTree = "<group>"; };
|
3D9FCE4D1E3A81AC1CC5CB91 /* AppLockSetupSettingsScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupSettingsScreenCoordinator.swift; sourceTree = "<group>"; };
|
||||||
3DC1943ADE6A62ED5129D7C8 /* LoggingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingTests.swift; sourceTree = "<group>"; };
|
3DC1943ADE6A62ED5129D7C8 /* LoggingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingTests.swift; sourceTree = "<group>"; };
|
||||||
3DF1FFC3336EB23374BBBFCC /* UIKitBackgroundTaskService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBackgroundTaskService.swift; sourceTree = "<group>"; };
|
3DF1FFC3336EB23374BBBFCC /* UIKitBackgroundTaskService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBackgroundTaskService.swift; sourceTree = "<group>"; };
|
||||||
@ -1523,7 +1524,7 @@
|
|||||||
8D55702474F279D910D2D162 /* RoomStateEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateEventStringBuilder.swift; sourceTree = "<group>"; };
|
8D55702474F279D910D2D162 /* RoomStateEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateEventStringBuilder.swift; sourceTree = "<group>"; };
|
||||||
8D8169443E5AC5FF71BFB3DB /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = "<group>"; };
|
8D8169443E5AC5FF71BFB3DB /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
8DC2C9E0E15C79BBDA80F0A2 /* TimelineStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineStyle.swift; sourceTree = "<group>"; };
|
8DC2C9E0E15C79BBDA80F0A2 /* TimelineStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineStyle.swift; sourceTree = "<group>"; };
|
||||||
8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UITests.xctestplan; sourceTree = "<group>"; };
|
8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; path = UITests.xctestplan; sourceTree = "<group>"; };
|
||||||
8E1BBA73B611EDEEA6E20E05 /* InvitesScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvitesScreenModels.swift; sourceTree = "<group>"; };
|
8E1BBA73B611EDEEA6E20E05 /* InvitesScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvitesScreenModels.swift; sourceTree = "<group>"; };
|
||||||
8EC57A32ABC80D774CC663DB /* SettingsScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsScreenUITests.swift; sourceTree = "<group>"; };
|
8EC57A32ABC80D774CC663DB /* SettingsScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsScreenUITests.swift; sourceTree = "<group>"; };
|
||||||
8F21ED7205048668BEB44A38 /* AppActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppActivityView.swift; sourceTree = "<group>"; };
|
8F21ED7205048668BEB44A38 /* AppActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppActivityView.swift; sourceTree = "<group>"; };
|
||||||
@ -1659,7 +1660,7 @@
|
|||||||
B4CFE236419E830E8946639C /* Analytics+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Analytics+SwiftUI.swift"; sourceTree = "<group>"; };
|
B4CFE236419E830E8946639C /* Analytics+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Analytics+SwiftUI.swift"; sourceTree = "<group>"; };
|
||||||
B590BD4507D4F0A377FDE01A /* LoadableAvatarImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadableAvatarImage.swift; sourceTree = "<group>"; };
|
B590BD4507D4F0A377FDE01A /* LoadableAvatarImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadableAvatarImage.swift; sourceTree = "<group>"; };
|
||||||
B5B243E7818E5E9F6A4EDC7A /* NoticeRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeRoomTimelineView.swift; sourceTree = "<group>"; };
|
B5B243E7818E5E9F6A4EDC7A /* NoticeRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeRoomTimelineView.swift; sourceTree = "<group>"; };
|
||||||
B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = ConfettiScene.scn; sourceTree = "<group>"; };
|
B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; path = ConfettiScene.scn; sourceTree = "<group>"; };
|
||||||
B6311F21F911E23BE4DF51B4 /* ReadMarkerRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReadMarkerRoomTimelineView.swift; sourceTree = "<group>"; };
|
B6311F21F911E23BE4DF51B4 /* ReadMarkerRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReadMarkerRoomTimelineView.swift; sourceTree = "<group>"; };
|
||||||
B63B69F9A2BC74DD40DC75C8 /* AdvancedSettingsScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsScreenViewModel.swift; sourceTree = "<group>"; };
|
B63B69F9A2BC74DD40DC75C8 /* AdvancedSettingsScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsScreenViewModel.swift; sourceTree = "<group>"; };
|
||||||
B697816AF93DA06EC58C5D70 /* WaitlistScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenViewModelProtocol.swift; sourceTree = "<group>"; };
|
B697816AF93DA06EC58C5D70 /* WaitlistScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistScreenViewModelProtocol.swift; sourceTree = "<group>"; };
|
||||||
@ -1764,7 +1765,7 @@
|
|||||||
CD95B3714F806AC9CF9A557B /* ComposerToolbarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarViewModel.swift; sourceTree = "<group>"; };
|
CD95B3714F806AC9CF9A557B /* ComposerToolbarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarViewModel.swift; sourceTree = "<group>"; };
|
||||||
CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = "<group>"; };
|
CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = "<group>"; };
|
||||||
CEE0E6043EFCF6FD2A341861 /* TimelineReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineReplyView.swift; sourceTree = "<group>"; };
|
CEE0E6043EFCF6FD2A341861 /* TimelineReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineReplyView.swift; sourceTree = "<group>"; };
|
||||||
CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = "<group>"; };
|
CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; path = UnitTests.xctestplan; sourceTree = "<group>"; };
|
||||||
CF48AF076424DBC1615C74AD /* AuthenticationServiceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationServiceProxy.swift; sourceTree = "<group>"; };
|
CF48AF076424DBC1615C74AD /* AuthenticationServiceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationServiceProxy.swift; sourceTree = "<group>"; };
|
||||||
D0140615D2232612C813FD6C /* EncryptedHistoryRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedHistoryRoomTimelineItem.swift; sourceTree = "<group>"; };
|
D0140615D2232612C813FD6C /* EncryptedHistoryRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedHistoryRoomTimelineItem.swift; sourceTree = "<group>"; };
|
||||||
D071F86CD47582B9196C9D16 /* UserDiscoverySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDiscoverySection.swift; sourceTree = "<group>"; };
|
D071F86CD47582B9196C9D16 /* UserDiscoverySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDiscoverySection.swift; sourceTree = "<group>"; };
|
||||||
@ -1787,7 +1788,6 @@
|
|||||||
D3F219838588C62198E726E3 /* LABiometryType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LABiometryType.swift; sourceTree = "<group>"; };
|
D3F219838588C62198E726E3 /* LABiometryType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LABiometryType.swift; sourceTree = "<group>"; };
|
||||||
D3F275432954C8C6B1B7D966 /* AppLockSetupPINScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupPINScreen.swift; sourceTree = "<group>"; };
|
D3F275432954C8C6B1B7D966 /* AppLockSetupPINScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupPINScreen.swift; sourceTree = "<group>"; };
|
||||||
D45C9EAA86423D7D3126DE4F /* VoiceMessageRecorderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorderProtocol.swift; sourceTree = "<group>"; };
|
D45C9EAA86423D7D3126DE4F /* VoiceMessageRecorderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorderProtocol.swift; sourceTree = "<group>"; };
|
||||||
D4798BA766EBF46C00CE3C8E /* AppAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearance.swift; sourceTree = "<group>"; };
|
|
||||||
D49B9785E3AD7D1C15A29F2F /* MediaSourceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaSourceProxy.swift; sourceTree = "<group>"; };
|
D49B9785E3AD7D1C15A29F2F /* MediaSourceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaSourceProxy.swift; sourceTree = "<group>"; };
|
||||||
D4DA544B2520BFA65D6DB4BB /* target.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = target.yml; sourceTree = "<group>"; };
|
D4DA544B2520BFA65D6DB4BB /* target.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = target.yml; sourceTree = "<group>"; };
|
||||||
D529B976F8B2AA654D923422 /* VoiceMessageRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRoomTimelineItem.swift; sourceTree = "<group>"; };
|
D529B976F8B2AA654D923422 /* VoiceMessageRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRoomTimelineItem.swift; sourceTree = "<group>"; };
|
||||||
@ -1870,7 +1870,7 @@
|
|||||||
ECF79FB25E2D4BD6F50CE7C9 /* RoomMembersListScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembersListScreenViewModel.swift; sourceTree = "<group>"; };
|
ECF79FB25E2D4BD6F50CE7C9 /* RoomMembersListScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembersListScreenViewModel.swift; sourceTree = "<group>"; };
|
||||||
ED044D00F2176681CC02CD54 /* HomeScreenRoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeScreenRoomCell.swift; sourceTree = "<group>"; };
|
ED044D00F2176681CC02CD54 /* HomeScreenRoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeScreenRoomCell.swift; sourceTree = "<group>"; };
|
||||||
ED1D792EB82506A19A72C8DE /* RoomTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemProtocol.swift; sourceTree = "<group>"; };
|
ED1D792EB82506A19A72C8DE /* RoomTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemProtocol.swift; sourceTree = "<group>"; };
|
||||||
ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = message.caf; sourceTree = "<group>"; };
|
ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; path = message.caf; sourceTree = "<group>"; };
|
||||||
ED983D4DCA5AFA6E1ED96099 /* StateRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineView.swift; sourceTree = "<group>"; };
|
ED983D4DCA5AFA6E1ED96099 /* StateRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineView.swift; sourceTree = "<group>"; };
|
||||||
EDAA4472821985BF868CC21C /* ServerSelectionViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerSelectionViewModelTests.swift; sourceTree = "<group>"; };
|
EDAA4472821985BF868CC21C /* ServerSelectionViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerSelectionViewModelTests.swift; sourceTree = "<group>"; };
|
||||||
EE378083653EF0C9B5E9D580 /* EmoteRoomTimelineItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmoteRoomTimelineItemContent.swift; sourceTree = "<group>"; };
|
EE378083653EF0C9B5E9D580 /* EmoteRoomTimelineItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmoteRoomTimelineItemContent.swift; sourceTree = "<group>"; };
|
||||||
@ -1885,7 +1885,7 @@
|
|||||||
F174A5627CDB3CAF280D1880 /* EmojiPickerScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerScreenModels.swift; sourceTree = "<group>"; };
|
F174A5627CDB3CAF280D1880 /* EmojiPickerScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerScreenModels.swift; sourceTree = "<group>"; };
|
||||||
F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaProvider.swift; sourceTree = "<group>"; };
|
F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaProvider.swift; sourceTree = "<group>"; };
|
||||||
F1B8500C152BC59445647DA8 /* UnsupportedRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnsupportedRoomTimelineItem.swift; sourceTree = "<group>"; };
|
F1B8500C152BC59445647DA8 /* UnsupportedRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnsupportedRoomTimelineItem.swift; sourceTree = "<group>"; };
|
||||||
F2D513D2477B57F90E98EEC0 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = portrait_test_video.mp4; sourceTree = "<group>"; };
|
F2D513D2477B57F90E98EEC0 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; path = portrait_test_video.mp4; sourceTree = "<group>"; };
|
||||||
F31F59030205A6F65B057E1A /* MatrixEntityRegexTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixEntityRegexTests.swift; sourceTree = "<group>"; };
|
F31F59030205A6F65B057E1A /* MatrixEntityRegexTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixEntityRegexTests.swift; sourceTree = "<group>"; };
|
||||||
F348B5F2C12F9D4F4B4D3884 /* VideoRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineItem.swift; sourceTree = "<group>"; };
|
F348B5F2C12F9D4F4B4D3884 /* VideoRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineItem.swift; sourceTree = "<group>"; };
|
||||||
F36C0A6D59717193F49EA986 /* UserSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionTests.swift; sourceTree = "<group>"; };
|
F36C0A6D59717193F49EA986 /* UserSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionTests.swift; sourceTree = "<group>"; };
|
||||||
@ -4179,6 +4179,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
04BB8DDE245ED86C489BA983 /* AccessibilityIdentifiers.swift */,
|
04BB8DDE245ED86C489BA983 /* AccessibilityIdentifiers.swift */,
|
||||||
|
3D65BCC659FD9087E49B3C25 /* AppAppearance.swift */,
|
||||||
E24B88AD3D1599E8CB1376E0 /* AvatarSize.swift */,
|
E24B88AD3D1599E8CB1376E0 /* AvatarSize.swift */,
|
||||||
E5272BC4A60B6AD7553BACA1 /* BlurHashDecode.swift */,
|
E5272BC4A60B6AD7553BACA1 /* BlurHashDecode.swift */,
|
||||||
9332DFE9642F0A46ECA0497B /* BlurHashEncode.swift */,
|
9332DFE9642F0A46ECA0497B /* BlurHashEncode.swift */,
|
||||||
@ -4195,7 +4196,6 @@
|
|||||||
53482ECA4B6633961EC224F5 /* ScrollViewAdapter.swift */,
|
53482ECA4B6633961EC224F5 /* ScrollViewAdapter.swift */,
|
||||||
4481799F455B3DA243BDA2AC /* ShareToMapsAppActivity.swift */,
|
4481799F455B3DA243BDA2AC /* ShareToMapsAppActivity.swift */,
|
||||||
B1E227F34BE43B08E098796E /* TestablePreview.swift */,
|
B1E227F34BE43B08E098796E /* TestablePreview.swift */,
|
||||||
D4798BA766EBF46C00CE3C8E /* AppAppearance.swift */,
|
|
||||||
1F2529D434C750ED78ADF1ED /* UserAgentBuilder.swift */,
|
1F2529D434C750ED78ADF1ED /* UserAgentBuilder.swift */,
|
||||||
35FA991289149D31F4286747 /* UserPreference.swift */,
|
35FA991289149D31F4286747 /* UserPreference.swift */,
|
||||||
7431C962E314ADAE38B6D708 /* Analytics */,
|
7431C962E314ADAE38B6D708 /* Analytics */,
|
||||||
@ -5301,6 +5301,7 @@
|
|||||||
A74438ED16F8683A4B793E6A /* AnalyticsSettingsScreenViewModel.swift in Sources */,
|
A74438ED16F8683A4B793E6A /* AnalyticsSettingsScreenViewModel.swift in Sources */,
|
||||||
654E802C127B84554042903E /* AnalyticsSettingsScreenViewModelProtocol.swift in Sources */,
|
654E802C127B84554042903E /* AnalyticsSettingsScreenViewModelProtocol.swift in Sources */,
|
||||||
8C1A5ECAF895D4CAF8C4D461 /* AppActivityView.swift in Sources */,
|
8C1A5ECAF895D4CAF8C4D461 /* AppActivityView.swift in Sources */,
|
||||||
|
077CB230153E072C94B1E6C3 /* AppAppearance.swift in Sources */,
|
||||||
095C0ACFC234E0550A6404C5 /* AppCoordinator.swift in Sources */,
|
095C0ACFC234E0550A6404C5 /* AppCoordinator.swift in Sources */,
|
||||||
A021827B528F1EDC9101CA58 /* AppCoordinatorProtocol.swift in Sources */,
|
A021827B528F1EDC9101CA58 /* AppCoordinatorProtocol.swift in Sources */,
|
||||||
4FF90E2242DBD596E1ED2E27 /* AppCoordinatorStateMachine.swift in Sources */,
|
4FF90E2242DBD596E1ED2E27 /* AppCoordinatorStateMachine.swift in Sources */,
|
||||||
@ -5842,7 +5843,6 @@
|
|||||||
BB784A02BADB03C820617A46 /* TextRoomTimelineItem.swift in Sources */,
|
BB784A02BADB03C820617A46 /* TextRoomTimelineItem.swift in Sources */,
|
||||||
53F1196F9C69512306A2693F /* TextRoomTimelineItemContent.swift in Sources */,
|
53F1196F9C69512306A2693F /* TextRoomTimelineItemContent.swift in Sources */,
|
||||||
5E0F2E612718BB4397A6D40A /* TextRoomTimelineView.swift in Sources */,
|
5E0F2E612718BB4397A6D40A /* TextRoomTimelineView.swift in Sources */,
|
||||||
897760FA1B292D3BDC0E2059 /* AppAppearance.swift in Sources */,
|
|
||||||
5B2D1210B40570D87B11BD3B /* ThreadDecorator.swift in Sources */,
|
5B2D1210B40570D87B11BD3B /* ThreadDecorator.swift in Sources */,
|
||||||
43EF6D8E694F54C5471BF5F3 /* TimelineBubbleLayout.swift in Sources */,
|
43EF6D8E694F54C5471BF5F3 /* TimelineBubbleLayout.swift in Sources */,
|
||||||
5D2AF8C0DF872E7985F8FE54 /* TimelineDeliveryStatusView.swift in Sources */,
|
5D2AF8C0DF872E7985F8FE54 /* TimelineDeliveryStatusView.swift in Sources */,
|
||||||
@ -6144,7 +6144,9 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
||||||
OTHER_SWIFT_FLAGS = "-DIS_NSE";
|
OTHER_SWIFT_FLAGS = (
|
||||||
|
"-DIS_NSE",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse";
|
PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse";
|
||||||
PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
|
PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
|
||||||
PRODUCT_NAME = NSE;
|
PRODUCT_NAME = NSE;
|
||||||
@ -6169,7 +6171,9 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
||||||
OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP";
|
OTHER_SWIFT_FLAGS = (
|
||||||
|
"-DIS_MAIN_APP",
|
||||||
|
);
|
||||||
PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills";
|
PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(APP_NAME)";
|
PRODUCT_NAME = "$(APP_NAME)";
|
||||||
@ -6195,7 +6199,9 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
||||||
OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP";
|
OTHER_SWIFT_FLAGS = (
|
||||||
|
"-DIS_MAIN_APP",
|
||||||
|
);
|
||||||
PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills";
|
PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(APP_NAME)";
|
PRODUCT_NAME = "$(APP_NAME)";
|
||||||
@ -6436,7 +6442,9 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
MARKETING_VERSION = "$(MARKETING_VERSION)";
|
||||||
OTHER_SWIFT_FLAGS = "-DIS_NSE";
|
OTHER_SWIFT_FLAGS = (
|
||||||
|
"-DIS_NSE",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse";
|
PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse";
|
||||||
PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
|
PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
|
||||||
PRODUCT_NAME = NSE;
|
PRODUCT_NAME = NSE;
|
||||||
@ -6632,7 +6640,7 @@
|
|||||||
repositoryURL = "https://github.com/matrix-org/matrix-rust-components-swift";
|
repositoryURL = "https://github.com/matrix-org/matrix-rust-components-swift";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = exactVersion;
|
kind = exactVersion;
|
||||||
version = "0.0.2-november23";
|
version = "0.0.3-november23";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
821C67C9A7F8CC3FD41B28B4 /* XCRemoteSwiftPackageReference "emojibase-bindings" */ = {
|
821C67C9A7F8CC3FD41B28B4 /* XCRemoteSwiftPackageReference "emojibase-bindings" */ = {
|
||||||
|
@ -130,8 +130,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/matrix-org/matrix-rust-components-swift",
|
"location" : "https://github.com/matrix-org/matrix-rust-components-swift",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "f647c08eb338ddc20a41429330f366b6bb97d879",
|
"revision" : "22637fa0dc2d4cec8d3a39515cb844fb5b04f784",
|
||||||
"version" : "0.0.2-november23"
|
"version" : "0.0.3-november23"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1716,6 +1716,23 @@ class NotificationSettingsProxyMock: NotificationSettingsProxyProtocol {
|
|||||||
return getRoomsWithUserDefinedRulesReturnValue
|
return getRoomsWithUserDefinedRulesReturnValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//MARK: - canHomeserverPushEncryptedEventsToDevice
|
||||||
|
|
||||||
|
var canHomeserverPushEncryptedEventsToDeviceCallsCount = 0
|
||||||
|
var canHomeserverPushEncryptedEventsToDeviceCalled: Bool {
|
||||||
|
return canHomeserverPushEncryptedEventsToDeviceCallsCount > 0
|
||||||
|
}
|
||||||
|
var canHomeserverPushEncryptedEventsToDeviceReturnValue: Bool!
|
||||||
|
var canHomeserverPushEncryptedEventsToDeviceClosure: (() async -> Bool)?
|
||||||
|
|
||||||
|
func canHomeserverPushEncryptedEventsToDevice() async -> Bool {
|
||||||
|
canHomeserverPushEncryptedEventsToDeviceCallsCount += 1
|
||||||
|
if let canHomeserverPushEncryptedEventsToDeviceClosure = canHomeserverPushEncryptedEventsToDeviceClosure {
|
||||||
|
return await canHomeserverPushEncryptedEventsToDeviceClosure()
|
||||||
|
} else {
|
||||||
|
return canHomeserverPushEncryptedEventsToDeviceReturnValue
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
class RoomMemberProxyMock: RoomMemberProxyProtocol {
|
class RoomMemberProxyMock: RoomMemberProxyProtocol {
|
||||||
var userID: String {
|
var userID: String {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Generated using Sourcery 2.1.1 — https://github.com/krzysztofzablocki/Sourcery
|
// Generated using Sourcery 2.1.2 — https://github.com/krzysztofzablocki/Sourcery
|
||||||
// DO NOT EDIT
|
// DO NOT EDIT
|
||||||
|
|
||||||
// swiftlint:disable all
|
// swiftlint:disable all
|
||||||
|
@ -22,10 +22,12 @@ struct NotificationSettingsProxyMockConfiguration {
|
|||||||
var callback = PassthroughSubject<NotificationSettingsProxyCallback, Never>()
|
var callback = PassthroughSubject<NotificationSettingsProxyCallback, Never>()
|
||||||
var defaultRoomMode: RoomNotificationModeProxy
|
var defaultRoomMode: RoomNotificationModeProxy
|
||||||
var roomMode: RoomNotificationSettingsProxyMock
|
var roomMode: RoomNotificationSettingsProxyMock
|
||||||
|
var canHomeserverPushEncryptedEvents = false
|
||||||
|
|
||||||
init(defaultRoomMode: RoomNotificationModeProxy = .allMessages, roomMode: RoomNotificationModeProxy = .allMessages) {
|
init(defaultRoomMode: RoomNotificationModeProxy = .allMessages, roomMode: RoomNotificationModeProxy = .allMessages, canHomeserverPushEncryptedEvents: Bool = false) {
|
||||||
self.defaultRoomMode = defaultRoomMode
|
self.defaultRoomMode = defaultRoomMode
|
||||||
self.roomMode = RoomNotificationSettingsProxyMock(with: RoomNotificationSettingsProxyMockConfiguration(mode: roomMode, isDefault: defaultRoomMode == roomMode))
|
self.roomMode = RoomNotificationSettingsProxyMock(with: RoomNotificationSettingsProxyMockConfiguration(mode: roomMode, isDefault: defaultRoomMode == roomMode))
|
||||||
|
self.canHomeserverPushEncryptedEvents = canHomeserverPushEncryptedEvents
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,5 +82,9 @@ extension NotificationSettingsProxyMock {
|
|||||||
self.callbacks.send(.settingsDidChange)
|
self.callbacks.send(.settingsDidChange)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
canHomeserverPushEncryptedEventsToDeviceClosure = {
|
||||||
|
configuration.canHomeserverPushEncryptedEvents
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,15 @@ struct RoomNotificationSettingsScreenViewState: BindableState {
|
|||||||
var navigationTitle: String
|
var navigationTitle: String
|
||||||
var customSettingsSectionHeader: String
|
var customSettingsSectionHeader: String
|
||||||
var deletingCustomSetting = false
|
var deletingCustomSetting = false
|
||||||
|
var shouldDisplayMentionsOnlyDisclaimer = true
|
||||||
|
|
||||||
|
func description(mode: RoomNotificationModeProxy) -> String? {
|
||||||
|
guard mode == .mentionsAndKeywordsOnly,
|
||||||
|
shouldDisplayMentionsOnlyDisclaimer else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return L10n.screenRoomNotificationSettingsMentionsOnlyDisclaimer
|
||||||
|
}
|
||||||
|
|
||||||
func isSelected(mode: RoomNotificationModeProxy) -> Bool {
|
func isSelected(mode: RoomNotificationModeProxy) -> Bool {
|
||||||
if case .loaded(let settings) = notificationSettingsState, settings.mode == mode, pendingCustomMode == nil {
|
if case .loaded(let settings) = notificationSettingsState, settings.mode == mode, pendingCustomMode == nil {
|
||||||
|
@ -83,6 +83,7 @@ class RoomNotificationSettingsScreenViewModel: RoomNotificationSettingsScreenVie
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func fetchRoomNotificationSettings() async {
|
private func fetchRoomNotificationSettings() async {
|
||||||
|
state.shouldDisplayMentionsOnlyDisclaimer = roomProxy.isEncrypted ? await !notificationSettingsProxy.canHomeserverPushEncryptedEventsToDevice() : false
|
||||||
do {
|
do {
|
||||||
// `isOneToOne` here is not the same as `isDirect` on the room. From the point of view of the push rule, a one-to-one room is a room with exactly two active members.
|
// `isOneToOne` here is not the same as `isDirect` on the room. From the point of view of the push rule, a one-to-one room is a room with exactly two active members.
|
||||||
let settings = try await notificationSettingsProxy.getNotificationSettings(roomId: roomProxy.id,
|
let settings = try await notificationSettingsProxy.getNotificationSettings(roomId: roomProxy.id,
|
||||||
|
@ -23,7 +23,8 @@ struct RoomNotificationSettingsCustomSectionView: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
Section {
|
Section {
|
||||||
ForEach(context.viewState.availableCustomRoomNotificationModes, id: \.self) { mode in
|
ForEach(context.viewState.availableCustomRoomNotificationModes, id: \.self) { mode in
|
||||||
ListRow(label: .plain(title: context.viewState.strings.string(for: mode)),
|
ListRow(label: .plain(title: context.viewState.strings.string(for: mode),
|
||||||
|
description: context.viewState.description(mode: mode)),
|
||||||
details: (context.viewState.pendingCustomMode == mode) ? .isWaiting(true) : nil,
|
details: (context.viewState.pendingCustomMode == mode) ? .isWaiting(true) : nil,
|
||||||
kind: .selection(isSelected: context.viewState.isSelected(mode: mode)) {
|
kind: .selection(isSelected: context.viewState.isSelected(mode: mode)) {
|
||||||
context.send(viewAction: .setCustomMode(mode))
|
context.send(viewAction: .setCustomMode(mode))
|
||||||
@ -40,7 +41,7 @@ struct RoomNotificationSettingsCustomSectionView: View {
|
|||||||
struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, TestablePreview {
|
struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, TestablePreview {
|
||||||
static let viewModel = {
|
static let viewModel = {
|
||||||
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly))
|
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly))
|
||||||
|
|
||||||
let roomProxy = RoomProxyMock(with: .init(displayName: "Room", isEncrypted: true, joinedMembersCount: 4))
|
let roomProxy = RoomProxyMock(with: .init(displayName: "Room", isEncrypted: true, joinedMembersCount: 4))
|
||||||
|
|
||||||
return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy,
|
return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy,
|
||||||
@ -48,10 +49,27 @@ struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, Test
|
|||||||
displayAsUserDefinedRoomSettings: false)
|
displayAsUserDefinedRoomSettings: false)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
static let viewModelUnencrypted = {
|
||||||
|
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly))
|
||||||
|
|
||||||
|
let roomProxy = RoomProxyMock(with: .init(displayName: "Room", isEncrypted: false, joinedMembersCount: 4))
|
||||||
|
|
||||||
|
return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy,
|
||||||
|
roomProxy: roomProxy,
|
||||||
|
displayAsUserDefinedRoomSettings: false)
|
||||||
|
}()
|
||||||
|
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
Form {
|
Form {
|
||||||
RoomNotificationSettingsCustomSectionView(context: viewModel.context)
|
RoomNotificationSettingsCustomSectionView(context: viewModel.context)
|
||||||
}
|
}
|
||||||
.compoundForm()
|
.compoundForm()
|
||||||
|
.previewDisplayName("Encrypted")
|
||||||
|
|
||||||
|
Form {
|
||||||
|
RoomNotificationSettingsCustomSectionView(context: viewModelUnencrypted.context)
|
||||||
|
}
|
||||||
|
.compoundForm()
|
||||||
|
.previewDisplayName("Unencrypted")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,8 +58,21 @@ struct RoomNotificationSettingsUserDefinedScreen_Previews: PreviewProvider, Test
|
|||||||
roomProxy: roomProxy,
|
roomProxy: roomProxy,
|
||||||
displayAsUserDefinedRoomSettings: true)
|
displayAsUserDefinedRoomSettings: true)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
static let viewModelUnencrypted = {
|
||||||
|
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly))
|
||||||
|
|
||||||
|
let roomProxy = RoomProxyMock(with: .init(displayName: "Room", isEncrypted: false, joinedMembersCount: 4))
|
||||||
|
|
||||||
|
return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy,
|
||||||
|
roomProxy: roomProxy,
|
||||||
|
displayAsUserDefinedRoomSettings: true)
|
||||||
|
}()
|
||||||
|
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
RoomNotificationSettingsUserDefinedScreen(context: viewModel.context)
|
RoomNotificationSettingsUserDefinedScreen(context: viewModel.context)
|
||||||
|
.previewDisplayName("Encrypted")
|
||||||
|
RoomNotificationSettingsUserDefinedScreen(context: viewModelUnencrypted.context)
|
||||||
|
.previewDisplayName("Unencrypted")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,11 +33,20 @@ struct NotificationSettingsEditScreenViewState: BindableState {
|
|||||||
var defaultMode: NotificationSettingsEditScreenDefaultMode?
|
var defaultMode: NotificationSettingsEditScreenDefaultMode?
|
||||||
var pendingMode: NotificationSettingsEditScreenDefaultMode?
|
var pendingMode: NotificationSettingsEditScreenDefaultMode?
|
||||||
var roomsWithUserDefinedMode: [NotificationSettingsEditScreenRoom] = []
|
var roomsWithUserDefinedMode: [NotificationSettingsEditScreenRoom] = []
|
||||||
|
var canHomeServerPushEncryptedEvents = false
|
||||||
|
|
||||||
func isSelected(mode: NotificationSettingsEditScreenDefaultMode) -> Bool {
|
func isSelected(mode: NotificationSettingsEditScreenDefaultMode) -> Bool {
|
||||||
pendingMode == nil && defaultMode == mode
|
pendingMode == nil && defaultMode == mode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func description(for mode: NotificationSettingsEditScreenDefaultMode) -> String? {
|
||||||
|
guard mode == .mentionsAndKeywordsOnly,
|
||||||
|
!canHomeServerPushEncryptedEvents else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return L10n.screenNotificationSettingsMentionsOnlyDisclaimer
|
||||||
|
}
|
||||||
|
|
||||||
var displayRoomsWithCustomSettings: Bool {
|
var displayRoomsWithCustomSettings: Bool {
|
||||||
!roomsWithUserDefinedMode.isEmpty
|
!roomsWithUserDefinedMode.isEmpty
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,7 @@ class NotificationSettingsEditScreenViewModel: NotificationSettingsEditScreenVie
|
|||||||
if encrypted_mode == unencrypted_mode {
|
if encrypted_mode == unencrypted_mode {
|
||||||
mode = encrypted_mode
|
mode = encrypted_mode
|
||||||
}
|
}
|
||||||
|
let canHomserverPushEncryptedEvents = await notificationSettingsProxy.canHomeserverPushEncryptedEventsToDevice()
|
||||||
guard !Task.isCancelled else { return }
|
guard !Task.isCancelled else { return }
|
||||||
|
|
||||||
switch mode {
|
switch mode {
|
||||||
@ -101,6 +102,7 @@ class NotificationSettingsEditScreenViewModel: NotificationSettingsEditScreenVie
|
|||||||
default:
|
default:
|
||||||
state.defaultMode = nil
|
state.defaultMode = nil
|
||||||
}
|
}
|
||||||
|
state.canHomeServerPushEncryptedEvents = canHomserverPushEncryptedEvents
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,8 @@ struct NotificationSettingsEditScreen: View {
|
|||||||
private var notificationModeSection: some View {
|
private var notificationModeSection: some View {
|
||||||
Section {
|
Section {
|
||||||
ForEach(context.viewState.availableDefaultModes, id: \.self) { mode in
|
ForEach(context.viewState.availableDefaultModes, id: \.self) { mode in
|
||||||
ListRow(label: .plain(title: context.viewState.strings.string(for: mode)),
|
ListRow(label: .plain(title: context.viewState.strings.string(for: mode),
|
||||||
|
description: context.viewState.description(for: mode)),
|
||||||
details: (context.viewState.pendingMode == mode) ? .isWaiting(true) : nil,
|
details: (context.viewState.pendingMode == mode) ? .isWaiting(true) : nil,
|
||||||
kind: .selection(isSelected: context.viewState.isSelected(mode: mode)) {
|
kind: .selection(isSelected: context.viewState.isSelected(mode: mode)) {
|
||||||
context.send(viewAction: .setMode(mode))
|
context.send(viewAction: .setMode(mode))
|
||||||
@ -114,6 +115,22 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
|
|||||||
return viewModel
|
return viewModel
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
static let viewModelGroupChatsWithouDisclaimer: NotificationSettingsEditScreenViewModel = {
|
||||||
|
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(canHomeserverPushEncryptedEvents: true))
|
||||||
|
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .allMessages
|
||||||
|
|
||||||
|
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [RoomSummary].mockRooms.compactMap(\.id)
|
||||||
|
let userSession = MockUserSession(clientProxy: MockClientProxy(userID: "@alice:example.com",
|
||||||
|
roomSummaryProvider: MockRoomSummaryProvider(state: .loaded(.mockRooms))),
|
||||||
|
mediaProvider: MockMediaProvider(),
|
||||||
|
voiceMessageMediaManager: VoiceMessageMediaManagerMock())
|
||||||
|
var viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||||
|
userSession: userSession,
|
||||||
|
notificationSettingsProxy: notificationSettingsProxy)
|
||||||
|
viewModel.fetchInitialContent()
|
||||||
|
return viewModel
|
||||||
|
}()
|
||||||
|
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
NotificationSettingsEditScreen(context: viewModelGroupChats.context)
|
NotificationSettingsEditScreen(context: viewModelGroupChats.context)
|
||||||
.previewDisplayName("Group Chats")
|
.previewDisplayName("Group Chats")
|
||||||
@ -121,5 +138,7 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
|
|||||||
.previewDisplayName("Direct Chats")
|
.previewDisplayName("Direct Chats")
|
||||||
NotificationSettingsEditScreen(context: viewModelDirectApplyingChange.context)
|
NotificationSettingsEditScreen(context: viewModelDirectApplyingChange.context)
|
||||||
.previewDisplayName("Applying change")
|
.previewDisplayName("Applying change")
|
||||||
|
NotificationSettingsEditScreen(context: viewModelGroupChatsWithouDisclaimer.context)
|
||||||
|
.previewDisplayName("Group Chats Without Disclaimer")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,10 @@ final class NotificationSettingsProxy: NotificationSettingsProxyProtocol {
|
|||||||
await notificationSettings.getRoomsWithUserDefinedRules(enabled: true)
|
await notificationSettings.getRoomsWithUserDefinedRules(enabled: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func canHomeserverPushEncryptedEventsToDevice() async -> Bool {
|
||||||
|
await notificationSettings.canHomeserverPushEncryptedEventToDevice()
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
|
||||||
func updatedSettings() async {
|
func updatedSettings() async {
|
||||||
|
@ -41,4 +41,5 @@ protocol NotificationSettingsProxyProtocol {
|
|||||||
func isCallEnabled() async throws -> Bool
|
func isCallEnabled() async throws -> Bool
|
||||||
func setCallEnabled(enabled: Bool) async throws
|
func setCallEnabled(enabled: Bool) async throws
|
||||||
func getRoomsWithUserDefinedRules() async throws -> [String]
|
func getRoomsWithUserDefinedRules() async throws -> [String]
|
||||||
|
func canHomeserverPushEncryptedEventsToDevice() async -> Bool
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,49 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
|||||||
|
|
||||||
XCTAssertEqual(context.viewState.defaultMode, .mentionsAndKeywordsOnly)
|
XCTAssertEqual(context.viewState.defaultMode, .mentionsAndKeywordsOnly)
|
||||||
XCTAssertNil(context.viewState.bindings.alertInfo)
|
XCTAssertNil(context.viewState.bindings.alertInfo)
|
||||||
|
XCTAssertFalse(context.viewState.canHomeServerPushEncryptedEvents)
|
||||||
|
XCTAssertNotNil(context.viewState.description(for: .mentionsAndKeywordsOnly))
|
||||||
|
}
|
||||||
|
|
||||||
|
func testFetchSettingsWithCanPushEncryptedEvents() async throws {
|
||||||
|
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneClosure = { isEncrypted, isOneToOne in
|
||||||
|
switch (isEncrypted, isOneToOne) {
|
||||||
|
case (_, true):
|
||||||
|
return .allMessages
|
||||||
|
case (_, _):
|
||||||
|
return .mentionsAndKeywordsOnly
|
||||||
|
}
|
||||||
|
}
|
||||||
|
notificationSettingsProxy.canHomeserverPushEncryptedEventsToDeviceClosure = {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||||
|
userSession: userSession,
|
||||||
|
notificationSettingsProxy: notificationSettingsProxy)
|
||||||
|
|
||||||
|
let deferred = deferFulfillment(viewModel.context.$viewState) { state in
|
||||||
|
state.defaultMode != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.fetchInitialContent()
|
||||||
|
|
||||||
|
try await deferred.fulfill()
|
||||||
|
|
||||||
|
// `getDefaultRoomNotificationModeIsEncryptedIsOneToOne` must have been called twice (for encrypted and unencrypted group chats)
|
||||||
|
let invocations = notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReceivedInvocations
|
||||||
|
|
||||||
|
XCTAssertEqual(invocations.count, 2)
|
||||||
|
// First call for encrypted group chats
|
||||||
|
XCTAssertEqual(invocations[0].isEncrypted, true)
|
||||||
|
XCTAssertEqual(invocations[0].isOneToOne, false)
|
||||||
|
// Second call for unencrypted group chats
|
||||||
|
XCTAssertEqual(invocations[1].isEncrypted, false)
|
||||||
|
XCTAssertEqual(invocations[1].isOneToOne, false)
|
||||||
|
|
||||||
|
XCTAssertEqual(context.viewState.defaultMode, .mentionsAndKeywordsOnly)
|
||||||
|
XCTAssertNil(context.viewState.bindings.alertInfo)
|
||||||
|
XCTAssertTrue(context.viewState.canHomeServerPushEncryptedEvents)
|
||||||
|
XCTAssertNil(context.viewState.description(for: .mentionsAndKeywordsOnly))
|
||||||
}
|
}
|
||||||
|
|
||||||
func testSetModeAllMessages() async throws {
|
func testSetModeAllMessages() async throws {
|
||||||
|
@ -32,8 +32,8 @@ class RoomNotificationSettingsScreenViewModelTests: XCTestCase {
|
|||||||
notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
||||||
}
|
}
|
||||||
|
|
||||||
func testInitialStateDefaultMode() async throws {
|
func testInitialStateDefaultModeEncryptedRoom() async throws {
|
||||||
let roomProxyMock = RoomProxyMock(with: .init(displayName: "Test", joinedMembersCount: 0))
|
let roomProxyMock = RoomProxyMock(with: .init(displayName: "Test", isEncrypted: true, joinedMembersCount: 0))
|
||||||
let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
||||||
|
|
||||||
notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true))
|
notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true))
|
||||||
@ -50,6 +50,52 @@ class RoomNotificationSettingsScreenViewModelTests: XCTestCase {
|
|||||||
try await deferred.fulfill()
|
try await deferred.fulfill()
|
||||||
|
|
||||||
XCTAssertFalse(viewModel.context.allowCustomSetting)
|
XCTAssertFalse(viewModel.context.allowCustomSetting)
|
||||||
|
XCTAssertTrue(viewModel.context.viewState.shouldDisplayMentionsOnlyDisclaimer)
|
||||||
|
XCTAssertNotNil(viewModel.context.viewState.description(mode: .mentionsAndKeywordsOnly))
|
||||||
|
}
|
||||||
|
|
||||||
|
func testInitialStateDefaultModeEncryptedRoomWithCanPushEncrypted() async throws {
|
||||||
|
let roomProxyMock = RoomProxyMock(with: .init(displayName: "Test", isEncrypted: true, joinedMembersCount: 0))
|
||||||
|
let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: .init(canHomeserverPushEncryptedEvents: true))
|
||||||
|
|
||||||
|
notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true))
|
||||||
|
|
||||||
|
let viewModel = RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxyMock,
|
||||||
|
roomProxy: roomProxyMock,
|
||||||
|
displayAsUserDefinedRoomSettings: false)
|
||||||
|
|
||||||
|
let deferred = deferFulfillment(viewModel.context.$viewState) { state in
|
||||||
|
state.notificationSettingsState.isLoaded
|
||||||
|
}
|
||||||
|
|
||||||
|
notificationSettingsProxyMock.callbacks.send(.settingsDidChange)
|
||||||
|
try await deferred.fulfill()
|
||||||
|
|
||||||
|
XCTAssertFalse(viewModel.context.allowCustomSetting)
|
||||||
|
XCTAssertFalse(viewModel.context.viewState.shouldDisplayMentionsOnlyDisclaimer)
|
||||||
|
XCTAssertNil(viewModel.context.viewState.description(mode: .mentionsAndKeywordsOnly))
|
||||||
|
}
|
||||||
|
|
||||||
|
func testInitialStateDefaultModeUnencryptedRoom() async throws {
|
||||||
|
let roomProxyMock = RoomProxyMock(with: .init(displayName: "Test", isEncrypted: false, joinedMembersCount: 0))
|
||||||
|
let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
||||||
|
|
||||||
|
notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true))
|
||||||
|
|
||||||
|
let viewModel = RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxyMock,
|
||||||
|
roomProxy: roomProxyMock,
|
||||||
|
displayAsUserDefinedRoomSettings: false)
|
||||||
|
|
||||||
|
let deferred = deferFulfillment(viewModel.context.$viewState) { state in
|
||||||
|
state.notificationSettingsState.isLoaded
|
||||||
|
}
|
||||||
|
|
||||||
|
notificationSettingsProxyMock.callbacks.send(.settingsDidChange)
|
||||||
|
try await deferred.fulfill()
|
||||||
|
|
||||||
|
XCTAssertFalse(viewModel.context.allowCustomSetting)
|
||||||
|
XCTAssertFalse(viewModel.context.viewState.shouldDisplayMentionsOnlyDisclaimer)
|
||||||
|
XCTAssertNil(viewModel.context.viewState.description(mode: .mentionsAndKeywordsOnly))
|
||||||
}
|
}
|
||||||
|
|
||||||
func testInitialStateCustomMode() async throws {
|
func testInitialStateCustomMode() async throws {
|
||||||
|
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Applying-change.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Applying-change.png
(Stored with Git LFS)
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Direct-Chats.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Direct-Chats.png
(Stored with Git LFS)
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Group-Chats-Without-Disclaimer.png
(Stored with Git LFS)
Normal file
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Group-Chats-Without-Disclaimer.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Group-Chats.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_notificationSettingsEditScreen.Group-Chats.png
(Stored with Git LFS)
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.1.png
(Stored with Git LFS)
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.Encrypted.png
(Stored with Git LFS)
Normal file
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.Encrypted.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.Unencrypted.png
(Stored with Git LFS)
Normal file
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsCustomSectionView.Unencrypted.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.1.png
(Stored with Git LFS)
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.Encrypted.png
(Stored with Git LFS)
Normal file
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.Encrypted.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.Unencrypted.png
(Stored with Git LFS)
Normal file
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomNotificationSettingsUserDefinedScreen.Unencrypted.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -45,7 +45,7 @@ packages:
|
|||||||
# Element/Matrix dependencies
|
# Element/Matrix dependencies
|
||||||
MatrixRustSDK:
|
MatrixRustSDK:
|
||||||
url: https://github.com/matrix-org/matrix-rust-components-swift
|
url: https://github.com/matrix-org/matrix-rust-components-swift
|
||||||
exactVersion: 0.0.2-november23
|
exactVersion: 0.0.3-november23
|
||||||
# path: ../matrix-rust-sdk
|
# path: ../matrix-rust-sdk
|
||||||
Compound:
|
Compound:
|
||||||
url: https://github.com/vector-im/compound-ios
|
url: https://github.com/vector-im/compound-ios
|
||||||
|
Loading…
x
Reference in New Issue
Block a user