diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index 9f488a23d9..86db235d4b 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -6656,7 +6656,7 @@ repositoryURL = "https://github.com/vector-im/compound-ios"; requirement = { kind = revision; - revision = 34dcd1e2960f3b0b7f50d6e7d020c108d5acf604; + revision = 849e5beaadfb449b53a28d41cc22cf303cc9045b; }; }; 9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { diff --git a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index c66c4bd6ad..59d0f3c26b 100644 --- a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -14,7 +14,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/vector-im/compound-ios", "state" : { - "revision" : "34dcd1e2960f3b0b7f50d6e7d020c108d5acf604" + "revision" : "849e5beaadfb449b53a28d41cc22cf303cc9045b" } }, { diff --git a/ElementX/Resources/Assets.xcassets/images/home/compose.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/circle.imageset/Contents.json similarity index 87% rename from ElementX/Resources/Assets.xcassets/images/home/compose.imageset/Contents.json rename to ElementX/Resources/Assets.xcassets/images/circle.imageset/Contents.json index 4d9c312e5f..ebe71a1569 100644 --- a/ElementX/Resources/Assets.xcassets/images/home/compose.imageset/Contents.json +++ b/ElementX/Resources/Assets.xcassets/images/circle.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "compose.svg", + "filename" : "circle.svg", "idiom" : "universal" } ], diff --git a/ElementX/Resources/Assets.xcassets/images/circle.imageset/circle.svg b/ElementX/Resources/Assets.xcassets/images/circle.imageset/circle.svg new file mode 100644 index 0000000000..d1de883977 --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/circle.imageset/circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Contents.json similarity index 86% rename from ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/Contents.json rename to ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Contents.json index d69e186488..df05c72959 100644 --- a/ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/Contents.json +++ b/ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "microphone.svg", + "filename" : "Document.svg", "idiom" : "universal" } ], diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Document.svg b/ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Document.svg new file mode 100644 index 0000000000..045f1704ee --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/composer/attachments/Document.imageset/Document.svg @@ -0,0 +1,3 @@ + + + diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Contents.json index 1ce0c9fbd8..491f696dd7 100644 --- a/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Contents.json +++ b/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "location.svg", + "filename" : "Location Pin.svg", "idiom" : "universal" } ], diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Location Pin.svg b/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Location Pin.svg new file mode 100644 index 0000000000..448a2667b2 --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/Location Pin.svg @@ -0,0 +1,3 @@ + + + diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/location.svg b/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/location.svg deleted file mode 100644 index 6911eb3efe..0000000000 --- a/ElementX/Resources/Assets.xcassets/images/composer/attachments/add-location.imageset/location.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/photos-library.svg b/ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/photos-library.svg deleted file mode 100644 index b4ecae9463..0000000000 --- a/ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/photos-library.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/Contents.json index f0f7745246..2da9ba02c7 100644 --- a/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/Contents.json +++ b/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "decryption-error.svg", + "filename" : "waiting-to-decrypt.svg", "idiom" : "universal" } ], diff --git a/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/decryption-error.svg b/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/decryption-error.svg deleted file mode 100644 index 7128a0d9cc..0000000000 --- a/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/decryption-error.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/waiting-to-decrypt.svg b/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/waiting-to-decrypt.svg new file mode 100644 index 0000000000..65a508f676 --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/encryption/decryption-error.imageset/waiting-to-decrypt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/ElementX/Resources/Assets.xcassets/images/home/compose.imageset/compose.svg b/ElementX/Resources/Assets.xcassets/images/home/compose.imageset/compose.svg deleted file mode 100644 index d96fc5d50e..0000000000 --- a/ElementX/Resources/Assets.xcassets/images/home/compose.imageset/compose.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/Contents.json similarity index 85% rename from ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/Contents.json rename to ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/Contents.json index d83afc1d8f..ec08532cae 100644 --- a/ElementX/Resources/Assets.xcassets/images/composer/attachments/photos-library.imageset/Contents.json +++ b/ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "photos-library.svg", + "filename" : "sign-out.svg", "idiom" : "universal" } ], diff --git a/ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/sign-out.svg b/ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/sign-out.svg new file mode 100644 index 0000000000..334b95320d --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/sign-out.svg @@ -0,0 +1,3 @@ + + + diff --git a/ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/microphone.svg b/ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/microphone.svg deleted file mode 100644 index 7808332fcd..0000000000 --- a/ElementX/Resources/Assets.xcassets/images/media/microphone.imageset/microphone.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/Contents.json b/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/Contents.json new file mode 100644 index 0000000000..51dd0ba5c8 --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "share-ios.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/share-ios.svg b/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/share-ios.svg new file mode 100644 index 0000000000..bf7a175480 --- /dev/null +++ b/ElementX/Resources/Assets.xcassets/images/share-ios.imageset/share-ios.svg @@ -0,0 +1,4 @@ + + + + diff --git a/ElementX/Resources/Localizations/en.lproj/Localizable.strings b/ElementX/Resources/Localizations/en.lproj/Localizable.strings index f71ec10841..5197d675c9 100644 --- a/ElementX/Resources/Localizations/en.lproj/Localizable.strings +++ b/ElementX/Resources/Localizations/en.lproj/Localizable.strings @@ -135,6 +135,7 @@ "common_refreshing" = "Refreshing…"; "common_replying_to" = "Replying to %1$@"; "common_report_a_bug" = "Report a bug"; +"common_report_a_problem" = "Report a problem"; "common_report_submitted" = "Report submitted"; "common_rich_text_editor" = "Rich text editor"; "common_room" = "Room"; @@ -174,7 +175,6 @@ "common_voice_message" = "Voice message"; "common_waiting" = "Waiting…"; "common_waiting_for_decryption_key" = "Waiting for this message"; -"common.report_a_problem" = "Report a problem"; "common_poll_end_confirmation" = "Are you sure you want to end this poll?"; "common_poll_summary" = "Poll: %1$@"; "common_verify_device" = "Verify device"; diff --git a/ElementX/Sources/Generated/Assets.swift b/ElementX/Sources/Generated/Assets.swift index 0916122818..bbab56f250 100644 --- a/ElementX/Sources/Generated/Assets.swift +++ b/ElementX/Sources/Generated/Assets.swift @@ -33,10 +33,11 @@ internal enum Asset { internal enum Images { internal static let appLogo = ImageAsset(name: "images/app-logo") internal static let serverSelectionIcon = ImageAsset(name: "images/server-selection-icon") + internal static let circle = ImageAsset(name: "images/circle") internal static let closeCircle = ImageAsset(name: "images/close-circle") internal static let addLocation = ImageAsset(name: "images/add-location") internal static let attachment = ImageAsset(name: "images/attachment") - internal static let photosLibrary = ImageAsset(name: "images/photos-library") + internal static let document = ImageAsset(name: "images/document") internal static let takePhoto = ImageAsset(name: "images/take-photo") internal static let textFormatting = ImageAsset(name: "images/text-formatting") internal static let bold = ImageAsset(name: "images/bold") @@ -59,8 +60,8 @@ internal enum Asset { internal static let unindent = ImageAsset(name: "images/unindent") internal static let decryptionError = ImageAsset(name: "images/decryption-error") internal static let endedPoll = ImageAsset(name: "images/ended-poll") - internal static let compose = ImageAsset(name: "images/compose") internal static let settingsIconWithBadge = ImageAsset(name: "images/settings-icon-with-badge") + internal static let signOut = ImageAsset(name: "images/sign-out") internal static let launchBackground = ImageAsset(name: "images/launch-background") internal static let locationMarker = ImageAsset(name: "images/location-marker") internal static let locationPin = ImageAsset(name: "images/location-pin") @@ -68,10 +69,10 @@ internal enum Asset { internal static let locationPointer = ImageAsset(name: "images/location-pointer") internal static let mediaPause = ImageAsset(name: "images/media-pause") internal static let mediaPlay = ImageAsset(name: "images/media-play") - internal static let microphone = ImageAsset(name: "images/microphone") internal static let secureBackupIcon = ImageAsset(name: "images/secure-backup-icon") internal static let secureBackupOff = ImageAsset(name: "images/secure-backup-off") internal static let secureBackupOn = ImageAsset(name: "images/secure-backup-on") + internal static let shareIos = ImageAsset(name: "images/share-ios") internal static let addReaction = ImageAsset(name: "images/add-reaction") internal static let copy = ImageAsset(name: "images/copy") internal static let editOutline = ImageAsset(name: "images/edit-outline") diff --git a/ElementX/Sources/Generated/Strings.swift b/ElementX/Sources/Generated/Strings.swift index 60d7ed8562..6dbd697a18 100644 --- a/ElementX/Sources/Generated/Strings.swift +++ b/ElementX/Sources/Generated/Strings.swift @@ -310,6 +310,8 @@ public enum L10n { } /// Report a bug public static var commonReportABug: String { return L10n.tr("Localizable", "common_report_a_bug") } + /// Report a problem + public static var commonReportAProblem: String { return L10n.tr("Localizable", "common_report_a_problem") } /// Report submitted public static var commonReportSubmitted: String { return L10n.tr("Localizable", "common_report_submitted") } /// Rich text editor @@ -1569,11 +1571,6 @@ public enum L10n { /// Edit poll public static var editPoll: String { return L10n.tr("Localizable", "action.edit_poll") } } - - public enum Common { - /// Report a problem - public static var reportAProblem: String { return L10n.tr("Localizable", "common.report_a_problem") } - } } // swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length // swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces diff --git a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift index 19a709d256..55407c25ab 100644 --- a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift @@ -143,11 +143,6 @@ class AppLockServiceMock: AppLockServiceProtocol { set(value) { underlyingBiometricUnlockTrusted = value } } var underlyingBiometricUnlockTrusted: Bool! - var disabledPublisher: AnyPublisher { - get { return underlyingDisabledPublisher } - set(value) { underlyingDisabledPublisher = value } - } - var underlyingDisabledPublisher: AnyPublisher! var numberOfPINAttempts: AnyPublisher { get { return underlyingNumberOfPINAttempts } set(value) { underlyingNumberOfPINAttempts = value } diff --git a/ElementX/Sources/Screens/BugReportScreen/View/BugReportScreen.swift b/ElementX/Sources/Screens/BugReportScreen/View/BugReportScreen.swift index 1b75cf0b2f..01a5ea8e75 100644 --- a/ElementX/Sources/Screens/BugReportScreen/View/BugReportScreen.swift +++ b/ElementX/Sources/Screens/BugReportScreen/View/BugReportScreen.swift @@ -35,7 +35,7 @@ struct BugReportScreen: View { .disabled(context.viewState.shouldDisableInteraction) .scrollDismissesKeyboard(.immediately) .compoundList() - .navigationTitle(L10n.commonReportABug) + .navigationTitle(L10n.commonReportAProblem) .navigationBarTitleDisplayMode(.inline) .toolbar { toolbar } .interactiveDismissDisabled() diff --git a/ElementX/Sources/Screens/ComposerToolbar/View/RoomAttachmentPicker.swift b/ElementX/Sources/Screens/ComposerToolbar/View/RoomAttachmentPicker.swift index 43e18ff7ae..b27da72ca0 100644 --- a/ElementX/Sources/Screens/ComposerToolbar/View/RoomAttachmentPicker.swift +++ b/ElementX/Sources/Screens/ComposerToolbar/View/RoomAttachmentPicker.swift @@ -44,7 +44,7 @@ struct RoomAttachmentPicker: View { context.showAttachmentPopover = false context.send(viewAction: .displayMediaPicker) } label: { - Label(L10n.screenRoomAttachmentSourceGallery, iconAsset: Asset.Images.photosLibrary) + Label(L10n.screenRoomAttachmentSourceGallery, icon: \.image) .labelStyle(.menuSheet) } .accessibilityIdentifier(A11yIdentifiers.roomScreen.attachmentPickerPhotoLibrary) diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift index f5f5e62365..f953e87219 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift @@ -226,7 +226,7 @@ struct HomeScreen: View { Button { context.send(viewAction: .startChat) } label: { - CompoundIcon(customImage: Asset.Images.compose.swiftUIImage) + CompoundIcon(\.edit) } .accessibilityLabel(L10n.actionStartChat) .accessibilityIdentifier(A11yIdentifiers.homeScreen.startChat) diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift index 6a42dc1be5..e846f6a35a 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift @@ -36,7 +36,7 @@ struct HomeScreenEmptyStateView: View { .padding(.bottom, 12) Button { context.send(viewAction: .startChat) } label: { - Label(L10n.actionStartChat, iconAsset: Asset.Images.compose) + Label(L10n.actionStartChat, icon: \.edit) .font(.compound.bodyLGSemibold) .foregroundColor(.compound.textOnSolidPrimary) .padding(.vertical, 6) diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomList.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomList.swift index df9c6d2255..aad9403e55 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomList.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomList.swift @@ -39,13 +39,13 @@ struct HomeScreenRoomList: View { Button { context.send(viewAction: .showRoomDetails(roomIdentifier: room.id)) } label: { - Label(L10n.commonSettings, systemImage: "gearshape") + Label(L10n.commonSettings, icon: \.settings) } Button(role: .destructive) { context.send(viewAction: .leaveRoom(roomIdentifier: room.id)) } label: { - Label(L10n.actionLeaveRoom, systemImage: "rectangle.portrait.and.arrow.right") + Label(L10n.actionLeaveRoom, icon: \.leave) } } } diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenUserMenuButton.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenUserMenuButton.swift index 5a228bbe41..ddc13d72c4 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenUserMenuButton.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenUserMenuButton.swift @@ -18,7 +18,7 @@ import Compound import SwiftUI struct HomeScreenUserMenuButton: View { - @Environment(\.colorScheme) var colorScheme + @Environment(\.colorScheme) private var colorScheme @ObservedObject var context: HomeScreenViewModel.Context @@ -42,19 +42,19 @@ struct HomeScreenUserMenuButton: View { } Section { MatrixUserShareLink(userID: context.viewState.userID) { - Label(L10n.actionInvite, systemImage: "square.and.arrow.up") + Label(L10n.actionInvite, iconAsset: Asset.Images.shareIos) } Button { context.send(viewAction: .userMenu(action: .feedback)) } label: { - Label(L10n.commonReportABug, systemImage: "ladybug") + Label(L10n.commonReportAProblem, icon: \.chatProblem) } } Section { Button(role: .destructive) { context.send(viewAction: .userMenu(action: .logout)) } label: { - Label(L10n.screenSignoutPreferenceItem, systemImage: "rectangle.portrait.and.arrow.right") + Label(L10n.screenSignoutPreferenceItem, iconAsset: Asset.Images.signOut) } } } label: { diff --git a/ElementX/Sources/Screens/RoomScreen/View/Replies/TimelineReplyView.swift b/ElementX/Sources/Screens/RoomScreen/View/Replies/TimelineReplyView.swift index 9a1645bde1..4bb8fe376c 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Replies/TimelineReplyView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Replies/TimelineReplyView.swift @@ -14,6 +14,7 @@ // limitations under the License. // +import Compound import SwiftUI enum TimelineReplyViewPlacement { @@ -43,7 +44,7 @@ struct TimelineReplyView: View { ReplyView(sender: sender, plainBody: content.body, formattedBody: nil, - icon: .init(kind: .systemIcon("doc.text.fill"), cornerRadii: iconCornerRadii)) + icon: .init(kind: .iconAsset(Asset.Images.document), cornerRadii: iconCornerRadii)) case .image(let content): ReplyView(sender: sender, plainBody: content.body, @@ -66,12 +67,12 @@ struct TimelineReplyView: View { ReplyView(sender: sender, plainBody: L10n.commonVoiceMessage, formattedBody: nil, - icon: .init(kind: .icon(Asset.Images.microphone.name), cornerRadii: iconCornerRadii)) + icon: .init(kind: .icon(\.micOnOutline), cornerRadii: iconCornerRadii)) case .location: ReplyView(sender: sender, plainBody: L10n.commonSharedLocation, formattedBody: nil, - icon: .init(kind: .icon(Asset.Images.locationMarker.name), cornerRadii: iconCornerRadii)) + icon: .init(kind: .iconAsset(Asset.Images.addLocation), cornerRadii: iconCornerRadii)) } default: LoadingReplyView() @@ -100,7 +101,8 @@ struct TimelineReplyView: View { enum Kind { case mediaSource(MediaSourceProxy) case systemIcon(String) - case icon(String) + case iconAsset(ImageAsset) + case icon(KeyPath) } let kind: Kind @@ -191,11 +193,13 @@ struct TimelineReplyView: View { .resizable() .aspectRatio(contentMode: .fit) .padding(8.0) - case .icon(let iconName): - Image(iconName) + case .iconAsset(let asset): + Image(asset: asset) .resizable() .aspectRatio(contentMode: .fit) .padding(8.0) + case .icon(let keyPath): + CompoundIcon(keyPath, size: .small, relativeTo: .body) } } } diff --git a/ElementX/Sources/Screens/RoomScreen/View/Style/SwipeToReplyView.swift b/ElementX/Sources/Screens/RoomScreen/View/Style/SwipeToReplyView.swift index d514650f4c..35cbd11559 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Style/SwipeToReplyView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Style/SwipeToReplyView.swift @@ -14,13 +14,14 @@ // limitations under the License. // +import Compound import SwiftUI struct SwipeToReplyView: View { let timelineItem: RoomTimelineItemProtocol var body: some View { - Image(systemName: "arrowshape.turn.up.left") + CompoundIcon(customImage: Asset.Images.reply.swiftUIImage) .foregroundColor(.compound.iconPrimary) .accessibilityHidden(true) } diff --git a/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineDeliveryStatusView.swift b/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineDeliveryStatusView.swift index ecd8dc1392..27dd82c576 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineDeliveryStatusView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineDeliveryStatusView.swift @@ -14,7 +14,9 @@ // limitations under the License. // +import Compound import SwiftUI + struct TimelineDeliveryStatusView: View { enum Status { case sending @@ -23,20 +25,18 @@ struct TimelineDeliveryStatusView: View { let deliveryStatus: Status - private var systemImageName: String { + private var icon: CompoundIcon { switch deliveryStatus { case .sending: - return "circle" + return CompoundIcon(customImage: Asset.Images.circle.swiftUIImage, size: .xSmall, relativeTo: .compound.bodyMD) case .sent: - return "checkmark.circle" + return CompoundIcon(\.checkCircle, size: .xSmall, relativeTo: .compound.bodyMD) } } var body: some View { - Image(systemName: systemImageName) - .resizable() + icon .foregroundColor(.compound.iconSecondary) - .frame(width: 16.0, height: 16.0) } } diff --git a/ElementX/Sources/Screens/RoomScreen/View/Timeline/EncryptedRoomTimelineView.swift b/ElementX/Sources/Screens/RoomScreen/View/Timeline/EncryptedRoomTimelineView.swift index 5b3cc11442..f13b0bd4c3 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Timeline/EncryptedRoomTimelineView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Timeline/EncryptedRoomTimelineView.swift @@ -54,12 +54,12 @@ struct EncryptedRoomTimelineView_Previews: PreviewProvider, TestablePreview { static var body: some View { VStack(alignment: .leading, spacing: 20.0) { - EncryptedRoomTimelineView(timelineItem: itemWith(text: "Text", + EncryptedRoomTimelineView(timelineItem: itemWith(text: L10n.commonWaitingForDecryptionKey, timestamp: "Now", isOutgoing: false, senderId: "Bob")) - EncryptedRoomTimelineView(timelineItem: itemWith(text: "Some other text", + EncryptedRoomTimelineView(timelineItem: itemWith(text: L10n.commonWaitingForDecryptionKey, timestamp: "Later", isOutgoing: true, senderId: "Anne")) diff --git a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift index e0342af24c..315bfceff1 100644 --- a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift +++ b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift @@ -132,7 +132,7 @@ struct SettingsScreen: View { }) .accessibilityIdentifier(A11yIdentifiers.settingsScreen.screenLock) - ListRow(label: .default(title: L10n.commonReportABug, + ListRow(label: .default(title: L10n.commonReportAProblem, systemIcon: .ladybug), kind: .navigationLink { context.send(viewAction: .reportBug) diff --git a/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift b/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift index a6ccec8a5e..67e4a9fb6e 100644 --- a/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift +++ b/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift @@ -89,15 +89,12 @@ struct UserDetailsEditScreen: View { } private var avatarOverlayIcon: some View { - Image(systemName: "camera") - .font(.system(size: 14, weight: .semibold)) - .padding(3) - .imageScale(.small) + CompoundIcon(customImage: Asset.Images.editing.swiftUIImage, size: .xSmall, relativeTo: .compound.bodyLG) .foregroundColor(.white) + .padding(4) .background { Circle() .foregroundColor(.black) - .aspectRatio(1, contentMode: .fill) } } diff --git a/project.yml b/project.yml index 736287e741..dac0046626 100644 --- a/project.yml +++ b/project.yml @@ -49,7 +49,7 @@ packages: # path: ../matrix-rust-sdk Compound: url: https://github.com/vector-im/compound-ios - revision: 34dcd1e2960f3b0b7f50d6e7d020c108d5acf604 + revision: 849e5beaadfb449b53a28d41cc22cf303cc9045b # path: ../compound-ios AnalyticsEvents: url: https://github.com/matrix-org/matrix-analytics-events