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